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

    <tr>
        <th>Summary</th>
        <td>
            Defining a literal suffix breaks Clang's breestanding INTxx_C macros
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          nerd4code-git
      </td>
    </tr>
</table>

<pre>
    Clang’s freestanding `<stdint.h>` uses the `__`[`U`]`INTxx_C_SUFFIX__` predefines to construct literals in the `INTxx_C` macros it defines. This requires the -`C_SUFFIX__` predefines to be fully expanded; e.g., via

        #define __int_c_join(a, b) a ## b
        #define __int_c(v, suffix) __int_c_join(v, suffix)
        #define __uint_c(v, suffix) __int_c_join(v##U, suffix)

Unfortunately, this means if I

        #define L
        #define UL
        #define LL
        #define ULL

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMU8FupDoQ_JrmYg0ybSBw4JDMBClS9C4vI70bMrgB53nMrG2iyd-vPCGKdjVZ7cWgdlW5u1UlvdeTJWqgeIDikMg1zItrLDmVD4ui3aRD0i_qvdkbaSd4RKg41LVnoyPyQVql7cSg5CD2PihtQzqDeISSs9WTZ2GmeNt1EVI8QMmP178DlPzpn5fLpdt3_x7b9um_K4SdHSkatY3UhQ2L9cGtQ2BGB3LSeKbtp-ZGj6yTHNzimQ5sI6fsZdaeOfqxare1sYOS_-mxnti4GvPO6HKWVpEC8cAonVLAPXvTEvgB-P3nWQOKDzLrOm1DN3Svi7aAlYz4HrBmkgEKQMH671mA1Vsk-HUc9SWyfpP79fam0PrXSrGb403BeB7tuLiwWhnIvEdUiEs8kbSe6ZE9fbuB5xu1463i823kVk1UI1QtaplQk91lvC5FgTyZm0FKoqySPBODUKgkYS1Fn_eIdYaiTHSDHHMukGe1qHKejiOVfYGyqu_ynjIFOaeT1CY15u2ULm5KtPcrNVVR10ViZE_GX0OAOFydjhjz4JqI3_Xr5CHnRvvgvxSCDoaaQxwihkB-mnRbLusdyf89-0gO3vlY-MrMZt_Nu8nqTDOHcPYg7gFbwHbSYV77dFhOgG18dPvszm55pSEAttcZPGB7HeNnAAAA__9vNCxA">