diff options
Diffstat (limited to 'lib/Frontend/TextDiagnosticPrinter.cpp')
-rw-r--r-- | lib/Frontend/TextDiagnosticPrinter.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/Frontend/TextDiagnosticPrinter.cpp b/lib/Frontend/TextDiagnosticPrinter.cpp index be69b760fa..df9b62433a 100644 --- a/lib/Frontend/TextDiagnosticPrinter.cpp +++ b/lib/Frontend/TextDiagnosticPrinter.cpp @@ -209,6 +209,16 @@ void TextDiagnosticPrinter::EmitCaretDiagnostic(SourceLocation Loc, while (CaretLine[CaretLine.size()-1] == ' ') CaretLine.erase(CaretLine.end()-1); + // If we are in -fdiagnostics-print-source-range-info mode, we are trying to + // produce easily machine parsable output. Add a space before the source line + // and the caret to make it trivial to tell the main diagnostic line from what + // the user is intended to see. + if (PrintRangeInfo) { + SourceLine = ' ' + SourceLine; + CaretLine = ' ' + CaretLine; + } + + // Emit what we have computed. OS << SourceLine << '\n'; OS << CaretLine << '\n'; @@ -238,8 +248,11 @@ void TextDiagnosticPrinter::EmitCaretDiagnostic(SourceLocation Loc, } } - if (!InsertionLine.empty()) + if (!InsertionLine.empty()) { + if (PrintRangeInfo) + OS << ' '; OS << InsertionLine << '\n'; + } } } |