On Thu, Jul 03, 2025 at 01:37:27PM +0200, Rasmus Villemoes wrote: > I was bitten by our limit macros not being usable in #if conditionals > when building a standalone app. It turns out that the work to fix that > had already been started by the inclusion of the mbedtls library, so > it's something that people do hit. > > Let's finish the job by providing suitable limit macros for all three > families: > > - Standard C types, char, short, ... > - Kernel-style fixed-width types s8, u64, ... > - POSIX/C99 fixed-width types int16_t, uint32_t, ... > > Please note that a naive approach like spelling out the full decimal > value for the constants doesn't really work, as there is no such thing > as a "negative integer constant". That is, doing > > #define LLONG_MIN -9223372036854775808LL > > would lead to the compiler complaining > > warning: integer constant is so large that it is unsigned > > and the type of that LLONG_MIN would actually be "unsigned long long", so e.g. > > #if LLONG_MIN >= 0 > #warning "LLONG_MIN is not negative?" > #endif > > would fire.
Thanks for doing this. I assume you put this through CI? My only real concern there is with host tools on macOS/Windows. -- Tom
signature.asc
Description: PGP signature