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

    <tr>
        <th>Summary</th>
        <td>
            Clang-format 19 regression from 18
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-format
      </td>
    </tr>

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

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

<pre>
    Clang-format 19 generates this :

struct DLL_PUBLIC SomeClas{SomeClass(){}};

however if I remove DLL_PUBLIC I get this:

struct SomeClas {
        SomeClass() {}
};


This is my clang-format

---
Language:        Cpp
# BasedOnStyle:  Google
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignArrayOfStructures: Left
AlignConsecutiveAssignments:
  Enabled: false
  AcrossEmptyLines: false
  AcrossComments:  false
 AlignCompound:   false
  PadOperators:    true
AlignConsecutiveBitFields:
 Enabled:         false
  AcrossEmptyLines: false
  AcrossComments: false
  AlignCompound:   false
  PadOperators: false
AlignConsecutiveDeclarations:
  Enabled:         false
 AcrossEmptyLines: false
  AcrossComments:  false
  AlignCompound:   false
 PadOperators:    false
AlignConsecutiveMacros:
  Enabled:         false
 AcrossEmptyLines: false
  AcrossComments:  false
  AlignCompound:   false
 PadOperators:    false
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments:
  Kind:            Always
  OverEmptyLines: 0
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
AttributeMacros:
  - __capability
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: Both
BraceWrapping:
  AfterCaseLabel:  false
 AfterClass:      false
  AfterControlStatement: Never
  AfterEnum: false
  AfterExternBlock: false
  AfterFunction:   false
  AfterNamespace: false
  AfterObjCDeclaration: false
  AfterStruct:     false
 AfterUnion:      false
  BeforeCatch:     false
  BeforeElse:      false
 BeforeLambdaBody: false
  BeforeWhile:     false
  IndentBraces:    false
 SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true
BreakAfterAttributes: Never
BreakAfterJavaFieldAnnotations: false
BreakArrays:     true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: Always
BreakBeforeBraces: Attach
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
ColumnLimit:     120
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IfMacros:
  - KJ_IF_MAYBE
IncludeBlocks: Regroup
IncludeCategories:
  - Regex:           '^<ext/.*\.h>'
 Priority:        2
    SortPriority:    0
    CaseSensitive:   false
  - Regex:           '^<.*\.h>'
    Priority:        1
    SortPriority: 0
    CaseSensitive:   false
  - Regex:           '^<.*'
    Priority: 2
    SortPriority:    0
    CaseSensitive:   false
  - Regex: '.*'
    Priority:        3
    SortPriority:    0
    CaseSensitive: false
IncludeIsMainRegex: '([-_](test|unittest))?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: true
IndentExternBlock: AfterExternBlock
IndentGotoLabels: true
IndentPPDirectives: None
IndentRequiresClause: true
IndentWidth: 4
IndentWrappedFunctionNames: false
InsertBraces: false
InsertNewlineAtEOF: false
InsertTrailingCommas: None
IntegerLiteralSeparator:
  Binary:          0
  BinaryMinDigits: 0
 Decimal:         0
  DecimalMinDigits: 0
  Hex:             0
 HexMinDigits:    0
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: Signature
LineEnding:      DeriveLF
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PackConstructorInitializers: NextLine
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
PPIndentWidth:   -1
QualifierAlignment: Leave
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: pb
    BasedOnStyle:    google
ReferenceAlignment: Pointer
ReflowComments: false
RemoveBracesLLVM: false
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SortIncludes:    CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
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
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles:  Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
  Minimum:         1
  Maximum: -1
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Auto
StatementAttributeLikeMacros:
  - Q_EMIT
StatementMacros:
  - Q_UNUSED
  - QT_REQUIRE_VERSION
TabWidth:        4
UseTab: ForIndentation
WhitespaceSensitiveMacros:
  - BOOST_PP_STRINGIZE
  - CF_SWIFT_NAME
  - NS_SWIFT_NAME
  - PP_STRINGIZE
  - STRINGIZE
...


