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

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Lack of space after 'not' operator before parens since clang-format-20
        </td>
    </tr>

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

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

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

<pre>
    Change #135035 seems to be messing with for formatting of `not` works.

When `SpaceAfterLogicalNot: true` on 19.1.7 where outpus was:

`
bool operator!=(const A& r) const { return not (*this == r); }
`

while version 20.1.7 formats it as 

`
bool operator!=(const A& r) const { return not(*this == r); }
`

`!` works as before, while `not` seems to treaded like symbol (function).

Is this intentional that `SpaceAfterLogicalNot` does not reflect aby changes to `not` operator?

If so, how can we control this behavior so we can keep space after `not`?

My configuration:

Specific to the directory where file is:

> Language: Cpp
> InsertBraces: true
> InsertNewlineAtEOF: true
> KeepEmptyLines:
> AtEndOfFile: false
>     AtStartOfBlock: false
>     AtStartOfFile: false
> LineEnding: LF
> SpaceAfterLogicalNot: true
> SpacesInParens: Never

Basic config:

> Language: Cpp
> AccessModifierOffset: -4
> AlignAfterOpenBracket: AlwaysBreak
> AlignConsecutiveAssignments: false
> AlignConsecutiveDeclarations: false
> AlignOperands: false
> AlignTrailingComments: false
> AlignEscapedNewlinesLeft: true
> AllowAllParametersOfDeclarationOnNextLine: false
> AllowShortBlocksOnASingleLine: false
> AllowShortCaseLabelsOnASingleLine: false
> AllowShortIfStatementsOnASingleLine: true
> AllowShortLoopsOnASingleLine: false
> AllowShortFunctionsOnASingleLine: Inline
> AlwaysBreakAfterDefinitionReturnType: None
> AlwaysBreakBeforeMultilineStrings: false
> AlwaysBreakTemplateDeclarations: true
> BinPackArguments: false
> BinPackParameters: false
> BreakBeforeBinaryOperators: None
> BreakBeforeTernaryOperators: true
> BreakConstructorInitializersBeforeComma: true
> BreakStringLiterals: true
> ConstructorInitializerAllOnOneLineOrOnePerLine: true
> ConstructorInitializerIndentWidth: 4
> ContinuationIndentWidth: 4
> Cpp11BracedListStyle: true
> DisableFormat: false
> FixNamespaceComments: true
> IncludeCategories:
>   - Regex:           '^<sys/'
>     Priority: 1
>   - Regex:           '^<'
>     Priority:        2
>   - Regex: '^"'
>     Priority:        3
> IndentCaseLabels: true
> KeepEmptyLinesAtTheStartOfBlocks: false
> MaxEmptyLinesToKeep: 1
> BraceWrapping:
>    AfterNamespace: false
>    AfterUnion: true
> NamespaceIndentation: None
> PenaltyReturnTypeOnItsOwnLine: 5000
> PointerAlignment: Left
> SortIncludes: true
> SpaceBeforeAssignmentOperators: true
> SpaceBeforeParens: ControlStatements
> SpaceInEmptyParentheses: false
> Standard: Cpp11
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysV11vo7wS_jXOjdUKTD6ai1yQLyk6aak2PdprBwbwxrGRPTTN-fVHNjSwSdq3Fy_Sahv8zHjmmcczhlsrCgUwI6M5GS0HvMZSm5lFo__Ug73OzrNFyVUBlLAojEZBNKIW4GgparoHegRrhSroSWBJc23cvyNHdO90Tsk4UBrJOKAnbQ72kQQxCeLfJSi3tKt4CnGOYLa6ECmXLxpJFFM0NTgbrWg4fQwfJ_RUggGqa6xqS0_ckihuXJFxQIJ4r7WkugLDURvCQhItCXtKtbJIY8LG1BA2pc1vMplTA1gbRZVGStgTYTGWwlJnFS09lkRzSibLywYkiE-lkEDfwVihFWWBj6vJ1lKBlFv674T044jcHyy8kOsi2EOuDRC2oE24Hf-XoqEBnkFGpTgAtefjXktHQl6rFIVWhE3bKm0s9UEIhaDcEpcUS45fVm4c0EyD9bQayCWkSPn-TFMvIL95F8-FmmjdbpdTq13kpT7RlCt6AkcPGi2bOPZQ8nehDbXar3FFDwAVtS4Wyl0wnf-L2-ez85KLojbc5_epnF0FqchF6jkpgWbCQIranFux5Y4_0VNatKJbroqaF-BEuqiq9u1GWTA4NzwFe5Fvf-kFTlIoiHGVrK8A_wGoVscKz1uh4HOzaEVjXKksyddC-s1yLu2niXti3CE3mORzqdPDt4h7LtxmK5UJVbiV7bp9_e157EHsRr1yA8pn-wLvYBqK5tyKtKX7B7zFaQrWPutM5AJMkucW_HYPw0-AFIXy8SQVKEfwoUHE8sTPdm6AH_rQhVYW0hrFO8S-rx1Bob1O_hq6hFTyRhz3sYmTqsruL74ZLqRQxUIfv95tZVNeQdbqwG4hv-Y1llKfYilfueFHQDA2yXuBJeoFPtCV7da_1KddqQ16KdhExTuhCgnfgxfcwpbvQf7UYJPvkCP4HG9MrhPxFlutq596X7fd5xa_UY6yi8Gl7l4WS8iFEs7wl2-fb-fKG73oeyZz3xyfa4muYrBDI1Rxp2AXgzc4VpLjjUJ66c6FeuXpITZFfbf87XpX1htAF9lcKG7OSdsY7VUiPeAbmBtkPyaHdAJHU7uOtnEUcSn-B8Y2DpxY-T2rhpOtQDBcXvu97zKWMlGJ8gVLTKLgFcwdXdw33qgMFP4WGZYOP-zAKFTtGf8KUlVh6HtuthUWd3iW11suheV7CWs_o695X4uPF34EPzz6Z_ev5p3KOoMFRyi0Ef32TOkD_QUFfDiT7iFsQkYrEi3s2RK2dj-7jvxqhDYCz84k_KGfrz20D7vnqDVn7B_No0uqjuSuKXw7pWJ8K6E_f25E_cw_Ovibdub9rH3ZfhteVc0E6mL0p_pSlztzzQP-q5pB3g_xYtSk8jnr-yfoFRSXeO5aRaI2aJOT-pTrKAiCT6x21x7ju7fThp-Trm23Y9B1xEYe11z5Cdkcs24IfXVUe-Buoi6aW0_Xb_vgjfLMejSWYOGG_B1ylXGTtcM2DAfZLMqm0ZQPYBZORlE4CabTaFDO9pMnBnmUj6Jg8jTK8z0bjsIQxk8shJQNJwMxYwEbBRPGgsloHEWPwz2MhmMWcT5hLEyBDAM4ciEfpXw_PmpTDIS1NczC4XQ6CQfSi8l_WzCWSq6Kh-bG7LQ5Wg7MzNk97OvCkmEghUXbeUKB0n-X_GU4WtItTw_u4-Kvix-b-Kvz5HKxbO_CtPK8UitUCrTv6oEFg9rIWYlY-aPtDuy6EFjW-8dUHwlbu1ja_x4qo_9AioStfYrufLdZvs_Y_wMAAP__oQtGkA">