1 /* { dg-options "-O1" } */
2 
3 extern void fn1 (void);
4 
5 int a[2], b;
6 
7 static void
foo(int p)8 foo (int p)
9 {
10   b = 1 ^ a[(b ^ 1) & 1];
11   b = 1 ^ a[b & 1];
12   if (p)
13     __builtin_abort ();
14 }
15 
16 int
main()17 main ()
18 {
19   foo (0);
20   b = 0;
21   foo (0);
22 
23   if (b != 1)
24     __builtin_abort ();
25 
26   return 0;
27 }
28