From: Daniel Jasper Date: Mon, 21 Jan 2013 14:18:28 +0000 (+0000) Subject: Fix bug discovered by valgrind. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9c8c40e7334a59159392d020dd4339b86326ec00;p=clang 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 --- 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::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