From 069736222b93ff74a0fa0efdf454c31e07dd9696 Mon Sep 17 00:00:00 2001 From: Alp Toker Date: Sun, 6 Jul 2014 04:27:03 +0000 Subject: [PATCH] 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. llvm-svn: 212385 --- clang/lib/ARCMigrate/PlistReporter.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/clang/lib/ARCMigrate/PlistReporter.cpp b/clang/lib/ARCMigrate/PlistReporter.cpp index 2632417..cd55625 100644 --- a/clang/lib/ARCMigrate/PlistReporter.cpp +++ b/clang/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"; -- 2.7.4