49 lines
543 B
C
49 lines
543 B
C
/* { dg-do run } */
|
|
/* { dg-options "-fipa-pta" } */
|
|
/* { dg-additional-sources "pr43879-1_0.C" } */
|
|
|
|
struct A {
|
|
int *i;
|
|
A();
|
|
~A();
|
|
};
|
|
|
|
static inline int
|
|
aa(int *a, int *b)
|
|
{
|
|
(void)b;
|
|
return *a;
|
|
}
|
|
|
|
struct B {
|
|
B() : i(0) {}
|
|
int i;
|
|
B(const A &a) : i(0)
|
|
{
|
|
f(*a.i);
|
|
}
|
|
void __attribute__((noinline, noclone))
|
|
f(int j)
|
|
{
|
|
aa(&i, &j);
|
|
i = 1;
|
|
}
|
|
};
|
|
|
|
int
|
|
test()
|
|
{
|
|
B b1;
|
|
B b2 = B(A());
|
|
b1 = B(A());
|
|
if (b1.i != b2.i) __builtin_abort();
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
main()
|
|
{
|
|
return test();
|
|
}
|
|
|