summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2013-02-28 09:39:12 +0000
committerDaniel Jasper <djasper@google.com>2013-02-28 09:39:12 +0000
commitead41b6b8fa50d93bc21cad2c8d195dcfc7cb9cb (patch)
treedb4d3dbdfe64303fe896dde142fd7d0ad969ebe9
parentd8ffcfa9b87c9d08022cc916d41044d2d18e2cfd (diff)
downloadbcm5719-llvm-ead41b6b8fa50d93bc21cad2c8d195dcfc7cb9cb.tar.gz
bcm5719-llvm-ead41b6b8fa50d93bc21cad2c8d195dcfc7cb9cb.zip
Fix incorrect recognition of bin-packing.
Before (in Google style): Constructor() : aaaaa(aaaaaa), aaaaa(aaaaaa), aaaaa(aaaaaa), aaaaa(aaaaaa), aaaaa( aaaaaa) {} After: Constructor() : aaaaa(aaaaaa), aaaaa(aaaaaa), aaaaa(aaaaaa), aaaaa(aaaaaa), aaaaa(aaaaaa) {} llvm-svn: 176242
-rw-r--r--clang/lib/Format/Format.cpp3
-rw-r--r--clang/unittests/Format/FormatTest.cpp7
2 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index ea96b8f59da..e3f7b4b2e27 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -654,7 +654,8 @@ private:
AvoidBinPacking = false;
} else {
NewIndent = 4 + State.Stack.back().LastSpace;
- AvoidBinPacking = !Style.BinPackParameters;
+ AvoidBinPacking =
+ !Style.BinPackParameters || State.Stack.back().AvoidBinPacking;
}
State.Stack.push_back(
ParenState(NewIndent, State.Stack.back().LastSpace, AvoidBinPacking,
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 81833e5e02c..929e3c20ba0 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -1173,6 +1173,13 @@ TEST_F(FormatTest, ConstructorInitializers) {
" some_other_var_(var + 1) { // lined up\n"
"}",
OnePerLine);
+ verifyFormat("Constructor()\n"
+ " : aaaaa(aaaaaa),\n"
+ " aaaaa(aaaaaa),\n"
+ " aaaaa(aaaaaa),\n"
+ " aaaaa(aaaaaa),\n"
+ " aaaaa(aaaaaa) {}",
+ OnePerLine);
// This test takes VERY long when memoization is broken.
OnePerLine.BinPackParameters = false;
OpenPOWER on IntegriCloud