2 /* { dg-options "-fdump-tree-alias" } */
3 /* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
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_., points-to non-local, points-to vars: { i }" "alias" } } */
60 /* { dg-final { scan-tree-dump "q_pure_., points-to non-local, points-to escaped, points-to vars: { i }" "alias" } } */
61 /* { dg-final { scan-tree-dump "q_normal_., points-to non-local, points-to escaped, points-to vars: { }" "alias" } } */
62 /* { dg-final { cleanup-tree-dump "alias" } } */