1 /* PR tree-optimization/101223 */ 2 /* { dg-do run } */ 3 /* { dg-options "-O2 " } */ 4 5 struct { 6 int a : 1; 7 } b; 8 int c = 1, d; foo1()9int foo1() { 10 for (; d < 2; d++) { 11 int e = ~c, f = 0, g; 12 if (e) { 13 f = c; 14 g = b.a; 15 b.a = f; 16 if (b.a >= g) 17 __builtin_abort(); 18 } 19 c = f; 20 b.a = g; 21 } 22 return 0; 23 } 24 foo2()25int foo2() { 26 for (; d < 2; d++) { 27 int e = ~c, f = 0, g; 28 if (e) { 29 f = c; 30 g = b.a; 31 b.a = f; 32 if (g <= b.a) 33 __builtin_abort(); 34 } 35 c = f; 36 b.a = g; 37 } 38 return 0; 39 } main()40int main () 41 { 42 return foo1() + foo2(); 43 } 44 45