199451b44SJordan Rupprecht struct anonymous_nest { 299451b44SJordan Rupprecht struct { 399451b44SJordan Rupprecht struct { 499451b44SJordan Rupprecht int a; 599451b44SJordan Rupprecht int b; 699451b44SJordan Rupprecht }; // anonymous 799451b44SJordan Rupprecht struct { 899451b44SJordan Rupprecht int c; 999451b44SJordan Rupprecht int d; 1099451b44SJordan Rupprecht } foo; 1199451b44SJordan Rupprecht }; // anonymous 1299451b44SJordan Rupprecht }; 1399451b44SJordan Rupprecht 1499451b44SJordan Rupprecht struct anonymous_child { 1599451b44SJordan Rupprecht struct { 1699451b44SJordan Rupprecht struct { 1799451b44SJordan Rupprecht int a; 1899451b44SJordan Rupprecht int b; 1999451b44SJordan Rupprecht } grandchild; 2099451b44SJordan Rupprecht struct { 2199451b44SJordan Rupprecht int c; 2299451b44SJordan Rupprecht int d; 2399451b44SJordan Rupprecht } foo; 2499451b44SJordan Rupprecht }; // anonymous 2599451b44SJordan Rupprecht }; 2699451b44SJordan Rupprecht 2799451b44SJordan Rupprecht struct anonymous_grandchild { 2899451b44SJordan Rupprecht struct { 2999451b44SJordan Rupprecht struct { 3099451b44SJordan Rupprecht int a; 3199451b44SJordan Rupprecht int b; 3299451b44SJordan Rupprecht }; // anonymous 3399451b44SJordan Rupprecht struct { 3499451b44SJordan Rupprecht int c; 3599451b44SJordan Rupprecht int d; 3699451b44SJordan Rupprecht } foo; 3799451b44SJordan Rupprecht } child; 3899451b44SJordan Rupprecht }; 3999451b44SJordan Rupprecht processor_nest(struct anonymous_nest * n)4099451b44SJordan Rupprechtint processor_nest (struct anonymous_nest *n) 4199451b44SJordan Rupprecht { 4299451b44SJordan Rupprecht return n->foo.d + n->b; // Set breakpoint 0 here. 4399451b44SJordan Rupprecht } 4499451b44SJordan Rupprecht processor_child(struct anonymous_child * c)4599451b44SJordan Rupprechtint processor_child (struct anonymous_child *c) 4699451b44SJordan Rupprecht { 4799451b44SJordan Rupprecht return c->foo.d + c->grandchild.b; // Set breakpoint 1 here. 4899451b44SJordan Rupprecht } 4999451b44SJordan Rupprecht processor_grandchild(struct anonymous_grandchild * g)5099451b44SJordan Rupprechtint processor_grandchild (struct anonymous_grandchild *g) 5199451b44SJordan Rupprecht { 5299451b44SJordan Rupprecht return g->child.foo.d + g->child.b; 5399451b44SJordan Rupprecht } 5499451b44SJordan Rupprecht 5599451b44SJordan Rupprecht 5699451b44SJordan Rupprecht 5799451b44SJordan Rupprecht typedef struct { 5899451b44SJordan Rupprecht int dummy; 5999451b44SJordan Rupprecht } type_y; 6099451b44SJordan Rupprecht 6199451b44SJordan Rupprecht typedef struct { 6299451b44SJordan Rupprecht type_y y; 6399451b44SJordan Rupprecht } type_z; 6499451b44SJordan Rupprecht 6599451b44SJordan Rupprecht 6699451b44SJordan Rupprecht main()6799451b44SJordan Rupprechtint main() 6899451b44SJordan Rupprecht { 6999451b44SJordan Rupprecht struct anonymous_nest n = { 0, 2, 0, 4 }; 7099451b44SJordan Rupprecht struct anonymous_child c = { 0, 2, 0, 4 }; 7199451b44SJordan Rupprecht struct anonymous_grandchild g = { 0, 2, 0, 4 }; 7299451b44SJordan Rupprecht type_z *pz = 0; 7399451b44SJordan Rupprecht type_z z = {{2}}; 7499451b44SJordan Rupprecht 75*10df88deSRaphael Isemann processor_nest(&n); 76*10df88deSRaphael Isemann processor_child(&c); 77*10df88deSRaphael Isemann processor_grandchild(&g); // Set breakpoint 2 here. 7899451b44SJordan Rupprecht 7999451b44SJordan Rupprecht return 0; 8099451b44SJordan Rupprecht } 81