</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWl1z6ja3_jXOjScZY5KQXOTCGNPSTQIbk-7Tc8MIe2HULSRXkhNyfv0ZSf6QbJLO2-nFy6TTjZ5HWkvS-lSChMAFBXjy7qbe3ewKVfLI-JMojld7ln88xQTR4vrA-AlJf_ToF0CBIwnCl0csfG8ceYH6EZJXmfRny-Vu_TpdLmI_ZSeICRLeZNr8U3jhgxc-epOpN5mpn_HUzD6yd3gD7uODv_A5nNgb2Est_AKkFtiX16zsqzUV8NiT5dfCgsiW5wXRVqmPhX_68DNrjwa8vr72gmiJaFGhArxx5NefuCwVIxz7UyQgX9FUfhBD-IWxgoAXRFGWgRDPLMcHDHx1OAiQinF9q0CCCxodJPBVCXTKUfbToBpoCZyjj9Uh1ZusOKh9-0s4yIYQMyogqyR-g0jf4AmorE_H9xOK9gRyNemAiAA9GGWcCZGcSvmxxNQs2UdjdmoW8juwlngqWUVzcxjdxDXKV6UyCcZFfVCSV3BB0SmWcwwkb9S0tGw-_1xbC_tPtG2Qvq4zyAjiSGJGL53qQN9_frhf6nvhcD_T-BkpIf_FuiYiQyXkL_BOGqm2Reu5VBuH6wtbjjDBtLBU0rp8w9TZn6_Ue0cfQqOrN-DuFgO9IGHvESERLyq92Iq-wFkqjqK0hmtYa8TRCSRwsTpYBvH5nPTIuJwSlv0UKxqlmBYEGp5WxiHGSMAS7YEMyd3BNeSEVqchbyB8XtFMG-2AuqDq2B3y4pBKJKE-iB7_RQVkh75Ep32OhsyIEJfHWPnVltQdTTmgnzoMzuCAKVY6b0BWnG4_SiOf0Uv0vyNN4cA4PFdEKqOBVHJMC-GcVcvdwqkkSPad3f8DlA1FUnK8r2TPs6793S5DJdpjgvWFTjFdo-xna1KWrBrq7MjBTDSMGWE0LVGGaaHgKZNHBXOUwQ-OytKMG_dTJ9CaTS9Ia0wnvsYpLL_VIKOSM9LeuX3LNUVZWS8c6OGzBE61YV9AG5vrx1oNvqATiBJlcGHiav9nbJ39BYZJgM2G3L2-0lamI9ZYQIxkdhxMrMFEfR3MNJix8inLP1x9DPrjiAkMl13QHKjUd9aPfX5aEiy199sHVVuBb8EbyBjPPwGdc2xMqPWK1laFfakd_ht6Q9raIkqZ7Cy9UdIwVdHRWo8tw-x9iiniH06Mr_3PIsWMZlDKvku1kdlerz2uSEqUHV3UxKsofdYOolgrSj5ax3bJW-AD3ewNqDypTYnxhQo2iOD_q92xUVsJqdkLegSOJaIZLLGQn7BMaFliCRwRW2LMSHWiS3zCreWOwkADOoOtOSpOSM_wwol3l_iLH3-8-qUeVq4eTgy5RJls7925r8v7MVb4A-dSW_6tIUpMK30Rl-CyHI30PeRqp20xW-9kBhy_wZphqmyM1GWmrcgMC1VozE3tbAFt7jX26ZTEto22PHPCQ-KSFThDxASfIErOJXCs1EAkqiSbgYRM1oG2DqGNDnN8bo_PLmjq3c0ZT1B27Id3pYaxRvXt-26-2iRR_Gv9fbpapVtrbHHoz__2224x3z1Hf0wThdOMVDmYokAJ30DBWVV2UIwkFIxjsNbYQAFnt7gxpuKNYzhLL5zfeGHk3cU3R2-cGIPx1xwzrnJSNy_U6_l-yrjswUENqXSSAhVYFZH9EP61Jhd08P1Laow-UePf0uGi7H9x7144-VxO_Rn_A3GNsNoSFuIZYWpLVT3s3fR6593NvPBBgpDeJK4olvqf4aP6Gc-98Nao5qyTsopn4K5mSCoMuI4mXG0UQSnbWe0QM5Wr5U4G6pUKg_Kh4f3CJPtkifV6hjlk6pDsJGPADfxVYQ4iJqgSMJjrRLd6SBVRkDfJV0cEd0sCuJW73fG6XYlkspoPUbs3Qa6yEgrgdXZIoUQ6MTUeblKpY9KBBTxjOsMFlm3f4s8gwydE7BlmQg0MZ_i_9n2mnvIrnB12Pa5KhDTjuJTfKyab_gy9gYOpw1ycSsadSPoNoOyarUhuj5BKxOXqMLSgrr4y19OWfikuKJIV1yRMIaF5Hc_1x-Si5dwLIh1x9cpTKDB1rLvDEtMeWsi503HLlM4KV7GpzRI9lerLVHVqU8pzJlnGSFMXNGlMU5TUnhmGDdbVKi8gJOSarBsD6xwVU7UCJmmuOSuBS6cObRlmrb469TpK0y9KnrZ9DaI1UETkh6n_2oekRnMbNQLnmAsZI6s3bs7Q5tbJVkHjIOiBeoklCKH-07PDPmVVAl0jDlQeQeDWpm2Kqb709GAg4kJjZ5gdLzmr-BcfEUdZs4tAfzqOuUvIfxyx7Ipvi9A1oyu6kGL1TptuNzTrXKic6jeP9bpnKb5_rY7xe4WIDsm9ScYRN-jdbNwUXFbF8OlbpfEdoqpRc_31mJqUZdaXOLaRdq6G3G_rtfXNCyeZF071z8Qdj_vjMaKMqmquVcjxUEUZPKv6ftE8rPb3uYWz1B7wN9ss99aX9dRGmtnX_nqz2q5qKKEZYUIdc_Oc4i6Y_FUhImzR9Sh-27L-8DrapMluHW22i2i52yb_s93ZsjrKNkktqBu9NAFxAWr7Kz7DcAnQWrRoCwg5UE8Ba8RVhOjjl--rPc6v7moDB-BAM3DsuHYIgxP2fukFd6Of_00-Xi5_fx5iKZxw1nSFHWQXBmsmcOP2jVt2nORcchCi7YnaCLGqJPA0Y6Vi11kbuheqLps1DqkfvNr00b41Kk9WhWBdkDV51i0ADUXnVqVBZvJq123WhFdliP1-eglnnLGCo_KIs5fqBBwrX-6SR6xvJUbC6co6vG6rXtgneBNCv8HHu_sqYTicVTSvr7ONWVq1GRxQRWTDrPu6Nrdc6tEtojqiuH-3Nu52rJ-x3KzXLjiUZ_X6X7B0MtIa9x_RxCXiqrSDxsXHN-G885h3NNN4tv1kCzuvbJ01KrO78GbWEVuTGTA10Wpdu_ee5mnuDThhKIf2TX84v_GmBe2K8Z4uHaVzOYdWl0SM6tKszfluJW6d7wbRAnTcmTO-ZKz84tLSvypkXpl-ghwuuDAyB6-aNviVQqJ-ehr-ekLXToazoBEtSB0AmmKxgWJGc32TyH2UdcVonkSYtu3EwHUUp_X3L3Ve6FDYPkTBAZ-b1PaMKT6Z51-3b39G5wbQJUqz0t8I-uL4JaI5MkElqnS2afffvmQu8c_By_v3XfK82Nr0IeP15TVNZs3X7W6TfH9dbJLd78kmXaxevCDaor1VdemP6hZfBWzRXg3OGbfzQhB1BWAbvfuCzbvQer1Lt5vFyy-L_01qIJ7v0h-L-Xb3Ej03Yy_pcOzCVPv7zc2N-dX0Vf40zh_Hj-gKnkaT8f3kfnJ_F1wdn0aPD4eH0cP-8SEc5ePx_XgSToLbDKHb-yx7PDxe4acwCO-C0Wg8GoWTcXCTjSb5BAJ0m41H6H5y790GcEKY3BDydrphvLjCQlTwNArD-8fgiuh2Xf-hQBg6vzMPQ-9udsWf1LzrfVUI7zYgWEjRrSSxJDD4awIORR0V_ANnJ3_0cFVx8nSUstRnG869cF5geaz2Nxk7eeFcLVj_77rk7E_IpBfOtZ7CC-e1qm9P4f8HAAD__2OWv9s">