From: Daniel Jasper Date: Thu, 30 May 2013 15:20:29 +0000 (+0000) Subject: Fix another clang-format crasher related to multi-line comments. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=920927016ed13bff83af016701b7d118a3dfed3b;p=clang Fix another clang-format crasher related to multi-line comments. This fixes: /* * * something long going over the column limit. */ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182932 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/BreakableToken.cpp b/lib/Format/BreakableToken.cpp index 01317dbef3..8672ece9b7 100644 --- a/lib/Format/BreakableToken.cpp +++ b/lib/Format/BreakableToken.cpp @@ -241,6 +241,9 @@ BreakableBlockComment::BreakableBlockComment(const FormatStyle &Style, Lines[i] = Lines[i].substr(Offset); LeadingWhitespace[i] += Offset; } + // Exclude empty lines from the calculation of the left-most column. + if (Lines[i].empty()) + continue; IndentAtLineBreak = std::min(IndentAtLineBreak, StartOfLineColumn[i]); } DEBUG({ diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index b2e53a5334..07c5785386 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -3641,6 +3641,17 @@ TEST_F(FormatTest, BlockComments) { "/* */someCall(parameter);", getLLVMStyleWithColumns(15))); EXPECT_EQ("/*\n**\n*/", format("/*\n**\n*/")); + // FIXME: Consider whether empty lines can dictated the left-most column. + EXPECT_EQ("/*\n" + "*\n" + " * aaaaaa\n" + " * aaaaaa\n" + "*/", + format("/*\n" + "*\n" + " * aaaaaa aaaaaa\n" + "*/", + getLLVMStyleWithColumns(10))); FormatStyle NoBinPacking = getLLVMStyle(); NoBinPacking.BinPackParameters = false;