struct X { int i; }; | |
int __attribute__((noinline)) | |
foo (struct X *p, int *q, int a, int b) | |
{ | |
struct X x, y; | |
if (a) | |
p = &x; | |
if (b) | |
q = &x.i; | |
else | |
q = &y.i; | |
*q = 1; | |
return p->i; | |
} | |
extern void abort (void); | |
int main() | |
{ | |
if (foo((void *)0, (void *)0, 1, 1) != 1) | |
abort (); | |
return 0; | |
} |