Author: epilk Date: Mon Nov 12 13:31:06 2018 New Revision: 346709 URL: http://llvm.org/viewvc/llvm-project?rev=346709&view=rev Log: [Sema] Make sure we substitute an instantiation-dependent default template argument
Fixes llvm.org/PR39623 Differential revision: https://reviews.llvm.org/D54414 Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp cfe/trunk/test/SemaCXX/alias-template.cpp Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp?rev=346709&r1=346708&r2=346709&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaTemplate.cpp (original) +++ cfe/trunk/lib/Sema/SemaTemplate.cpp Mon Nov 12 13:31:06 2018 @@ -4434,7 +4434,7 @@ SubstDefaultTemplateArgument(Sema &SemaR // If the argument type is dependent, instantiate it now based // on the previously-computed template arguments. - if (ArgType->getType()->isDependentType()) { + if (ArgType->getType()->isInstantiationDependentType()) { Sema::InstantiatingTemplate Inst(SemaRef, TemplateLoc, Param, Template, Converted, SourceRange(TemplateLoc, RAngleLoc)); Modified: cfe/trunk/test/SemaCXX/alias-template.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/alias-template.cpp?rev=346709&r1=346708&r2=346709&view=diff ============================================================================== --- cfe/trunk/test/SemaCXX/alias-template.cpp (original) +++ cfe/trunk/test/SemaCXX/alias-template.cpp Mon Nov 12 13:31:06 2018 @@ -179,3 +179,13 @@ struct S { }; static_assert(__is_same(S<3>::U, X[2]), ""); // expected-error {{static_assert failed}} } + +namespace PR39623 { +template <class T> +using void_t = void; + +template <class T, class = void_t<typename T::wait_what>> +int sfinae_me() { return 0; } // expected-note{{candidate template ignored: substitution failure}} + +int g = sfinae_me<int>(); // expected-error{{no matching function for call to 'sfinae_me'}} +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits