| struct foo { int i; int j; }; | |
| int bar (struct foo *k, int k2, int f, int f2) | |
| { | |
| int *p, *q; | |
| int res; | |
| if (f) | |
| p = &k->i; | |
| else | |
| p = &k->j; | |
| res = *p; | |
| k->i = 1; | |
| if (f2) | |
| q = p; | |
| else | |
| q = &k2; | |
| return res + *q; | |
| } | |
| extern void abort (void); | |
| int main() | |
| { | |
| struct foo k; | |
| k.i = 0; | |
| k.j = 1; | |
| if (bar (&k, 1, 1, 1) != 1) | |
| abort (); | |
| return 0; | |
| } |