struct X { | |
struct Y { | |
struct YY { | |
struct Z { | |
int i; | |
} c; | |
} bb; | |
} b; | |
} a; | |
int __attribute__((noinline, noclone)) | |
foo (struct Z *p) | |
{ | |
int i = p->i; | |
a.b = (struct Y){}; | |
return p->i + i; | |
} | |
extern void abort (void); | |
int main() | |
{ | |
a.b.bb.c.i = 1; | |
if (foo (&a.b.bb.c) != 1) | |
abort (); | |
return 0; | |
} |