// 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 struct B { A b; B (A x, int y = 1) : b (x.a3 (), x.a2 ()) { if (y & 1) b.a2 (); } }; extern template struct B ; A a1 ("foo"), a2 ("bar"); B b1 (a1), b2 (a2, 8); void foo () { A a3 ("baz"); B b3 (a1), b4 (a3); }