1 /* { dg-do run } */ 2 /* { dg-options "-O2 -fno-code-hoisting -fdump-tree-pre-stats" } */ 3 4 struct A 5 { 6 int i; 7 }; 8 9 struct B 10 { 11 struct A a[2]; 12 }; 13 14 int i = 1; 15 struct B b = { 0, 3 }; 16 17 void test()18test () 19 { 20 if (b.a[0].i != i) 21 { 22 int t = b.a[0].i; 23 b.a[0] = b.a[1]; 24 b.a[1].i = t; 25 } 26 27 if (b.a[1].i == i) 28 __builtin_abort (); 29 30 if (b.a[0].i == 0) 31 __builtin_abort (); 32 } 33 34 int main()35main () 36 { 37 test (); 38 return 0; 39 } 40 41 /* { dg-final { scan-tree-dump "Eliminated: 1" "pre" } } */ 42