1 struct Foo {
2   int *p;
3   int *q;
4 };
5 
6 void __attribute__((noinline))
bar(int ** x)7 bar (int **x)
8 {
9   struct Foo *f = (struct Foo *)(x - 1);
10   *(f->p) = 0;
11 }
12 
foo(void)13 int foo(void)
14 {
15   struct Foo f;
16   int i = 1, j = 2;
17   f.p = &i;
18   f.q = &j;
19   bar(&f.q);
20   return i;
21 }
22 
23 extern void abort (void);
main()24 int main()
25 {
26   if (foo () != 0)
27     abort ();
28   return 0;
29 }
30