1 /* { dg-do run } */
2 /* { dg-options "-O2 -fno-tree-sra -fipa-pta -fdump-ipa-pta2" } */
3
4 struct X
5 {
6 long l1;
7 struct Y
8 {
9 long l2;
10 int *p;
11 } y;
12 };
13 int i;
14 static int __attribute__((noinline))
15 foo (struct X *x)
16 {
17 struct Y y = x->y;
18 *y.p = 0;
19 i = 1;
20 return *y.p;
21 }
22 extern void abort (void);
23 int main()
24 {
25 struct X x;
26 x.y.p = &i;
27 if (foo(&x) != 1)
28 abort ();
29 return 0;
30 }
31
32 /* { dg-final { scan-ipa-dump "y.\[0-9\]*\\\+\[0-9\]* = { i }" "pta2" } } */