diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-08-07 00:24:21 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-08-07 00:24:21 +0000 |
commit | 3be1cb294f328f03afcb9c9e039b078a8643d0d9 (patch) | |
tree | 0d05f2452ec652e2986cf91e558cb2a24af79354 /clang/lib/Basic/Diagnostic.cpp | |
parent | 0233d4957443d8b07368eb0dca6ee77de8977a23 (diff) | |
download | bcm5719-llvm-3be1cb294f328f03afcb9c9e039b078a8643d0d9.tar.gz bcm5719-llvm-3be1cb294f328f03afcb9c9e039b078a8643d0d9.zip |
Use -Rblah, not -Wblah, to control remark diagnostics. This was always the
intent when we added remark support, but was never implemented in the general
case, because the first -R flags didn't need it. (-Rpass= had special handling
to accomodate its argument.)
-Rno-foo, -Reverything, and -Rno-everything can be used to turn off a remark,
or to turn on or off all remarks. Per discussion on cfe-commits, -Weverything
does not affect remarks, and -Reverything does not affect warnings or errors.
The only "real" -R flag we have right now is -Rmodule-build; that flag is
effectively renamed from -Wmodule-build to -Rmodule-build by this change.
-Wpass and -Wno-pass (and their friends) are also renamed to -Rpass and
-Rno-pass by this change; it's not completely clear whether we intended to have
a -Rpass (with no =pattern), but that is unchanged by this commit, other than
the flag name. The default pattern is effectively one which matches no passes.
In future, we may want to make the default pattern be .*, so that -Reverything
works for -Rpass properly.
llvm-svn: 215046
Diffstat (limited to 'clang/lib/Basic/Diagnostic.cpp')
-rw-r--r-- | clang/lib/Basic/Diagnostic.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp index f784fe7c321..4567e326713 100644 --- a/clang/lib/Basic/Diagnostic.cpp +++ b/clang/lib/Basic/Diagnostic.cpp @@ -228,11 +228,12 @@ void DiagnosticsEngine::setSeverity(diag::kind Diag, diag::Severity Map, FullSourceLoc(Loc, *SourceMgr))); } -bool DiagnosticsEngine::setSeverityForGroup(StringRef Group, diag::Severity Map, +bool DiagnosticsEngine::setSeverityForGroup(diag::Flavor Flavor, + StringRef Group, diag::Severity Map, SourceLocation Loc) { // Get the diagnostics in this group. SmallVector<diag::kind, 8> GroupDiags; - if (Diags->getDiagnosticsInGroup(Group, GroupDiags)) + if (Diags->getDiagnosticsInGroup(Flavor, Group, GroupDiags)) return true; // Set the mapping. @@ -247,14 +248,16 @@ bool DiagnosticsEngine::setDiagnosticGroupWarningAsError(StringRef Group, // If we are enabling this feature, just set the diagnostic mappings to map to // errors. if (Enabled) - return setSeverityForGroup(Group, diag::Severity::Error); + return setSeverityForGroup(diag::Flavor::WarningOrError, Group, + diag::Severity::Error); // Otherwise, we want to set the diagnostic mapping's "no Werror" bit, and // potentially downgrade anything already mapped to be a warning. // Get the diagnostics in this group. SmallVector<diag::kind, 8> GroupDiags; - if (Diags->getDiagnosticsInGroup(Group, GroupDiags)) + if (Diags->getDiagnosticsInGroup(diag::Flavor::WarningOrError, Group, + GroupDiags)) return true; // Perform the mapping change. @@ -276,14 +279,16 @@ bool DiagnosticsEngine::setDiagnosticGroupErrorAsFatal(StringRef Group, // If we are enabling this feature, just set the diagnostic mappings to map to // fatal errors. if (Enabled) - return setSeverityForGroup(Group, diag::Severity::Fatal); + return setSeverityForGroup(diag::Flavor::WarningOrError, Group, + diag::Severity::Fatal); // Otherwise, we want to set the diagnostic mapping's "no Werror" bit, and // potentially downgrade anything already mapped to be an error. // Get the diagnostics in this group. SmallVector<diag::kind, 8> GroupDiags; - if (Diags->getDiagnosticsInGroup(Group, GroupDiags)) + if (Diags->getDiagnosticsInGroup(diag::Flavor::WarningOrError, Group, + GroupDiags)) return true; // Perform the mapping change. @@ -299,11 +304,12 @@ bool DiagnosticsEngine::setDiagnosticGroupErrorAsFatal(StringRef Group, return false; } -void DiagnosticsEngine::setSeverityForAll(diag::Severity Map, +void DiagnosticsEngine::setSeverityForAll(diag::Flavor Flavor, + diag::Severity Map, SourceLocation Loc) { // Get all the diagnostics. SmallVector<diag::kind, 64> AllDiags; - Diags->getAllDiagnostics(AllDiags); + Diags->getAllDiagnostics(Flavor, AllDiags); // Set the mapping. for (unsigned i = 0, e = AllDiags.size(); i != e; ++i) |