diff options
Diffstat (limited to 'lib/Sema/SemaTemplate.cpp')
-rw-r--r-- | lib/Sema/SemaTemplate.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/Sema/SemaTemplate.cpp b/lib/Sema/SemaTemplate.cpp index a79c17cdbf..f94f34626d 100644 --- a/lib/Sema/SemaTemplate.cpp +++ b/lib/Sema/SemaTemplate.cpp @@ -626,12 +626,18 @@ Decl *Sema::ActOnNonTypeTemplateParameter(Scope *S, Declarator &D, PrevDecl); } - T = CheckNonTypeTemplateParameterType(T, D.getIdentifierLoc()); - if (T.isNull()) { + if (DiagnoseUnexpandedParameterPack(D.getIdentifierLoc(), TInfo, + UPPC_NonTypeTemplateParameterType)) { T = Context.IntTy; // Recover with an 'int' type. Invalid = true; + } else { + T = CheckNonTypeTemplateParameterType(T, D.getIdentifierLoc()); + if (T.isNull()) { + T = Context.IntTy; // Recover with an 'int' type. + Invalid = true; + } } - + NonTypeTemplateParmDecl *Param = NonTypeTemplateParmDecl::Create(Context, Context.getTranslationUnitDecl(), D.getIdentifierLoc(), |