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