/* { 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" } } */