1 /* { dg-do compile } */
2 /* { dg-options "-O -fdump-tree-fre1" } */
3 
4 int x = 1;
fn()5 int __attribute__((noinline,noclone)) fn ()
6 {
7   return x;
8 }
9 int (*f)();
main()10 int main ()
11 {
12   int res;
13   f = fn;
14   x = 0;
15   res = f ();
16   res += x;
17   if (res != 0)
18     __builtin_abort ();
19   return 0;
20 }
21 
22 /* We should be able to optimize the load from x in main and thus the
23    addition.  */
24 
25 /* { dg-final { scan-tree-dump-times "= x;" 1 "fre1" } } */
26 /* { dg-final { scan-tree-dump-times " \\\+ " 0 "fre1" } } */
27