/* { dg-do compile } */ | |
/* { dg-options "-O -fdump-tree-fre1" } */ | |
int x = 1; | |
int __attribute__((noinline,noclone)) fn () | |
{ | |
return x; | |
} | |
int (*f)(); | |
int main () | |
{ | |
int res; | |
f = fn; | |
x = 0; | |
res = f (); | |
res += x; | |
if (res != 0) | |
__builtin_abort (); | |
return 0; | |
} | |
/* We should be able to optimize the load from x in main and thus the | |
addition. */ | |
/* { dg-final { scan-tree-dump-times "= x;" 1 "fre1" } } */ | |
/* { dg-final { scan-tree-dump-times " \\\+ " 0 "fre1" } } */ |