<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">