PR testsuite/86649
[official-gcc.git] / gcc / testsuite / g++.dg / tree-ssa / pr46734.C
blobe95c620897490ec65d43edf66686ddf01354eab3
1 /* { dg-do compile } */
2 /* { dg-options "-O -fipa-sra" } */
4 struct A
6   int *p;
7   A() {p = (int *) -1;}
8   ~A() {if (p && p != (int *) -1) *p = 0;}
9 };
11 struct B
13   A a;
14   char data[23];
15   B() : a() {data[0] = 0;}
18 extern A ga;
19 extern int *gi;
20 extern void *gz;
21 extern B *gb;
23 static int * __attribute__ ((noinline)) foo (B *b, void *z)
25   __builtin_memcpy (gz, z, 28);
26   ga = b->a;
27   return b->a.p;
30 int *bar (B *b, void *z)
32   gb = b;
33   return foo (b, z);