summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/Warnings.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-01-27 06:15:43 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-01-27 06:15:43 +0000
commit9ffada97ce7bf4def03a8158064b6c8df274f95a (patch)
tree2bcb690d78a892fb33fd189c6713195c39df1cc4 /clang/lib/Frontend/Warnings.cpp
parent0b5ec2d19970b4889886bfb7c0ac5542083cb74e (diff)
downloadbcm5719-llvm-9ffada97ce7bf4def03a8158064b6c8df274f95a.tar.gz
bcm5719-llvm-9ffada97ce7bf4def03a8158064b6c8df274f95a.zip
Due to a bug, -Wno-everything works like -Weverything. Fix the bug by having
-Wno-everything remap all warnings to ignored. We can now use "-Wno-everything -W<warning>" to ignore all warnings except specific ones. llvm-svn: 149121
Diffstat (limited to 'clang/lib/Frontend/Warnings.cpp')
-rw-r--r--clang/lib/Frontend/Warnings.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/Frontend/Warnings.cpp b/clang/lib/Frontend/Warnings.cpp
index 576dd3d4459..f68e03b0d51 100644
--- a/clang/lib/Frontend/Warnings.cpp
+++ b/clang/lib/Frontend/Warnings.cpp
@@ -110,8 +110,14 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags,
// -Weverything is a special case as well. It implicitly enables all
// warnings, including ones not explicitly in a warning group.
if (Opt == "everything") {
- if (SetDiagnostic)
- Diags.setEnableAllWarnings(true);
+ if (SetDiagnostic) {
+ if (isPositive) {
+ Diags.setEnableAllWarnings(true);
+ } else {
+ Diags.setEnableAllWarnings(false);
+ Diags.setMappingToAllDiagnostics(diag::MAP_IGNORE);
+ }
+ }
continue;
}
OpenPOWER on IntegriCloud