From 5239de724d39eeb4dc3bc694696c763f7ed1ec43 Mon Sep 17 00:00:00 2001 From: Sunil Srivastava Date: Sat, 13 Feb 2016 01:44:05 +0000 Subject: Accept "-Weverything" in clang diagnistic pragmas Differential Revision: http://reviews.llvm.org/D15095 llvm-svn: 260788 --- clang/lib/Lex/Pragma.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'clang/lib/Lex/Pragma.cpp') diff --git a/clang/lib/Lex/Pragma.cpp b/clang/lib/Lex/Pragma.cpp index fea66daa5f8..f2a7e65e450 100644 --- a/clang/lib/Lex/Pragma.cpp +++ b/clang/lib/Lex/Pragma.cpp @@ -1024,10 +1024,19 @@ public: return; } - if (PP.getDiagnostics().setSeverityForGroup( - WarningName[1] == 'W' ? diag::Flavor::WarningOrError - : diag::Flavor::Remark, - WarningName.substr(2), SV, DiagLoc)) + diag::Flavor Flavor = WarningName[1] == 'W' ? diag::Flavor::WarningOrError + : diag::Flavor::Remark; + StringRef Group = WarningName.substr(2); + bool unknownDiag = false; + if (Group == "everything") { + // Special handling for pragma clang diagnostic ... "-Weverything". + // There is no formal group named "everything", so there has to be a + // special case for it. + PP.getDiagnostics().setSeverityForAll(Flavor, SV, DiagLoc); + } else + unknownDiag = PP.getDiagnostics().setSeverityForGroup(Flavor, Group, SV, + DiagLoc); + if (unknownDiag) PP.Diag(StringLoc, diag::warn_pragma_diagnostic_unknown_warning) << WarningName; else if (Callbacks) -- cgit v1.2.3