diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-05-16 19:28:02 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-05-16 19:28:02 +0000 |
commit | 286852a10c58ead95ddcd66a08680d0bb2a40666 (patch) | |
tree | 83b89d93a48d314f7bcc87119ed3cf311000be0e /clang/lib/Frontend/Warnings.cpp | |
parent | a32a0959202b223233960ccc3f9e975d29e79580 (diff) | |
download | bcm5719-llvm-286852a10c58ead95ddcd66a08680d0bb2a40666.tar.gz bcm5719-llvm-286852a10c58ead95ddcd66a08680d0bb2a40666.zip |
Warn about -Wno-foo where foo is an unknown warning option. This is helpful
for subtle misspellings such as -Wno-unused-command-line-arguments instead of
-Wno-unused-command-line-argument.
Also fix the diagnostic messages to properly handle -Wno- options. Previously,
the positive version was always emitted (i.e., -Wfoo was emitted for -Wno-foo).
rdar://11461500
llvm-svn: 156937
Diffstat (limited to 'clang/lib/Frontend/Warnings.cpp')
-rw-r--r-- | clang/lib/Frontend/Warnings.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Frontend/Warnings.cpp b/clang/lib/Frontend/Warnings.cpp index ec5fde0c3ef..80c0ebf57b9 100644 --- a/clang/lib/Frontend/Warnings.cpp +++ b/clang/lib/Frontend/Warnings.cpp @@ -83,6 +83,7 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags, bool SetDiagnostic = (Report == 0); for (unsigned i = 0, e = Opts.Warnings.size(); i != e; ++i) { StringRef Opt = Opts.Warnings[i]; + StringRef OrigOpt = Opts.Warnings[i]; // Treat -Wformat=0 as an alias for -Wno-format. if (Opt == "format=0") @@ -130,7 +131,7 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags, if ((Opt[5] != '=' && Opt[5] != '-') || Opt.size() == 6) { if (Report) Diags.Report(diag::warn_unknown_warning_specifier) - << "-Werror" << ("-W" + Opt.str()); + << "-Werror" << ("-W" + OrigOpt.str()); continue; } Specifier = Opt.substr(6); @@ -158,7 +159,7 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags, if ((Opt[12] != '=' && Opt[12] != '-') || Opt.size() == 13) { if (Report) Diags.Report(diag::warn_unknown_warning_specifier) - << "-Wfatal-errors" << ("-W" + Opt.str()); + << "-Wfatal-errors" << ("-W" + OrigOpt.str()); continue; } Specifier = Opt.substr(13); @@ -182,7 +183,7 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags, if (Report) { if (DiagIDs->getDiagnosticsInGroup(Opt, _Diags)) - EmitUnknownDiagWarning(Diags, "-W", Opt, isPositive); + EmitUnknownDiagWarning(Diags, "-W", OrigOpt, isPositive); } else { Diags.setDiagnosticGroupMapping(Opt, Mapping); } |