diff options
Diffstat (limited to 'clang/lib/Sema/SemaTemplate.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 15 | 
1 files changed, 8 insertions, 7 deletions
| diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index ecac7a212a5..307be9d7865 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -534,6 +534,14 @@ void Sema::ActOnTypeParameterDefault(DeclPtrTy TypeParam,  /// otherwise, produces a diagnostic and returns a NULL type.  QualType  Sema::CheckNonTypeTemplateParameterType(QualType T, SourceLocation Loc) { +  // We don't allow variably-modified types as the type of non-type template +  // parameters. +  if (T->isVariablyModifiedType()) { +    Diag(Loc, diag::err_variably_modified_nontype_template_param) +      << T; +    return QualType(); +  } +    // C++ [temp.param]p4:    //    // A non-type template-parameter shall have one of the following @@ -553,13 +561,6 @@ Sema::CheckNonTypeTemplateParameterType(QualType T, SourceLocation Loc) {        // assume that it is well-formed.        T->isDependentType())      return T; -  // We don't allow variably-modified types as the type of non-type template -  // parameters. -  else if (T->isVariablyModifiedType()) { -    Diag(Loc, diag::err_variably_modified_nontype_template_param) -      << T; -    return QualType(); -  }    // C++ [temp.param]p8:    //    //   A non-type template-parameter of type "array of T" or | 

