1 /* { dg-do compile } */
2
3 union U {
4 double val;
5 union U *ptr;
6 };
7
8 union U *d;
9 double a;
10 int b;
11 int c;
12
fn1(union U * p1,int p2,_Bool p3)13 static void fn1(union U *p1, int p2, _Bool p3)
14 {
15 union U *e;
16
17 if (p2 == 0)
18 a = ((union U*)((__SIZE_TYPE__)p1 & ~1))->val;
19
20 if (b) {
21 e = p1;
22 } else if (c) {
23 e = ((union U*)((__SIZE_TYPE__)p1 & ~1))->ptr;
24 d = e;
25 } else {
26 e = 0;
27 d = ((union U*)0)->ptr;
28 }
29
30 fn1 (e, 0, 0);
31 fn1 (0, 0, p3);
32 }
33
fn2(void)34 void fn2 (void)
35 {
36 fn1 (0, 0, 0);
37 }
38