2 /* { dg-options "-fdump-tree-alias" } */
3 /* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */
5 extern void abort (void);
9 int * __attribute__((noinline,const))
10 foo_const(int *p) { return p; }
12 int * __attribute__((noinline,pure))
13 foo_pure(int *p) { return p + dummy; }
15 int * __attribute__((noinline))
16 foo_normal(int *p) { glob = p; return p; }
22 int *q_const = foo_const(p);
33 int *q_normal = foo_normal(p);
44 int *q_pure = foo_pure(p);
59 /* { dg-final { scan-tree-dump "q_const_. = { NONLOCAL i }" "alias" } } */
60 /* { dg-final { scan-tree-dump "q_pure_. = { ESCAPED NONLOCAL i }" "alias" } } */
61 /* { dg-final { scan-tree-dump "q_normal_. = { ESCAPED NONLOCAL }" "alias" } } */
62 /* { dg-final { cleanup-tree-dump "alias" } } */