1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-pre-stats" } */
3 
4 extern void spoil (void);
5 
foo(int ** a,int argc)6 int foo(int **a,int argc)
7 {
8   int b;
9   int d, e;
10 
11   if (argc)
12     {
13       d = *(*a);
14     }
15   else
16     {
17       /* Spoil *a and *(*a) to avoid hoisting it before the "if (...)".  */
18       spoil ();
19     }
20   /* Should be able to eliminate one of the *(*a)'s along the if path
21      by pushing it into the else path. We will also eliminate
22      one of the *a's.  */
23   e = *(*a);
24   return d + e;
25 }
26 
27 /* { dg-final { scan-tree-dump-times "Eliminated: 2" 1 "pre"} } */
28