|
@@ -48,7 +48,8 @@ static void EmitUnknownDiagWarning(DiagnosticsEngine &Diags,
|
|
}
|
|
}
|
|
|
|
|
|
void clang::ProcessWarningOptions(DiagnosticsEngine &Diags,
|
|
void clang::ProcessWarningOptions(DiagnosticsEngine &Diags,
|
|
- const DiagnosticOptions &Opts) {
|
|
|
|
|
|
+ const DiagnosticOptions &Opts,
|
|
|
|
+ bool ReportDiags) {
|
|
Diags.setSuppressSystemWarnings(true); // Default to -Wno-system-headers
|
|
Diags.setSuppressSystemWarnings(true); // Default to -Wno-system-headers
|
|
Diags.setIgnoreAllWarnings(Opts.IgnoreWarnings);
|
|
Diags.setIgnoreAllWarnings(Opts.IgnoreWarnings);
|
|
Diags.setShowOverloads(Opts.getShowOverloads());
|
|
Diags.setShowOverloads(Opts.getShowOverloads());
|
|
@@ -84,6 +85,12 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags,
|
|
// conflicting options.
|
|
// conflicting options.
|
|
for (unsigned Report = 0, ReportEnd = 2; Report != ReportEnd; ++Report) {
|
|
for (unsigned Report = 0, ReportEnd = 2; Report != ReportEnd; ++Report) {
|
|
bool SetDiagnostic = (Report == 0);
|
|
bool SetDiagnostic = (Report == 0);
|
|
|
|
+
|
|
|
|
+ // If we've set the diagnostic state and are not reporting diagnostics then
|
|
|
|
+ // we're done.
|
|
|
|
+ if (!SetDiagnostic && !ReportDiags)
|
|
|
|
+ break;
|
|
|
|
+
|
|
for (unsigned i = 0, e = Opts.Warnings.size(); i != e; ++i) {
|
|
for (unsigned i = 0, e = Opts.Warnings.size(); i != e; ++i) {
|
|
StringRef Opt = Opts.Warnings[i];
|
|
StringRef Opt = Opts.Warnings[i];
|
|
StringRef OrigOpt = Opts.Warnings[i];
|
|
StringRef OrigOpt = Opts.Warnings[i];
|