diff options
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Diagnostic.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Basic/DiagnosticIDs.cpp | 19 | ||||
-rw-r--r-- | clang/lib/Basic/Warnings.cpp | 6 |
3 files changed, 6 insertions, 21 deletions
diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp index 686e50496e6..f784fe7c321 100644 --- a/clang/lib/Basic/Diagnostic.cpp +++ b/clang/lib/Basic/Diagnostic.cpp @@ -54,7 +54,7 @@ DiagnosticsEngine::DiagnosticsEngine( PrintTemplateTree = false; ShowColors = false; ShowOverloads = Ovl_All; - ExtBehavior = Ext_Ignore; + ExtBehavior = diag::Severity::Ignored; ErrorLimit = 0; TemplateBacktraceLimit = 0; diff --git a/clang/lib/Basic/DiagnosticIDs.cpp b/clang/lib/Basic/DiagnosticIDs.cpp index c7a3e9704ac..0bb0b9f928e 100644 --- a/clang/lib/Basic/DiagnosticIDs.cpp +++ b/clang/lib/Basic/DiagnosticIDs.cpp @@ -440,23 +440,8 @@ DiagnosticIDs::getDiagnosticSeverity(unsigned DiagID, SourceLocation Loc, // For extension diagnostics that haven't been explicitly mapped, check if we // should upgrade the diagnostic. - if (IsExtensionDiag && !Mapping.isUser()) { - switch (Diag.ExtBehavior) { - case DiagnosticsEngine::Ext_Ignore: - break; - case DiagnosticsEngine::Ext_Warn: - // Upgrade ignored diagnostics to warnings. - if (Result == diag::Severity::Ignored) - Result = diag::Severity::Warning; - break; - case DiagnosticsEngine::Ext_Error: - // Upgrade ignored or warning diagnostics to errors. - if (Result == diag::Severity::Ignored || - Result == diag::Severity::Warning) - Result = diag::Severity::Error; - break; - } - } + if (IsExtensionDiag && !Mapping.isUser()) + Result = std::max(Result, Diag.ExtBehavior); // At this point, ignored errors can no longer be upgraded. if (Result == diag::Severity::Ignored) diff --git a/clang/lib/Basic/Warnings.cpp b/clang/lib/Basic/Warnings.cpp index 98f85a053b0..196a215463a 100644 --- a/clang/lib/Basic/Warnings.cpp +++ b/clang/lib/Basic/Warnings.cpp @@ -67,11 +67,11 @@ void clang::ProcessWarningOptions(DiagnosticsEngine &Diags, // extension diagnostics onto WARNING or ERROR unless the user has futz'd // around with them explicitly. if (Opts.PedanticErrors) - Diags.setExtensionHandlingBehavior(DiagnosticsEngine::Ext_Error); + Diags.setExtensionHandlingBehavior(diag::Severity::Error); else if (Opts.Pedantic) - Diags.setExtensionHandlingBehavior(DiagnosticsEngine::Ext_Warn); + Diags.setExtensionHandlingBehavior(diag::Severity::Warning); else - Diags.setExtensionHandlingBehavior(DiagnosticsEngine::Ext_Ignore); + Diags.setExtensionHandlingBehavior(diag::Severity::Ignored); SmallVector<diag::kind, 10> _Diags; const IntrusiveRefCntPtr< DiagnosticIDs > DiagIDs = |