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

Attachment: signature.asc
Description: PGP signature

Reply via email to