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 01317db..8672ece 100644
--- a/lib/Format/BreakableToken.cpp
+++ b/lib/Format/BreakableToken.cpp
@@ -241,6 +241,9 @@
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<int>(IndentAtLineBreak, StartOfLineColumn[i]);
}
DEBUG({
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index b2e53a5..07c5785 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -3641,6 +3641,17 @@
"/* */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;