https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63263
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- With the trunk I get an ICE too: t.cc: In instantiation of ‘void f(T&, float&) [with T = B]’: t.cc:22:9: required from here t.cc:4:3: error: no matching function for call to ‘B::B(int)’ T(1); ^ t.cc:14:8: note: candidate: B::B() struct B { ^ t.cc:14:8: note: candidate expects 0 arguments, 1 provided t.cc:14:8: note: candidate: B::B(const B&) t.cc:14:8: note: no known conversion for argument 1 from ‘int’ to ‘const B&’ t.cc:4:7: internal compiler error: in add_stmt, at cp/semantics.c:395 T(1); ^ Please submit a full bug report, with preprocessed source if appropriate.