blob: cfc3df212a1dd9c9eee5265c756b243f2d129447 [file] [log] [blame]
// PR middle-end/51929
// { dg-do compile }
// { dg-options "-O -fno-guess-branch-probability -fipa-cp -fipa-cp-clone --param=max-inline-insns-single=25" }
struct A
{
A (A, unsigned);
A (const char *);
~A () { a1 (a4 ()); }
void a1 (int);
unsigned a2 ();
char *a3 ();
int a4 ();
};
template <typename T>
struct B
{
A b;
B (A x, int y = 1) : b (x.a3 (), x.a2 ()) { if (y & 1) b.a2 (); }
};
extern template struct B <char>;
A a1 ("foo"), a2 ("bar");
B<char> b1 (a1), b2 (a2, 8);
void
foo ()
{
A a3 ("baz");
B<char> b3 (a1), b4 (a3);
}