/* { dg-do run } */ /* { dg-options "-O2 -fdump-tree-alias" } */ const static int a; int __attribute__((noinline)) foo(int i) { const int *q; int b; if (i) q = &a; else q = &b; b = 1; /* We should not prune a from the points-to set of q. */ return *q; } extern void abort (void); int main() { if (foo(1) != 0) abort (); return 0; } /* { dg-final { scan-tree-dump "q_. = { a b }" "alias" } } */ /* { dg-final { cleanup-tree-dump "alias" } } */