]> granicus.if.org Git - clang/commitdiff
When word-wrapping, be more defensive about a ridiculously small number of columns...
authorDouglas Gregor <dgregor@apple.com>
Fri, 15 May 2009 18:05:24 +0000 (18:05 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 15 May 2009 18:05:24 +0000 (18:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71870 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/TextDiagnosticPrinter.cpp
test/Misc/message-length.c

index f936807b6cfc135fc5033c8c0c0ca11965f62673..09c29109f18f1edc2f33850a2bec42f3fa756564 100644 (file)
@@ -160,10 +160,12 @@ static void SelectInterestingSourceRegion(std::string &SourceLine,
 
   // If the end of the interesting region comes before we run out of
   // space in the terminal, start at the beginning of the line.
-  if (CaretEnd < Columns - 3)
+  if (Columns > 3 && CaretEnd < Columns - 3)
     CaretStart = 0;
 
-  unsigned TargetColumns = Columns - 8; // Give us extra room for the ellipses.
+  unsigned TargetColumns = Columns;
+  if (TargetColumns > 8)
+    TargetColumns -= 8; // Give us extra room for the ellipses.
   unsigned SourceLength = SourceLine.size();
   while ((CaretEnd - CaretStart) < TargetColumns) {
     bool ExpandedRegion = false;
index d64b1bfc58a317e5ed9a06c0bca8d30b4ac0d933..ac5dab99ca5241424771d39dd7b17ec96864b3e2 100644 (file)
@@ -4,7 +4,7 @@
 // FIXME: This diagnostic is getting truncated very poorly.
 // RUN: grep -e '^  ...// some long comment text and a brace, eh {} ' %t.msg &&
 // RUN: grep -e '^                                                 \^' %t.msg &&
-
+// RUN: clang -fsyntax-only -fmessage-length=1 %s &&
 // RUN: true
 
 // Hack so we can check things better, force the file name and line.