<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/64705>64705</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Clang-format: [Regression] Constructor init list wrongly parsed
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          JVApen
      </td>
    </tr>
</table>

<pre>
    Formatting the init list of a constructor is no longer correct. It looks like it is formatting the argument as the constructor body instead.

Formatting in LLVM16 (Correct):
````
template<AAAAAAAAAAAAAAAAAAAAAAA bbbbbbbbbbbbbbb>
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC<bbbbbbbbbbbbbbb>::CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC()
 : DDDDDDDDDDDDDDDDDDDDDDDDDDDDD<bbbbbbbbbbbbbbb>{EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE::EEEEEEEEEEEEEEEEEEEEEEEEEEEEE}
{
}
````
Formatting in LLVM17-RC2:
````
template<AAAAAAAAAAAAAAAAAAAAAAA bbbbbbbbbbbbbbb>
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC<bbbbbbbbbbbbbbb>::CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC()
 : DDDDDDDDDDDDDDDDDDDDDDDDDDDDD<bbbbbbbbbbbbbbb>
{
 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE::EEEEEEEEEEEEEEEEEEEEEEEEEEEEE
}
{
}
````

.clang-format
````
---
Language: Cpp
AccessModifierOffset: -3
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveAssignments:
 Enabled:         false
  AcrossEmptyLines: false
  AcrossComments: false
  AlignCompound:   false
  PadOperators: true
AlignConsecutiveBitFields:
  Enabled:         true
 AcrossEmptyLines: true
  AcrossComments:  true
  AlignCompound: false
  PadOperators:    true
AlignConsecutiveDeclarations:
 Enabled:         false
  AcrossEmptyLines: false
  AcrossComments: false
  AlignCompound:   false
  PadOperators: true
AlignConsecutiveMacros:
  Enabled:         false
 AcrossEmptyLines: false
  AcrossComments:  false
  AlignCompound: false
  PadOperators:    true
AlignConsecutiveShortCaseStatements:
 Enabled:         false
  AcrossEmptyLines: false
  AcrossComments: false
  AlignCaseColons: false
AlignEscapedNewlines: Left
AlignOperands:   Align
AlignTrailingComments:
  Kind: Always
  OverEmptyLines:  0
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
AttributeMacros:
  - __capability
BinPackArguments: false
BinPackParameters: false
BitFieldColonSpacing: Both
BraceWrapping:
  AfterCaseLabel: true
  AfterClass:      true
  AfterControlStatement: Always
 AfterEnum:       true
  AfterExternBlock: true
  AfterFunction: true
  AfterNamespace:  true
  AfterObjCDeclaration: true
 AfterStruct:     true
  AfterUnion:      true
  BeforeCatch: true
  BeforeElse:      true
  BeforeLambdaBody: true
  BeforeWhile: false
  IndentBraces:    false
  SplitEmptyFunction: true
 SplitEmptyRecord: true
  SplitEmptyNamespace: true
BreakAfterAttributes: Never
BreakAfterJavaFieldAnnotations: false
BreakArrays:     true
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeConceptDeclarations: Always
BreakBeforeBraces: Allman
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: false
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
BreakStringLiterals: true
ColumnLimit: 150
CommentPragmas:  '^(\\|-).+'
CompactNamespaces: false
ConstructorInitializerIndentWidth: 3
ContinuationIndentWidth: 6
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat:   false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: Leave
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: false
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IfMacros:
  - KJ_IF_MAYBE
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: true
IndentExternBlock: AfterExternBlock
IndentGotoLabels: false
IndentPPDirectives: None
IndentRequiresClause: false
IndentWidth:     3
IndentWrappedFunctionNames: false
InsertBraces:    false
InsertNewlineAtEOF: true
InsertTrailingCommas: None
IntegerLiteralSeparator:
  Binary: 4
  BinaryMinDigits: 0
  Decimal:         0
 DecimalMinDigits: 0
  Hex:             0
  HexMinDigits: 0
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
KeepEmptyLinesAtEOF: false
LambdaBodyIndentation: Signature
LineEnding: CRLF
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 2
NamespaceIndentation: All
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
PackConstructorInitializers: Never
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Right
PPIndentWidth:   -1
QualifierAlignment: Left
RawStringFormats:
  - Language:        Cpp
    Delimiters:
 - cc
      - CC
      - cpp
      - Cpp
      - CPP
 - 'c++'
      - 'C++'
    CanonicalDelimiter: ''
    BasedOnStyle: google
  - Language:        TextProto
    Delimiters:
      - pb
      - PB
      - proto
      - PROTO
 EnclosingFunctions:
      - EqualsProto
      - EquivToProto
      - PARSE_PARTIAL_TEXT_PROTO
      - PARSE_TEST_PROTO
      - PARSE_TEXT_PROTO
      - ParseTextOrDie
      - ParseTextProtoOrDie
 - ParseTestProto
      - ParsePartialTestProto
 CanonicalDelimiter: ''
    BasedOnStyle:    google
