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

    <tr>
        <th>Summary</th>
        <td>
            `Clang :: SemaCXX/msvc-pragma-function-no-builtin-attr.cpp` fails on 32-bit systems
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    The test added in #119719 is failing on 32-bit systems (e.g. x86):

```
FAIL: Clang :: SemaCXX/msvc-pragma-function-no-builtin-attr.cpp (18443 of 21238)
******************** TEST 'Clang :: SemaCXX/msvc-pragma-function-no-builtin-attr.cpp' FAILED ********************
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /var/tmp/portage/llvm-core/clang-20.0.0.9999/work/x/y/clang-abi_x86_32.x86/bin/clang --driver-mode=cl -fms-compatibility -Xclang -ast-dump -fsyntax-only -- /var/tmp/portage/llvm-core/clang-20.0.0.9999/work/clang/test/SemaCXX/msvc-pragma-function-no-builtin-attr.cpp | /usr/lib/llvm/20/bin/FileCheck /var/tmp/portage/llvm-core/clang-20.0.0.9999/work/clang/test/SemaCXX/msvc-pragma-function-no-builtin-attr.cpp
+ /var/tmp/portage/llvm-core/clang-20.0.0.9999/work/x/y/clang-abi_x86_32.x86/bin/clang --driver-mode=cl -fms-compatibility -Xclang -ast-dump -fsyntax-only -- /var/tmp/portage/llvm-core/clang-20.0.0.9999/work/clang/test/SemaCXX/msvc-pragma-function-no-builtin-attr.cpp
+ /usr/lib/llvm/20/bin/FileCheck /var/tmp/portage/llvm-core/clang-20.0.0.9999/work/clang/test/SemaCXX/msvc-pragma-function-no-builtin-attr.cpp
/var/tmp/portage/llvm-core/clang-20.0.0.9999/work/clang/test/SemaCXX/msvc-pragma-function-no-builtin-attr.cpp:21:12: error: CHECK: expected string not found in input
 // CHECK: CXXMethodDecl {{.*}} foo 'int ()' delete
           ^
<stdin>:34:61: note: scanning from here
| `-NoBuiltinAttr 0x57422580 <<invalid sloc>> Implicit fabsf
 ^
<stdin>:44:4: note: possible intended match here
| |-CXXMethodDecl 0x57470738 <line:20:5, col:22> col:9 foo 'int () __attribute__((thiscall))' delete implicit-inline
 ^

