From: Chandler Carruth Date: Mon, 26 Sep 2011 00:37:30 +0000 (+0000) Subject: Start a more correct pattern for factoring out the name printing. Slowly X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=761457827001290ca96bd2d5b05f182d21f28296;p=clang Start a more correct pattern for factoring out the name printing. Slowly I'm planning to switch a bunch of these over to use a raw_ostream instead of += on a string object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140488 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/TextDiagnosticPrinter.cpp b/lib/Frontend/TextDiagnosticPrinter.cpp index f645bd4925..7edc8fc1ab 100644 --- a/lib/Frontend/TextDiagnosticPrinter.cpp +++ b/lib/Frontend/TextDiagnosticPrinter.cpp @@ -1086,6 +1086,11 @@ static void PrintDiagnosticLevel(raw_ostream &OS, OS.resetColor(); } +static void PrintDiagnosticName(raw_ostream &OS, const DiagnosticInfo &Info) { + if (!DiagnosticIDs::isBuiltinNote(Info.getID())) + OS << " [" << DiagnosticIDs::getName(Info.getID()) << "]"; +} + void TextDiagnosticPrinter::HandleDiagnostic(DiagnosticsEngine::Level Level, const DiagnosticInfo &Info) { // Default implementation (Warnings/errors count). @@ -1121,13 +1126,11 @@ void TextDiagnosticPrinter::HandleDiagnostic(DiagnosticsEngine::Level Level, llvm::SmallString<100> OutStr; Info.FormatDiagnostic(OutStr); - if (DiagOpts->ShowNames && - !DiagnosticIDs::isBuiltinNote(Info.getID())) { - OutStr += " ["; - OutStr += DiagnosticIDs::getName(Info.getID()); - OutStr += "]"; - } - + llvm::raw_svector_ostream DiagMessageStream(OutStr); + if (DiagOpts->ShowNames) + PrintDiagnosticName(DiagMessageStream, Info); + DiagMessageStream.flush(); + std::string OptionName; if (DiagOpts->ShowOptionNames) { // Was this a warning mapped to an error using -Werror or pragma?