ReferenceAlignment: Pointer
ReflowComments:  true
RemoveBracesLLVM: false
RemoveParentheses: Leave
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SortIncludes:    CaseInsensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeJsonColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
  AfterControlStatements: true
  AfterForeachMacros: true
  AfterFunctionDefinitionName: false
  AfterFunctionDeclarationName: false
  AfterIfMacros:   true
 AfterOverloadedOperator: false
  AfterRequiresInClause: false
 AfterRequiresInExpression: false
  BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never
SpacesInContainerLiterals: true
SpacesInLineCommentPrefix:
 Minimum:         1
  Maximum:         -1
SpacesInParens: Never
SpacesInParensOptions:
  InCStyleCasts:   false
 InConditionalStatements: false
  InEmptyParentheses: false
  Other: false
SpacesInSquareBrackets: false
Standard: c++17
StatementAttributeLikeMacros:
  - Q_EMIT
StatementMacros:
 - Q_UNUSED
  - QT_REQUIRE_VERSION
TabWidth:        3
UseTab: Never
VerilogBreakBetweenInstancePorts: true
WhitespaceSensitiveMacros:
  - STRINGIZE
  - PP_STRINGIZE
 - BOOST_PP_STRINGIZE
  - NS_SWIFT_NAME
  - CF_SWIFT_NAME
