From: Alp Toker Date: Sun, 6 Jul 2014 04:27:03 +0000 (+0000) Subject: writeARCDiagsToPlist(): make sure all diag levels get handled X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=94c392ca3778bb9b0f07ae3d0a398b627437bcee;p=clang writeARCDiagsToPlist(): make sure all diag levels get handled Handle 'remark' level diagnostics as warnings instead of supplemental notes, and use a covered switch to ensure the mapping is kept up to date. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212385 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/ARCMigrate/PlistReporter.cpp b/lib/ARCMigrate/PlistReporter.cpp index 263241761f..cd55625554 100644 --- a/lib/ARCMigrate/PlistReporter.cpp +++ b/lib/ARCMigrate/PlistReporter.cpp @@ -16,6 +16,22 @@ using namespace clang; using namespace arcmt; using namespace markup; +static StringRef getLevelName(DiagnosticsEngine::Level Level) { + switch (Level) { + case DiagnosticsEngine::Ignored: + llvm_unreachable("ignored"); + case DiagnosticsEngine::Note: + return "note"; + case DiagnosticsEngine::Remark: + case DiagnosticsEngine::Warning: + return "warning"; + case DiagnosticsEngine::Fatal: + case DiagnosticsEngine::Error: + return "error"; + } + llvm_unreachable("Invalid DiagnosticsEngine level!"); +} + void arcmt::writeARCDiagsToPlist(const std::string &outPath, ArrayRef diags, SourceManager &SM, @@ -84,12 +100,7 @@ void arcmt::writeARCDiagsToPlist(const std::string &outPath, EmitString(o, DiagIDs.getCategoryNameFromID( DiagIDs.getCategoryNumberForDiag(D.getID()))) << '\n'; o << " type"; - if (D.getLevel() >= DiagnosticsEngine::Error) - EmitString(o, "error") << '\n'; - else if (D.getLevel() == DiagnosticsEngine::Warning) - EmitString(o, "warning") << '\n'; - else - EmitString(o, "note") << '\n'; + EmitString(o, getLevelName(D.getLevel())) << '\n'; // Output the location of the bug. o << " location\n";