1 /* { dg-do run } */
2 /* { dg-options "-fdump-tree-alias" } */
3 /* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */
4 
5 volatile int i;
foo(int ** p)6 int ** __attribute__((noinline,pure)) foo(int **p) { i; return p; }
bar(void)7 int bar(void)
8 {
9   int i = 0, j = 1;
10   int *p, **q;
11   p = &i;
12   q = foo(&p);
13   *q = &j;
14   return *p;
15 }
16 extern void abort (void);
main()17 int main()
18 {
19   if (bar() != 1)
20     abort ();
21   return 0;
22 }
23 
24 /* { dg-final { scan-tree-dump "p.._. = { i j }" "alias" } } */
25