]> granicus.if.org Git - clang/commitdiff
Fix incorrect recognition of bin-packing.
authorDaniel Jasper <djasper@google.com>
Thu, 28 Feb 2013 09:39:12 +0000 (09:39 +0000)
committerDaniel Jasper <djasper@google.com>
Thu, 28 Feb 2013 09:39:12 +0000 (09:39 +0000)
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) {}

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176242 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/Format.cpp
unittests/Format/FormatTest.cpp

index ea96b8f59dab46ac59c9eb0db13ece850b759e00..e3f7b4b2e27d48c47fa0ea432ec822a35d46ab9d 100644 (file)
@@ -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,
index 81833e5e02c0ab63749272ce31822372b92994d4..929e3c20ba0f3d8ecd567c5098e5df1e3a6d1b2e 100644 (file)
@@ -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;