1 typedef void* Ptr;
2 
3 struct A
4 {
5   int i;
6   union
7   {
8     Ptr p;
9     char *q;
10   } u;
11 };
12 
foo(struct A * p,char * q)13 static 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 
bar(struct A * p,char * q)21 void bar(struct A *p, char *q)
22 {
23   foo(p, q);
24 }
25