// RUN: %clang_cc1 -fsyntax-only -verify %s // PR5426 - the non-dependent obj would be fully processed and wrapped in a // CXXConstructExpr at definition time, which would lead to a failure at // instantiation time. struct arg { arg(); }; struct oldstylemove { oldstylemove(oldstylemove&); oldstylemove(const arg&); }; template void fn(T t, const arg& arg) { oldstylemove obj(arg); } void test() { fn(1, arg()); } struct X0 { }; struct X1 { explicit X1(const X0 &x0 = X0()); }; template void f0() { X1 x1; } template void f0(); template void f0(); struct NonTrivial { NonTrivial(); ~NonTrivial(); }; template void f1() { NonTrivial array[N]; } template<> void f1<2>();