1 struct X { 2 struct Y { 3 struct YY { 4 struct Z { 5 int i; 6 } c; 7 } bb; 8 } b; 9 } a; 10 int __attribute__((noinline, noclone)) foo(struct Z * p)11foo (struct Z *p) 12 { 13 int i = p->i; 14 a.b = (struct Y){}; 15 return p->i + i; 16 } 17 extern void abort (void); main()18int main() 19 { 20 a.b.bb.c.i = 1; 21 if (foo (&a.b.bb.c) != 1) 22 abort (); 23 return 0; 24 } 25