From c5f0ed8753735bd2bd254724dea5b66a13a42f89 Mon Sep 17 00:00:00 2001 From: Steven Wu <stevenwu@apple.com> Date: Fri, 14 Nov 2014 21:23:56 +0000 Subject: [PATCH] Add DiagID and Warning Flag to DiagnosticsLog git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222042 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Frontend/LogDiagnosticPrinter.h | 3 +++ lib/Frontend/LogDiagnosticPrinter.cpp | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/clang/Frontend/LogDiagnosticPrinter.h b/include/clang/Frontend/LogDiagnosticPrinter.h index 8d60e9bd26..98adf655fc 100644 --- a/include/clang/Frontend/LogDiagnosticPrinter.h +++ b/include/clang/Frontend/LogDiagnosticPrinter.h @@ -35,6 +35,9 @@ class LogDiagnosticPrinter : public DiagnosticConsumer { /// The ID of the diagnostic. unsigned DiagnosticID; + + /// The Option Flag for the diagnostic + std::string WarningOption; /// The level of the diagnostic. DiagnosticsEngine::Level DiagnosticLevel; diff --git a/lib/Frontend/LogDiagnosticPrinter.cpp b/lib/Frontend/LogDiagnosticPrinter.cpp index c2dcd1be31..c6a18e0d80 100644 --- a/lib/Frontend/LogDiagnosticPrinter.cpp +++ b/lib/Frontend/LogDiagnosticPrinter.cpp @@ -63,6 +63,14 @@ LogDiagnosticPrinter::EmitDiagEntry(llvm::raw_ostream &OS, << " "; EmitString(OS, DE.Message) << '\n'; } + OS << " <key>ID</key>\n" + << " "; + EmitInteger(OS, DE.DiagnosticID) << '\n'; + if (!DE.WarningOption.empty()) { + OS << " <key>WarningOption</key>\n" + << " "; + EmitString(OS, DE.WarningOption) << '\n'; + } OS << " </dict>\n"; } @@ -122,6 +130,8 @@ void LogDiagnosticPrinter::HandleDiagnostic(DiagnosticsEngine::Level Level, DE.DiagnosticID = Info.getID(); DE.DiagnosticLevel = Level; + DE.WarningOption = DiagnosticIDs::getWarningOptionForDiag(DE.DiagnosticID); + // Format the message. SmallString<100> MessageStr; Info.FormatDiagnostic(MessageStr); -- 2.40.0