Input file: <stdin>
Check file: /var/tmp/portage/llvm-core/clang-20.0.0.9999/work/clang/test/SemaCXX/msvc-pragma-function-no-builtin-attr.cpp

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: TranslationUnitDecl 0x57421708 <<invalid sloc>> <invalid sloc> 
 2: |-CXXRecordDecl 0x57421b60 <<invalid sloc>> <invalid sloc> implicit struct _GUID 
            3: | `-TypeVisibilityAttr 0x57421be0 <<invalid sloc>> Implicit Default 
            4: |-TypedefDecl 0x57421ec0 <<invalid sloc>> <invalid sloc> implicit __NSConstantString '__NSConstantString_tag' 
 5: | `-RecordType 0x57421ce0 '__NSConstantString_tag' 
            6: | `-CXXRecord 0x57421c88 '__NSConstantString_tag' 
            7: |-CXXRecordDecl 0x57421ef0 <<invalid sloc>> <invalid sloc> implicit class type_info 
            8: | `-TypeVisibilityAttr 0x57421f70 <<invalid sloc>> Implicit Default 
            9: |-TypedefDecl 0x57421fc8 <<invalid sloc>> <invalid sloc> implicit size_t 'unsigned int' 
           10: | `-BuiltinType 0x574217f0 'unsigned int' 
           11: |-TypedefDecl 0x57421c58 <<invalid sloc>> <invalid sloc> implicit __builtin_va_list 'char *' 
           12: | `-PointerType 0x57421c20 'char *' 
           13: | `-BuiltinType 0x57421770 'char' 
           14: |-LinkageSpecDecl 0x57422010 </var/tmp/portage/llvm-core/clang-20.0.0.9999/work/clang/test/SemaCXX/msvc-pragma-function-no-builtin-attr.cpp:3:1, col:51> col:8 C 
           15: | `-FunctionDecl 0x57422140 <col:12, col:51> col:35 fabsf 'float (float) __attribute__((cdecl))':'float (float)' inline 
 16: | |-ParmVarDecl 0x57422060 <col:43, col:49> col:49 _X 'float' 
           17: | |-BuiltinAttr 0x57422208 <<invalid sloc>> Implicit 556 
 18: | |-NoThrowAttr 0x57422248 <col:35> Implicit 
           19: | `-ConstAttr 0x57422268 <col:35> Implicit 
           20: |-FunctionDecl 0x57422350 prev 0x57422140 <line:6:3, line:9:1> line:6:26 fabsf 'float (float) __attribute__((cdecl))':'float (float)' inline 
           21: | |-ParmVarDecl 0x574222a0 <col:34, col:40> col:40 _X 'float' 
           22: | |-CompoundStmt 0x574224bc <line:7:1, line:9:1> 
           23: | | `-ReturnStmt 0x574224b0 <line:8:5, col:12> 
           24: | | `-ImplicitCastExpr 0x574224a0 <col:12> 'float' <IntegralToFloating> 
 25: | | `-IntegerLiteral 0x57422480 <col:12> 'int' 0 
           26: | |-BuiltinAttr 0x574223e0 <<invalid sloc>> Inherited Implicit 556 
 27: | |-NoThrowAttr 0x57422400 <line:3:35> Inherited Implicit 
 28: | |-ConstAttr 0x57422420 <col:35> Inherited Implicit 
           29: | `-NoBuiltinAttr 0x57422440 <<invalid sloc>> Implicit fabsf 
           30: |-FunctionDecl 0x57422518 <line:13:1, line:15:1> line:13:5 bar 'int ()' 
 31: | |-CompoundStmt 0x57422608 <col:11, line:15:1> 
           32: | | `-ReturnStmt 0x574225fc <line:14:3, col:10> 
           33: | | `-IntegerLiteral 0x574225e0 <col:10> 'int' 0 
           34: | `-NoBuiltinAttr 0x57422580 <<invalid sloc>> Implicit fabsf 
check:21'0 X error: no match found
           35: |-CXXRecordDecl 0x57422620 <line:19:1, line:26:1> line:19:8 struct A definition 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 36: | |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_user_dec
lared_ctor has_constexpr_non_copy_move_ctor can_const_default_init 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 37: | | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 38: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 39: | | |-MoveConstructor exists simple trivial needs_implicit 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           40: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 41: | | |-MoveAssignment exists simple trivial needs_implicit 
check:21'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 42: | | `-Destructor simple irrelevant trivial needs_implicit 
check:21'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 43: | |-CXXRecordDecl 0x57470670 <col:1, col:8> col:8 implicit referenced struct A 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 44: | |-CXXMethodDecl 0x57470738 <line:20:5, col:22> col:9 foo 'int () __attribute__((thiscall))' delete implicit-inline 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:21'1 ? po
ssible intended match
 45: | `-CXXConstructorDecl 0x574707f0 <line:23:5, col:17> col:5 constexpr A 'void () __attribute__((thiscall))' default trivial noexcept-unevaluated 0x574707f0 implicit-inline 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 46: `-FunctionDecl 0x574708c0 <line:28:1, line:30:1> line:28:5 main 'int ()' 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 47:  |-CompoundStmt 0x574709d8 <col:12, line:30:1> 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           48:  | `-ReturnStmt 0x574709cc <line:29:5, col:12> 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           49:  | `-IntegerLiteral 0x574709b0 <col:12> 'int' 0 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           50: `-NoBuiltinAttr 0x57470950 <<invalid sloc>> Implicit fabsf 
check:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

--

********************
```

