1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -fno-code-hoisting -fno-tree-cselim -fdump-tree-pre-stats" } */ 3 int g2; 4 struct A { 5 int a; int b; 6 }g1; foo(int a,int b)7int foo(int a, int b) 8 { 9 if (a > 0) 10 { 11 g1.a = a+ b; 12 } 13 else 14 g1.a = b; 15 16 g2 = a+b; 17 18 return g1.a; 19 } 20 /* We will eliminate the g1.a from the return statement as fully redundant, 21 and remove one calculation of a + b. */ 22 /* { dg-final { scan-tree-dump-times "Eliminated: 2" 1 "pre"} } */ 23