http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51929
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-09 18:43:01 UTC --- Reduced testcase: // { 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); }