Author: rsmith Date: Tue Dec 27 14:03:09 2016 New Revision: 290625 URL: http://llvm.org/viewvc/llvm-project?rev=290625&view=rev Log: Add warning flag for "partial specialization is not more specialized than primary template" error (since Eigen hits it), and while I'm here also add a warning flag for "partial specialization is not usable because one or more of its parameters cannot be deduced" warning.
Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td cfe/trunk/lib/Sema/SemaTemplate.cpp cfe/trunk/test/Misc/warning-flags.c Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=290625&r1=290624&r2=290625&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original) +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Tue Dec 27 14:03:09 2016 @@ -4043,14 +4043,16 @@ def err_partial_spec_args_match_primary_ "%select{class|variable}0 template partial specialization does not " "specialize any template argument; to %select{declare|define}1 the " "primary template, remove the template argument list">; -def err_partial_spec_not_more_specialized_than_primary : Error< +def ext_partial_spec_not_more_specialized_than_primary : ExtWarn< "%select{class|variable}0 template partial specialization is not " - "more specialized than the primary template">; + "more specialized than the primary template">, DefaultError, + InGroup<DiagGroup<"invalid-partial-specialization">>; def note_partial_spec_not_more_specialized_than_primary : Note<"%0">; def warn_partial_specs_not_deducible : Warning< "%select{class|variable}0 template partial specialization contains " "%select{a template parameter|template parameters}1 that cannot be " - "deduced; this partial specialization will never be used">; + "deduced; this partial specialization will never be used">, + InGroup<DiagGroup<"unusable-partial-specialization">>; def note_partial_spec_unused_parameter : Note< "non-deducible template parameter %0">; def err_partial_spec_ordering_ambiguous : Error< Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp?rev=290625&r1=290624&r2=290625&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaTemplate.cpp (original) +++ cfe/trunk/lib/Sema/SemaTemplate.cpp Tue Dec 27 14:03:09 2016 @@ -2637,8 +2637,8 @@ static void checkMoreSpecializedThanPrim auto *Template = Partial->getSpecializedTemplate(); S.Diag(Partial->getLocation(), - diag::err_partial_spec_not_more_specialized_than_primary) - << /*variable template*/isa<VarTemplateDecl>(Template); + diag::ext_partial_spec_not_more_specialized_than_primary) + << isa<VarTemplateDecl>(Template); if (Info.hasSFINAEDiagnostic()) { PartialDiagnosticAt Diag = {SourceLocation(), Modified: cfe/trunk/test/Misc/warning-flags.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/warning-flags.c?rev=290625&r1=290624&r2=290625&view=diff ============================================================================== --- cfe/trunk/test/Misc/warning-flags.c (original) +++ cfe/trunk/test/Misc/warning-flags.c Tue Dec 27 14:03:09 2016 @@ -18,7 +18,7 @@ This test serves two purposes: The list of warnings below should NEVER grow. It should gradually shrink to 0. -CHECK: Warnings without flags (79): +CHECK: Warnings without flags (78): CHECK-NEXT: ext_excess_initializers CHECK-NEXT: ext_excess_initializers_in_char_array_initializer CHECK-NEXT: ext_expected_semi_decl_list @@ -78,7 +78,6 @@ CHECK-NEXT: warn_not_compound_assign CHECK-NEXT: warn_objc_property_copy_missing_on_block CHECK-NEXT: warn_objc_protocol_qualifier_missing_id CHECK-NEXT: warn_on_superclass_use -CHECK-NEXT: warn_partial_specs_not_deducible CHECK-NEXT: warn_pp_convert_to_positive CHECK-NEXT: warn_pp_expr_overflow CHECK-NEXT: warn_pp_line_decimal _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits