mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 04:56:07 +00:00

C99 introduced macros of the form `INTn_C(v)` which expand to a signed or unsigned integer constant with the specified value `v` and the type `int_leastN_t`. Clang's initial implementation of these macros used token pasting to form the integer constants, but this means that users cannot define a macro named `L`, `U`, `UL`, etc before including `<stdint.h>` (in freestanding mode, where Clang's header is being used) because that could form invalid token pasting results. The new definitions now use the predefined `__INTn_C` macros instead of using token pasting. This matches the behavior of GCC. Fixes #85995