| struct A; | |
| struct B; | |
| struct D { struct B *b; }; | |
| struct Y; | |
| struct Z { struct Y *y; struct D *d; }; | |
| struct Y { struct Z z; }; | |
| struct X { struct Y y; }; | |
| struct C { struct A *a; struct D d; }; | |
| struct B { struct C c; struct D d; }; | |
| struct A { struct B b; struct X x; } a; |