diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -1492,6 +1492,8 @@ CurrentState.NestedBlockIndent = CurrentState.Indent; if (Style.PackConstructorInitializers > FormatStyle::PCIS_BinPack) CurrentState.AvoidBinPacking = true; + else + CurrentState.BreakBeforeParameter = false; } if (Current.is(TT_InheritanceColon)) { CurrentState.Indent = 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 @@ -7950,6 +7950,11 @@ verifyFormat("template \n" "Constructor() : Initializer(FitsOnTheLine) {}", getStyleWithColumns(Style, 50)); + verifyFormat( + "Class::Class(int some, int arguments, int loooooooooooooooooooong,\n" + " int mooooooooooooore) noexcept :\n" + " Super{some, arguments}, Member{5}, Member2{2} {}", + Style); Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; verifyFormat( "SomeClass::Constructor() :\n" @@ -7986,10 +7991,10 @@ " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa),\n" " aaaaaaaaaaaaaaa(aaaaaaaaaaaa) {}", Style); - verifyFormat("Constructor(aaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n" - " aaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) :\n" - " aaaaaaaaaa(aaaaaa) {}", - Style); + verifyFormat( + "Ctor(aaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n" + " aaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) : aaaaaaaaaa(aaaaaa) {}", + Style); verifyFormat("Constructor() :\n" " aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaa),\n"