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)11 foo (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()18 int main()
19 {
20   a.b.bb.c.i = 1;
21   if (foo (&a.b.bb.c) != 1)
22     abort ();
23   return 0;
24 }
25