1struct foo { int i; int j; };
2
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
20extern void abort (void);
21
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