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