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

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] When processing constexpr inline, the middle macro will be deleted
        </td>
    </tr>

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

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

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

<pre>
    clang-format --version
clang-format version 18.0.0git (git@github.com:trcrsired/llvm-project.git 5758bf1ec7999db033707991034026ff7b837506)
There has been no modification of any clang format related source code in this repository

.clang-format fills
--------------------------------------------------
# clang-format configuration
# compatible with clang-format 18

UseTab: Never
ColumnLimit: 160

# Indent
IndentWidth: 4
BracedInitializerIndentWidth: 4
AccessModifierOffset: -4
IndentAccessModifiers: false
IndentCaseLabels: true
IndentExternBlock: Indent
IndentGotoLabels: true
IndentPPDirectives: BeforeHash
IndentRequiresClause: true
IndentWrappedFunctionNames: true
NamespaceIndentation: All
LambdaBodyIndentation: Signature
BitFieldColonSpacing: Both

# Insert
InsertBraces: true
InsertNewlineAtEOF: true
KeepEmptyLinesAtEOF: true

# Align
AlignAfterOpenBracket: true
AlignTrailingComments:
  Kind: Always

AlignArrayOfStructures: Left
PointerAlignment: Left

# Break
BreakBeforeBraces: Custom
BraceWrapping:
  AfterCaseLabel: true
  AfterClass: true
  AfterControlStatement: Always
  AfterEnum: true
  AfterFunction: true
  AfterNamespace: true
  AfterStruct: true
  AfterUnion: true
  AfterExternBlock: true
  BeforeCatch: true
  BeforeElse: true
  BeforeLambdaBody: true
  BeforeWhile: true
  IndentBraces: false
  SplitEmptyFunction: true
 SplitEmptyRecord: true
  SplitEmptyNamespace: true

BreakAfterAttributes: Never
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: Always
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: AfterColon
BreakInheritanceList: AfterColon
BreakAdjacentStringLiterals: false
BreakStringLiterals: false
CompactNamespaces: false
Cpp11BracedListStyle: true
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: Always

AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowBreakBeforeNoexceptSpecifier: Never
AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: true
AllowShortCompoundRequirementOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
RequiresClausePosition: OwnLine
BinPackArguments: false
BinPackParameters: false

# Space
SeparateDefinitionBlocks: Always
SpaceBeforeParens: Custom
SpaceBeforeParensOptions:
  AfterControlStatements: false
 AfterForeachMacros: false
  AfterFunctionDeclarationName: false
 AfterFunctionDefinitionName: false
  AfterIfMacros: false
 AfterOverloadedOperator: true
  AfterPlacementOperator: Never
 AfterRequiresInClause: true
  AfterRequiresInExpression: false
 BeforeNonEmptyParentheses: false

SpaceBeforeRangeBasedForLoopColon: false
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: Never

SpacesInParens: Custom
SpacesInParensOptions:
 InConditionalStatements: false
  InCStyleCasts: false
 InEmptyParentheses: false
  Other: false

SpacesInSquareBrackets: false

# Order
QualifierAlignment: Custom
QualifierOrder: ["constexpr", "const", "inline", "static", "type"]
SortIncludes: Never
SortUsingDeclarations: LexicographicNumeric
--------------------------------------------------

before format:
--------------------------------------------------
inline
#if defined(__has_builtin)
#if __has_builtin(__builtin_memcmp)
constexpr 
#endif
#endif
    int my_memcmp(const void* dest, const void* src, ::std::size_t count) noexcept
{
    return
#if defined(__has_builtin)
    #if __has_builtin(__builtin_memcmp)
 __builtin_memcmp
    #else
        ::std::memcmp
 #endif
#else
        ::std::memcmp
#endif
        (dest, src, count);
}
--------------------------------------------------

