1typedef void* Ptr;
2
3struct A
4{
5  int i;
6  union
7  {
8    Ptr p;
9    char *q;
10  } u;
11};
12
13static void foo(struct A *p, char *q)
14{
15  if (p->i)
16    p->u.p = 0;
17  else
18    p->u.q = q;
19}
20
21void bar(struct A *p, char *q)
22{
23  foo(p, q);
24}
25