1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-pre-stats" } */
3 int p;
4 int r;
5 
6 __attribute__ ((noinline))
a(void)7 static int a(void)
8 {
9   return p;
10 }
foo(int argc)11 int foo(int argc)
12 {
13   int q;
14   q = a();
15 
16   /* We should be able to move the call to a into the if path.
17      in a perfect world, we'd actually decide that it can't touch
18      r, and not recompute it at all!.  */
19   if (argc)
20     r = 9;
21   return q + a();
22 }
23 /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
24