-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P3
-
None
-
Affects Version/s: repo-panama
-
Component/s: tools
The jextract parser deals with pointers using some logic to handle circular references - e.g. cases like:
struct A {
B *ptr_b;
};
struct B {
A *ptr_a;
}
In such cases, the types *A and *B are added to a list of unresolved type, which is then only fixed up at the end of parsing. For this reason, it is only safe to obtain the pointee type of a pointer type only after parsing. Unfortunately TreeMaker has some calls to DelegatedType::type() which, under the right conditions can cause issues because of this lazy completion system.
struct A {
B *ptr_b;
};
struct B {
A *ptr_a;
}
In such cases, the types *A and *B are added to a list of unresolved type, which is then only fixed up at the end of parsing. For this reason, it is only safe to obtain the pointee type of a pointer type only after parsing. Unfortunately TreeMaker has some calls to DelegatedType::type() which, under the right conditions can cause issues because of this lazy completion system.