2 /* { dg-options "-fdump-tree-alias-details" } */
3 /* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */
5 extern void abort (void);
9 int * __attribute__((noinline
,const,noipa
))
10 foo_const(int *p
) { return p
; }
12 int * __attribute__((noinline
,pure
,noipa
))
13 foo_pure(int *p
) { return p
+ dummy
; }
15 int * __attribute__((noinline
,noipa
))
16 foo_normal(int *p
) { g
= 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 i }" "alias" } } */