diff options
author | Sunil Srivastava <sunil_srivastava@playstation.sony.com> | 2016-02-13 01:44:05 +0000 |
---|---|---|
committer | Sunil Srivastava <sunil_srivastava@playstation.sony.com> | 2016-02-13 01:44:05 +0000 |
commit | 5239de724d39eeb4dc3bc694696c763f7ed1ec43 (patch) | |
tree | 0be573814213799454f62680695945fda44bbe77 /clang/lib/Lex | |
parent | f5c53b859baedaa2102ef435a2f08ce05ab31128 (diff) | |
download | bcm5719-llvm-5239de724d39eeb4dc3bc694696c763f7ed1ec43.tar.gz bcm5719-llvm-5239de724d39eeb4dc3bc694696c763f7ed1ec43.zip |
Accept "-Weverything" in clang diagnistic pragmas
Differential Revision: http://reviews.llvm.org/D15095
llvm-svn: 260788
Diffstat (limited to 'clang/lib/Lex')
-rw-r--r-- | clang/lib/Lex/Pragma.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
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) |