/* { dg-do compile } */ | |
/* { dg-options "-O2 -fdump-tree-alias" } */ | |
extern double cos (double); | |
extern double sin (double); | |
double f(double a) | |
{ | |
double b; | |
double c,d; | |
double (*fp) (double); | |
if (a < 2.0) | |
{ | |
fp = sin; | |
c = fp (a); | |
} | |
else | |
{ | |
c = 1.0; | |
fp = cos; | |
} | |
d = fp (a); | |
return d + c; | |
} | |
/* The points-to set of the final function pointer should be "sin cos" */ | |
/* { dg-final { scan-tree-dump-times "{ sin cos }" 1 "alias"} } */ | |
/* { dg-final { cleanup-tree-dump "alias" } } */ |