aboutsummaryrefslogtreecommitdiff
path: root/lib/Format/Format.cpp
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 /lib/Format/Format.cpp
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
Diffstat (limited to 'lib/Format/Format.cpp')
-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