1/* { dg-do run } */
2/* { dg-options "-O2 -fno-tree-sra -fipa-pta -fdump-ipa-pta" } */
3
4struct X
5{
6  long l1;
7  struct Y
8    {
9      long l2;
10      int *p;
11    } y;
12};
13int i;
14static int __attribute__((noinline))
15foo (struct X *x)
16{
17  struct Y y = x->y;
18  *y.p = 0;
19  i = 1;
20  return *y.p;
21}
22extern void abort (void);
23int 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 }" "pta" } } */
33/* { dg-final { cleanup-ipa-dump "pta" } } */
34