diff --git a/clang/lib/Format/WhitespaceManager.cpp b/clang/lib/Format/WhitespaceManager.cpp --- a/clang/lib/Format/WhitespaceManager.cpp +++ b/clang/lib/Format/WhitespaceManager.cpp @@ -369,6 +369,8 @@ if (Changes[i].Tok->MatchingParen && Changes[i].Tok->MatchingParen->is(TT_LambdaLBrace)) return false; + if (Changes[ScopeStart].NewlinesBefore > 0) + return false; return Style.BinPackArguments; } diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -18010,11 +18010,21 @@ Style); // clang-format on - Style = getLLVMStyleWithColumns(120); + Style = getLLVMStyleWithColumns(20); Style.AlignConsecutiveAssignments.Enabled = true; - Style.ContinuationIndentWidth = 4; Style.IndentWidth = 4; + verifyFormat("void foo() {\n" + " int i1 = 1;\n" + " int j = 0;\n" + " int k = bar(\n" + " argument1,\n" + " argument2);\n" + "}", + Style); + + Style.ColumnLimit = 120; + // clang-format off verifyFormat("void SomeFunc() {\n" " newWatcher.maxAgeUsec = ToLegacyTimestamp(GetMaxAge(FromLegacyTimestamp(monitorFrequencyUsec),\n"