1 /* { dg-options " -O3 " } */
2 /* { dg-do run } */
3
4 #include <assert.h>
5
6 int d, i;
7
8 struct S
9 {
10 int f0;
11 } *b, c, e, h, **g = &b;
12
13 static struct S *f = &e;
14
15 int
16 fn1 (int p)
17 {
18 int a = 0;
19 return a || p < 0 || p >= 2 || 1 >> p;
20 }
21
22 int
23 main ()
24 {
25 int k = 1, l, *m = &c.f0;
26
27 for (;;)
28 {
29 l = fn1 (i);
30 *m = k && i;
31 if (l)
32 {
33 int n[1] = {0};
34 }
35 break;
36 }
37
38 *g = &h;
39
40 assert (b);
41
42 if (d)
43 (*m)--;
44 d = (f != 0) | (i >= 0);
45
46 if (c.f0 != 0)
47 __builtin_abort ();
48
49 return 0;
50 }