1 /* { dg-do run } */
2 /* { dg-options "-O2" } */
3 /* { dg-require-effective-target ia32 } */
4 int a, b, c, d, e[2], f, l, m, n, o;
5 long long g = 1, j;
6 static unsigned int h;
7 static int i, k;
8
9 void
fn1(long long p)10 fn1 (long long p)
11 {
12 int q = p;
13 f = 1 ^ e[f ^ (q & 1)];
14 }
15
16 static void
fn2(long long p)17 fn2 (long long p)
18 {
19 f = 1 ^ e[(f ^ 1) & 1];
20 fn1 (p >> 1 & 1);
21 fn1 (p >> 32 & 1);
22 }
23
24 void
fn3(int p)25 fn3 (int p)
26 {
27 g |= j = p;
28 }
29
30 int
main()31 main ()
32 {
33 e[0] = 1;
34 char p = l;
35 h = --g;
36 i = o = c;
37 m = d ? 1 / d : 0;
38 fn3 (l || 0);
39 b = a;
40 n = j++;
41 k--;
42 fn2 (g);
43 fn2 (h);
44 fn2 (i);
45
46 if (k + f)
47 __builtin_abort ();
48
49 return 0;
50 }
51
52