aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2013-01-21 14:18:28 +0000
committerDaniel Jasper <djasper@google.com>2013-01-21 14:18:28 +0000
commit9c8c40e7334a59159392d020dd4339b86326ec00 (patch)
tree10e504c47c854aa0af4c35c2b91a83322c42b19f
parent0fbe0087d2558c509dcfdb4b593b844625c2dd3d (diff)
Fix bug discovered by valgrind.
When trying to merge lines, we should not touch lines that are invalid, as we don't know how long they might be. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173043 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Format/Format.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index d234006a25..a4de062fbf 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -1716,7 +1716,7 @@ private:
return;
Limit -= I->Last->TotalLength + 1; // One space.
- if (I + 1 == E)
+ if (I + 1 == E || (I + 1)->Type == LT_Invalid)
return;
if (I->Last->is(tok::l_brace)) {
@@ -1770,7 +1770,8 @@ private:
std::vector<AnnotatedLine>::iterator E,
unsigned Limit){
// Check that we still have three lines and they fit into the limit.
- if (I + 2 == E || !nextTwoLinesFitInto(I, Limit))
+ if (I + 2 == E || (I + 2)->Type == LT_Invalid ||
+ !nextTwoLinesFitInto(I, Limit))
return;
// First, check that the current line allows merging. This is the case if