Reproduced with c3276a96d909233b836e839a23a7ad510fae407a. I've used `FILECHECK_OPTS='--dump-input-context 100'` to get the full context. I've also confirmed that 64-bit build on the same system passes.

CC @VScigolevs 
</pre>

<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWk1z4yga_jXkQimFQJ-HHNx2vJvanp6pSWYqNxWWkM0OAhUgd7yH_e1b4C9J1iSdpKe7p2odHxwJvTzP-8mLoMbwtWTsBsQfQLy4op3dKH3TrJWWu6uVqnY3DxsGLTMW0qpiFeQSAkzCME_DHHIDa8oFl2uoJCQ4WHELzc5Y1hgIcMau19fwKUsAzgGZAeS_CTp80Ww5u_sIyAzOBZVr6IaQGbxnDZ0_PgK8bMy2DFpN1w0N6k6WlisZSBWsOi4slwG1Vl-XbeumCrMoIlDVEIeYZG5CNAP47V_4cHv_AAFO34kN4BQ6mrcL-B44AM1un7iFc1UxByTcK3OumobKCv7c2bazTg_GVkzrk8KDAKDZr799cs9QCwWXDIbuH4CXW6oBXtqmBXjZKm3pmgG8FGLbBKXS7nfpuAcYXbu_PM9zgJeflf4D4OUTwMvdaQhd8eIpSwqCr725lysujzdhEFSab5kOGg9-UQoY1I0JStW01PIVF9zuYPB4GE2NDaquaWFQm5209ClQUuxgELwbs7_lHmfGArx8i6Olc4eiMw6F4KvD3AAvMTqxXnLB5htW_vH9Afsg-PB_Y79Pd38vc39vDGSGXYYJsUszTGulfYr_5-38X_7KU8tKyyporHaFQyoLa9VJX1q4bDsLkE9PAC_PT80fH39idqOqBSsFBOkHkH64dnkxXYB0AWulXK7m0udAl_1wCismmGVO2vkD4lunJDI3tuISkFtAZiQCZJb4rCiV9enVlFRKh67WqoEbpp0YH_wJCj6pD3vOM2s1RE9xGmEcZwgCMgdkzuWWCl5BI1TpJ7iFd00reMktrOnK1J7fBI7I4Yj6MFplDF8JBrm0TLry21BbbgaA0nkwVI4HlKKUZA6Qy_jOJAiQWQzwHJZKuP-xw7X_nV-qDxaFsydfdZYVhb-W2Q03JRXCa7enYMgP7AIu_Wxnemh25wwKay48nz5fNNsHzened3dcD9hno2Dvh2SxYaJ1HisolwbaDYO1EkJ9dq7hx0A3_LrP9TM1h7WO94bBd-CK-zr8oKk0gjpQv0luzxbEYYqyP3epy6vQifdBd_CJX1mpdNWXuEqecdIJiUfLuljtSguLf_x2t4AjGuQwpY-Nh13LfufmkOd7ARKu2JcEyILVtBN2PEd0pOXkV6zuk2LlG0kVxaf7uZLGUmnv98kI4PTyamHp2rm7wxT3ye4V7CAdsZSO5Esyep-kL-5kspO0LHuVtPRZ47P6jXoqBTUG2l3LCi5rNZ41-zL71-k77J8_Y_-6fF2YnJ2a_4cVLuOlnfRtkCtB9lKvIeozPOT-vtXTGn2BlPAZDmX8Rg5FcUhjxZYWghtPp9xQve82LkDgPpVflKsreuDAGL0ggbykjPQkYeLpUyB_5PIPumb3LSt7isAo3HvJdy8GZOaIhueKGYfnipnB-ZjYIDEsD5L7zMLIM9sLCPG0YBLvlwhOg7VQ1Ndj_-NPinJZsfJckV3hmXjQ2WFfmz3q8Jx10nnwC9XN71QPjJD0oEbkDDXKz1CjHBaPJ5wTpk77s0ysmPBz5e2UEOI42YPO-uI-qYeNVp8H4qLsDJrEAyEjZPkg67rMOhCUfKkgfEwMkwYnMYKtZtuRAxwWZIn3MDyHh_9z723kFvbu4-QbeEOPTviCX2Da8wsS9fwC9fwCPe8XGPdnmaumdYv_e9vY4zTRquwpKj2G4VhRI7GkJ_ZQnW2n5VBw3wLZcEUc4gmh0Vjo0RPm1Njbp_bkNBEdRrcT1VcBmd9Jy9aaige1dFe5XJ_WbPHFLG4s0x-5ZZqe1B9lU3Mcig0aQ09eCD_y7HpMbpjmrku7CEScvhCIEeprmZyD6FKml5cN_WEUjRFGF9E4LajHfRDgk-1aFH1xuzYSTp4N-jjsd10hGTmvLxP9MPcjYrjy5XbUv7p5SfhStCSol67C6clGDPDLoRLX_Rj0ZbtXB0I0IfUiAKe9OGZ9L0bPezGJXrTkKxpvJ7x0Ted-jwKnCD6edyikOnTXfjdihCN-bmmNE9x3-TAfWd3H4sDquV9EHLqqGaxYzSV3vjQB8b9f-ePdapAdFqfpF9RS2FJjCi4LzdbcWKYNZE1rd5Cu15qtqWXQtSIV1VUh6E51FlrNt5wKsStK1e7oSjDYqup4GYqDB2yoKTrDdFGxEqCZoJpVRWmV9ndKF_rsqdWFVNILKhq1ZfsBJZX7AUW17xAKh_gbaOsVWv06UiBJB4G0t4-j7HOj8xilIXvixpqThk-6gwf1sKrgPZX-lYrymLMx5rlqd33AxrUs7AT4ZPCipZo2UDJWmeLU1hx_FONx39jgnls-5vaT2rIJY4wojih9VeTD7BShKe3P_Lu9hkn791S-4xiFU7rvMXuj6t3nncguiuiCjZ2da80E21JpvykyMlgyXNarFCVpvwaf63rWb3FPIDWrmWay3O_Z7yvWX-4Knkk0YvID7XL_KKVnDCOEgCxhqwCaTb478HqNR9uOvWQ2UG7dX9b4DqvfMKVn5ca9CjRzSt4qXr1Sy_uNv1OgKPZUstYGnWRbKjrq1vs9XD-oOd6-EvCG2S_LJneQUpSVA3Nko1Wmb0z6q0w_IoYN9Wc2LpuLv3JBEPlFzJ80LSnKq2y8GXbB4t0IR0UyOyKabHlSlJf9lsf3kFPbA18VUz7ANNUwpShfvdT2v9OQQ0wxOvrgRLuVojx-T7v1WmgjmPtpBl90OuXyzgM_o6NJAM1-Za1WVefq3mduN7AkOE1onlQ5yjEhq4wkLCM5xYSmtIpDVFMWoZRewzuXARnsDKucJpd3H2_9m-zi518e7gFZAJwGvReNQamkZU8WhggBnIIEQavgmtn9G8dO-AW-G3ESTYVR7mLNdcMqaDfUwiTy569WHRcVVNI_bGjDDieyfF_HzOFl5XwOQYR-vy_5Wgm2NfCquiFVTnJ6xW7ClEQY4ThKrzY3GaYkidIyrGgcRlWFwrqqMEtLSkKarsorfoMRjkIcRmEWx1F6TZMkKeswoxXK8rREIEKsoVxcC7FtrpVeX3FjOnYThnme5leCrpgwxyNo-sbv8a-6tQEREm55d37OcivYDUjQe09lJcifXDOX59auOi1uNta2_jWuP4aw5nbTra5L1ZwPgHiQrVb_ZqUFeOkJGYCXB07bG_y_AAAA__9k34p8">