...
````
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl1z4jrS_jXOjYsUmBCSi1wYY85hhgADzMx73htK2I3RiZA8kpyE_fVbkvwpm8zs1FZtbdW6MpmgftRqqVv9hZEQOKEAT85o4oymNyiTJ8afPn3zU6A3BxZfnmaMn5GUmCauPIGLKZYuwUK67OgiN2JUSJ5FknEXC5cylzCaAHcjxjlE8tadS5cw9iJcgl_AxVLBjk2eiCfZGah0kdCf60yVDC6mQgKKb53-1On75ndNLkzdxeLb8-DedbyHwCzseI_OMIc69_3qR49IOKcESXCGgd_9uIfm4wxDMzX41ccZBh08hr4z_Bd4eA9qI3ph1xn67vSjp3vF8ST8tcfI9jFkPM2PdDwp_pheO-QODY17m8D7n14qqctzdP-NSrIU8wuqMr9vI4Jo0jO38xq01-uZPxaIJhlKQG0_SFMz6EcRCPHMYnzEwFfHowCpAL1hTic4of5RAl-lQCccRS8GoAl1DOfosjputR_IOAgFWjIKNUzAqIAok_gVfO3IlBMRpXm5IUUHArGaWTxHRETOwnX9iDMhwnMqLwtMzRIdgICdC8YW2QhxTllG81Ua9DWKVylwJBnXkyXProg_wXKGgcQ14bukrxh0yl4jd4jeJNuifyh4Y2lb9ilEBHEkMaP_lWf_jNRKHx98nfVvSP4T0X__7LcnxmWABGwlkvAfMX8kIGDE6L5O19RQRCiFeAlvpFhhAUdZQ-i90jjfqu0FdhxhgmlSk6FY_TM2h-eTN3QRxejqFXhzR26_4EfYm0-InycbYkWX8C4VzrYPA1wjjs4ggYvVsWbjzWmNDRP2phUyISx6ESvqbzFNCBTYJbwCt7Hq_BboAKSN7-Qd0uz8i9BZRiN9K1vwOVXqsPHzY2VFvyb8Ap0PMWqDfUJaUMbSn8it9DjhgF50fJjCUeWamNENyIzT3SUFOwY0Z_wCbgJHxuE5I1KZFWwlxzRpW26J3-X5iOXj3L8gtzhfSo4PmWx7kZ6730coRQdMsLyY0QmmaxS9lCZoLZyTK8Nr0U2U0Pdtm6II00RBJkyecgRHEXznKE0Nqbyq6nxKU2vFCk0lSIjSV7TJjErOSGkhraunUco6K3_TYhK-S-BUX49OGQqL7SQu0RlEiiJoBzOdTxz-DmpqslhoiEkmCvlaHL7SfF6LbMwmQDI62aIZUqh0dH2muScTFl-6p38_YWLfB9ed0xio1CotFNOgb1OCpXZ2V86tAmwgYjy2F6_ojbOtINXdKu1cWM6ggnxCr0ibp08pk9VdqRuwBqvMTrS1ULugE0wRvzTC4JLRKsdrTQgYjSCV9jWtG2idfXmkPiFnRFsA4x_97bO-aQq4ouRSuo0Wfge8JbC97aAqaufKryGC_5Ff8WIP5zOqTZjTE3AsEY1ggYW8DjRebIElcESsZCdgJDvTBT5jzWAw6hfjOqCuOUrOyCjD8cbOKFSVzShQP-Og53iPt443UZRiVooiWVqLvdHuPRo7_o5jqW_PsMRKTDOtLAtxnyPSdDDQuorVAWzlhVj2OQWOX2HNMFUmSgrraAo1xULlQaYabWWKZbJgzLxRvlimXkKNGtrYBaDXgu17ChwraRDxM8mmICGSuYPP3XZNihl-Lw_1Sr41YzxE0akjzihhUHSqBr7sZ6tN6Ad_VkOT1Wq7aw7Pjx28Pn_az2f7Z_-vSV5GGtU092qLZjAqvJjM5yrZJDpNHRqqFRla0aIG_YNJVjFqrbNeTzGHSGXHVs1o6Bv4kWEOIiAoE7bTtQxRPcMGRYVWiAt_q3XWYiGAX_Xahprnw74MVzP7NBS9nvai1i4kJMDz676FFGmfU9Oi8Z5q1l1z6BnTKU6wMa1-QZtChM-I1MuEgpaTuuf9Ce_1OfV5itY1SYWIbcRxKr9kTBb1QHlpKrI65_k5ZVxa1vIZIK3ye1_uTqr04XJ1rEzvOjo_7po-qshsFFzmDlucUCQzXuAwhZDG-c0NNouZGddXSC89gQTrmcpbFg6zIodFldokv1fi7ZgSV4E8Qy09giVamV2rlKfIGTmTLGKkiBQ1t6VRSgTLuL0auQplSxASYo3XeWjzQBVYJZ7GW645S4HLi3WmJchwtEWrIZXkH8TF2ibWQBGRF5NAVHlAtY06wKw7w1zIANUKOR0B2_Dc4erY1O-36ZrRAoRQ_zQPrwO1SoGuEQcqTyBw3errKBOrNZN-11odBYcBN6Dhu3LHwQlxFBX76uunATMKh_j7CcsqvWtiqqJpRedSrN5oUZt5JbeO-LrBySlPw9brltfs5af8JUNER4zG3KoDsEFv5kBMcG6Gonp_MX_KNqP6MAWi0hpjK_lwz42iCqG4BEHzc1RnoQGtgfW65OZ440gnQFUOVMAcbxx0kAJEGcURIqV4tk9QqAkSEK9omdIkjCUEPtz7Dt6lvkofn0AuXXpofl5PLHqTk4ZsVrtVPhTSiDChFFP0EForhD8yRMS6zSf8keHXHeugrP3NNtyv_c1u7i_2u_D_dvv6og3ULtx-SL0yF3EB6qRWfIrhCk1LVgeUNGGfcDlvjbhyTTbk97Ttug2Fb-AIHGgEjVuS37oSQtjblW7uBs7sNS9qFotvz5aTNeTSNbWirqFv4YyjotppzK6nS2smcOGTClfRgIXvKQchypy-9GCrTBXgEUvzCXniAlWbpwrgNeF076gMhGVTL_cvW8blnEYki8tcS6WZKomiStCSC-NSJxdKnsgkFlU9VWG-KpO3i8gFvOOIJRylJxwtszNwnPuYKhIGWrcBakW4CrJgiTKUJbsOKZz_Z7i85eV6C8dZRuPcNkr3quWcwhFlRNbAeZ1ShssrDfEatuzmdq2dQ5pV2QfAZkQv2XYuXCt2PwZ-Eoz-REJt6nqPdtNKXMGuUtvHdfa82l-y6KaVKb_KYup6W6uydWXRrX6PhS2t8Dq4VsJZ3w7pjtgrcMJQDOUXCt1cirs7p501kQ2qrniLXZ5CMqqzWsvldCtrg2gC2kHOGF8wln6s_u2PDJkGzgu0SuStSZb14mUpadNF3rJpf7NQehUNm1OfJqTV7yqIyjYQpmUh1nWnxFx7yLLXAkf8XtnYM6b4XG-XuoUArvuM3m1az5KusvIO6a6Z9ZxWnkq0eiGu3lasLRRZZm91Jn-iYNddyRPY9lZI97ESJaIxMt4vz70G45JkJCq7kQv80tV5_7IPn-c7a5KNU7Cvy6_bcFqbuNtvwi9f55tw_y3cbOerpaHt0KHRFKj6Al8F7NDBUsM34JiwJC9G5BsAnVOhvdu6XdNW6fm2CFsde9ruNvPlH_P_D6uh9Xpvjxadng6S23OX2_32-3y22y_959pwMGsN394WL9vUXgC4iZ-G8ePwEd3A0-D-0Rv07x5H45vT08PD-C4eDj04DAYeiuHhcHgYjsZo8Bjdo0O_f4OfvL437D8MRoNh_3EwuoW7-N4bHO4HjxCNB_d9564PZ4TJLSGv51vGkxssRAZP93fj_uiG6HaPfknJ8yi8uZroeJ4zmt7wJzWnd8gS4dz1CRZSVFwklgSegvp7DSpBG002kBRebDR1g_prTOUbTm-c0YRc3FRlgPFNxsnTScpU68WbOd4swfKUHW4jdna8mVoz_6-Xcva3fglppiUVjjfTO_lnAAAA__8PJtRj">