Rebase.
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / pr57864.c
blob93962c20e3fdb9c190873c4b9f049eb107fca4df
1 /* { dg-do compile } */
3 union U {
4 double val;
5 union U *ptr;
6 };
8 union U *d;
9 double a;
10 int b;
11 int c;
13 static void fn1(union U *p1, int p2, _Bool p3)
15 union U *e;
17 if (p2 == 0)
18 a = ((union U*)((unsigned long)p1 & ~1))->val;
20 if (b) {
21 e = p1;
22 } else if (c) {
23 e = ((union U*)((unsigned long)p1 & ~1))->ptr;
24 d = e;
25 } else {
26 e = 0;
27 d = ((union U*)0)->ptr;
30 fn1 (e, 0, 0);
31 fn1 (0, 0, p3);
34 void fn2 (void)
36 fn1 (0, 0, 0);