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