diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/ARCMigrate/PlistReporter.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/clang/lib/ARCMigrate/PlistReporter.cpp b/clang/lib/ARCMigrate/PlistReporter.cpp index 263241761f2..cd55625554f 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<StoredDiagnostic> diags, SourceManager &SM, @@ -84,12 +100,7 @@ void arcmt::writeARCDiagsToPlist(const std::string &outPath, EmitString(o, DiagIDs.getCategoryNameFromID( DiagIDs.getCategoryNumberForDiag(D.getID()))) << '\n'; o << " <key>type</key>"; - 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 << " <key>location</key>\n"; |