1/* { dg-do run } */
2/* { dg-options "-fipa-pta" } */
3/* { dg-additional-sources "pr43879-1_0.C" } */
4
5struct A {
6    int *i;
7    A();
8    ~A();
9};
10
11static inline int
12aa(int *a, int *b)
13{
14  (void)b;
15  return *a;
16}
17
18struct 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	  }
31};
32
33int
34test()
35{
36  B b1;
37  B b2 = B(A());
38  b1 = B(A());
39  if (b1.i != b2.i) __builtin_abort();
40  return 0;
41}
42
43int
44main()
45{
46  return test();
47}
48
49