1 struct foo { int i; int j; };
2 
bar(struct foo * k,int k2,int f,int f2)3 int 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()22 int 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