after format:
--------------------------------------------------
constexpr inline
#endif
#endif
    int
    my_memcmp(const void* dest, const void* src, ::std::size_t count) noexcept
{
    return
#if defined(__has_builtin)
    #if __has_builtin(__builtin_memcmp)
 __builtin_memcmp
    #else
        ::std::memcmp
 #endif
#else
        ::std::memcmp
#endif
        (dest, src, count);
}
--------------------------------------------------

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWM1u4zgSfhr5QiRQJDu2Dz7YTrJrjBNn22kEewooqmRxQpEakkriefoFSf1LyXTv9mkxPhiS6qti_XysooSVoicOsPJmG292M8GFToVc3WMixb2IgU0iEZ9XhGF-ukiEzLBGFxdvIBUV3PNvPH_dkZUSdLW49C_9E9XICxYnqr2puUmL6JKIzAvXWhKpqITYC-4Ye8sucil-B6IvjcpsPltEyRWQ-XK5jCM_DOf-fLm88sOpH1wnyTxahPOZf-0FS-fCUwoSUIoVigA44gJlIqYJJVgbZ0SCMD8j6ygqHZXAsIYYKVFIAoiIGBDlSKdUIQm5UFQLeXbm3f9lJ9CEMqac4OKnf6XZIEQdm0TwhJ4Kab1uYUSWY00jBuid6rSrc7Vo-_hdwROOvHCNHuANpHu4FazI-J5mVBvJ1bXfVjEr7HgMXLt7d_1MY50a9NQ93UhMIN5xqilm9E-Q47A1IaDUvU0-yEOSKLBrXkzbxrsoZQAJZgramC1WsMcRMCvWsuhIbz80SL5hgrwa8dD_fwgtPld_fLyhEoimb2DlG0iEhH9ilbZR3-CPgkpQW4YLBWN2niXOc4jvCk5MyR5wBr317KMcE3AKrrLhGq0Zc4A9zqIYb0R87iGO9MSxLmRpaEP1HQUWbwUT_JhjQvnJui50OiynAlmnw1zb8g1SYSQP8M4oh7W-Pdx15b8B5LdZrs97ykGNAJoF14yeSsLay3WiQR5y4GbdV0eBRs9CniSmjPLTVmQZcG18c1KEfqM8djl6x2fVXssZlxKfD8lRy4KY_Niw9pCUAT8KyjVICzWWu9LG540E_FqRG_Cr40CTqG2htMha7LfFdlmvPLVx1kztRllJGVZqXCK4loIdNdZQOdoOuYTd8iIb1a9YNyqseTcqdbkbFX3nn5ns7bm23OVuizVJx0W3rL-BKknD_3H5c0rZQNVtlaZWre6B0DFnVFvifpKhBvANiJBx33oj_ySLLdbYzKy1ljQqtHOm1XnbxKIcy_MhB4m1cD3vQXAY4LaCE8j1DRCG3SBQfWK00DtuN-_x3rYFAzxwdr4vmDaba2j9CeTAjSYuC9wKriw9hGy1e-eEoy2rhpPF73gKkmrMCeyp0p_i1vHvmADXRy0pP-2pBolZv3oW-SVia4Yh0XVlBvI8v7py08q4c9TnPn3qnuZq15lFvfrVUJe9IXasRTHxvmZsLU-FbWwH_gAf2hjpeVohH7HEGWiQ6pC0yv61XqumDwI-DGWOOZCxICz-mAqp7d5VB74-Un5iUNluB9GAmwE8UGi38houslwUPC6Hpgn9h_RMe_uxFardPBYA64N3Sd1Xh_hnqlNR6NtuSq2ea0c_tMReiPxrz01amy7xDXQh-dM5h-7mb-FcQevt6zaC-tTsE2S5OcX2m8W_oaxm9wTzaA61ZTs8vPN90yAof8TktaZsf1M6ccPTnryZqUfbK-3tEXLjEtxAQrld1rGvTzir4uJ-xBL4YPYOAIe8CvTLcToYDG5oCgmYpPb9Zjg6OnO1lVXTbcbN1dgqyjGow-6S8VXdYekNJBM4hrjqzaMz-JFh4vZWC9Xa66hkmiv7jo8dXVEfdPuRS1CqZEbbtarBcNsIbfp1CmrQdAeV-ob5CTZYQXwnpNko9XxqabXwxz8K7A5frzCo3NGdn60P9fGjL1flgBseK1HQhu342mzX_qTuQr5gYi0d0HDHt4LHlgT4CxoanJ1KW6yG0t1fpRqhg05djx8vgNrxL7PZ7NaDjKvw_1VgZmdH59jcDr5GOK1wjbzZxgsCYo4L8JFLLwi8YIuqR80ttWeU5l6ZdxzS3GvTEYPAm92UUZj2zQkr4kGVjOi7ovzU73h7-KBEnCTOU0oeigwkJf_jy7n9jyypym8Gdan_W5tlJqoC0ATFpm9A7AWLl5cUq5eooExTXn_YcKiebPFSXb9kkJEsr-F1MVCtDjymydgdQghRrlF2rq0srD56EzT2gjWKwZRxi7pPlSS2cOHaC9dKx-UF_RNeNCKi4NoLloiXh5Jy5fmmWVTaOfgzWTBaP5kJNJC0LUFrO7lfL5yOzjCLP6M-zLpzYlGlt0xolTov3FRJu_kVFMam2f8qBjcE63H5r2jW3PzNt_9Xvk3iVRgvwyWewOpq7s_9q8X1dD5JV4vAvw5my0UUh9dROE-ufT8Kr4MAk2sym0XhhK4CP5j6gT_1w5k_nV_6c0zCYJb4OJj74Pve1IcMU3bJ2Ft2KeRpQpUqYLXwZ_PlhNnXlFU5kFpfR91YmciV_cQcFSflTX1GlVaNIU01s5-_O4qzG_ScAke5FOadj_ITGnA_2CKdAspoHDNAmTncoXfKGIoAxcBAQzwpJFulWuf2nBDcecFd6zO4-_Td-wLuBXc2NuUFdza8_wQAAP__V7tzAA">