diff options
| -rw-r--r-- | clang/include/clang/Basic/DiagnosticCommonKinds.td | 4 | ||||
| -rw-r--r-- | clang/include/clang/Basic/DiagnosticSemaKinds.td | 2 | ||||
| -rw-r--r-- | clang/lib/Parse/ParseTemplate.cpp | 4 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaType.cpp | 2 |
4 files changed, 5 insertions, 7 deletions
diff --git a/clang/include/clang/Basic/DiagnosticCommonKinds.td b/clang/include/clang/Basic/DiagnosticCommonKinds.td index 1374402012d..ef5e452e7f4 100644 --- a/clang/include/clang/Basic/DiagnosticCommonKinds.td +++ b/clang/include/clang/Basic/DiagnosticCommonKinds.td @@ -47,8 +47,8 @@ def err_param_redefinition : Error<"redefinition of parameter %0">; def err_invalid_storage_class_in_func_decl : Error< "invalid storage class specifier in function declarator">; def err_expected_namespace_name : Error<"expected namespace name">; -def err_variadic_templates : Error< - "variadic templates are only allowed in C++0x">; +def ext_variadic_templates : ExtWarn< + "variadic templates are a C++0x extension">; // Sema && Lex def ext_longlong : Extension< diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 870a0e0205c..9e7d0a57612 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -1825,8 +1825,6 @@ def ext_template_outside_of_template : ExtWarn< "'template' keyword outside of a template">, InGroup<CXX0x>; // C++0x Variadic Templates -def err_variadic_templates_unsupported : Error< - "variadic templates are not yet implemented">; def err_template_param_pack_default_arg : Error< "template parameter pack cannot have a default argument">; def err_template_param_pack_must_be_last_template_parameter : Error< diff --git a/clang/lib/Parse/ParseTemplate.cpp b/clang/lib/Parse/ParseTemplate.cpp index 05cdd5c87f0..d150260709e 100644 --- a/clang/lib/Parse/ParseTemplate.cpp +++ b/clang/lib/Parse/ParseTemplate.cpp @@ -467,7 +467,7 @@ Decl *Parser::ParseTypeParameter(unsigned Depth, unsigned Position) { EllipsisLoc = ConsumeToken(); if (!getLang().CPlusPlus0x) - Diag(EllipsisLoc, diag::err_variadic_templates); + Diag(EllipsisLoc, diag::ext_variadic_templates); } // Grab the template parameter name (if given) @@ -539,7 +539,7 @@ Parser::ParseTemplateTemplateParameter(unsigned Depth, unsigned Position) { EllipsisLoc = ConsumeToken(); if (!getLang().CPlusPlus0x) - Diag(EllipsisLoc, diag::err_variadic_templates); + Diag(EllipsisLoc, diag::ext_variadic_templates); } // Get the identifier, if given. diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp index c3fac5f3733..9a75d3604d6 100644 --- a/clang/lib/Sema/SemaType.cpp +++ b/clang/lib/Sema/SemaType.cpp @@ -1943,7 +1943,7 @@ TypeSourceInfo *Sema::GetTypeForDeclarator(Declarator &D, Scope *S, if (T->containsUnexpandedParameterPack()) T = Context.getPackExpansionType(T, llvm::Optional<unsigned>()); else if (!getLangOptions().CPlusPlus0x) - Diag(D.getEllipsisLoc(), diag::err_variadic_templates); + Diag(D.getEllipsisLoc(), diag::ext_variadic_templates); break; case Declarator::FileContext: |

