2014-04-07 Charles Baylis <charles.baylis@linaro.org>
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr43879-1_1.C
blob0c943381fa325a6add73f90df2310aa362d342e8
1 /* { dg-do run } */
2 /* { dg-options "-fipa-pta" } */
3 /* { dg-additional-sources "pr43879-1_0.C" } */
5 struct A {
6     int *i;
7     A();
8     ~A();
9 };
11 static inline int
12 aa(int *a, int *b)
14   (void)b;
15   return *a;
18 struct B {
19     B() : i(0) {}
20     int i;
21     B(const A &a) : i(0)
22     {
23       f(*a.i);
24     }
25     void __attribute__((noinline, noclone))
26         f(int j)
27           {
28             aa(&i, &j);
29             i = 1;
30           }
33 int
34 test()
36   B b1;
37   B b2 = B(A());
38   b1 = B(A());
39   if (b1.i != b2.i) __builtin_abort();
40   return 0;
43 int
44 main()
46   return test();