From: Daniel Dunbar Date: Thu, 7 Apr 2011 18:44:15 +0000 (+0000) Subject: Fronted/CC_LOG_DIAGNOSTICS: Tweak output form to be plist chunks, and don't X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5dccf575ad0b45a268d4026047234a6872440c95;p=clang Fronted/CC_LOG_DIAGNOSTICS: Tweak output form to be plist chunks, and don't output missing data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129093 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/LogDiagnosticPrinter.cpp b/lib/Frontend/LogDiagnosticPrinter.cpp index ca661a6af7..9eee843dbe 100644 --- a/lib/Frontend/LogDiagnosticPrinter.cpp +++ b/lib/Frontend/LogDiagnosticPrinter.cpp @@ -52,23 +52,37 @@ void LogDiagnosticPrinter::EndSourceFile() { llvm::SmallString<512> Msg; llvm::raw_svector_ostream OS(Msg); - OS << "{\n"; + OS << "\n"; // FIXME: Output main translation unit file name. // FIXME: Include the invocation, if dwarf-debug-flags is available. - OS << " \"diagnostics\" : [\n"; + OS << " diagnostics\n"; + OS << " \n"; for (unsigned i = 0, e = Entries.size(); i != e; ++i) { DiagEntry &DE = Entries[i]; - OS << " {\n"; - OS << " \"filename\" : \"" << DE.Filename << "\",\n"; - OS << " \"line\" : " << DE.Line << ",\n"; - OS << " \"column\" : " << DE.Column << ",\n"; - OS << " \"message\" : \"" << DE.Message << "\",\n"; - OS << " \"level\" : \"" << getLevelName(DE.DiagnosticLevel) << "\"\n"; - OS << " }" << ((i + 1 != e) ? "," : "") << '\n'; + OS << " \n"; + OS << " level\n" + << " " << getLevelName(DE.DiagnosticLevel) << "\n"; + if (!DE.Filename.empty()) { + OS << " filename\n" + << " " << DE.Filename << "\n"; + } + if (DE.Line != 0) { + OS << " line\n" + << " " << DE.Line << "\n"; + } + if (DE.Column != 0) { + OS << " column\n" + << " " << DE.Column << "\n"; + } + if (!DE.Message.empty()) { + OS << " message\n" + << " " << DE.Message << "\n"; + } + OS << " \n"; } - OS << " ]\n"; - OS << "},\n"; + OS << " \n"; + OS << "\n"; this->OS << OS.str(); }