On Fri, Mar 22, 2019 at 7:23 AM Stefan Sperling <s...@stsp.name> wrote:

>
> INT64_C() returns a 'LL'-suffixed constant on OpenBSD, and int64_t
> is indeed a 'long long':
>

*That's* what I've been missing, thanks! BSD is wrong. It should have been
using the "fastest" shortest-int that represented 64-bits, but I'm sure
this is
just legacy going back to 32IL/64Q architectures. Irrespective of that...


> Type checking in printf format strings is stricter than APR's configure
> script logic.
>

s/is/was/ ... APR_CHECK_TYPES_FMT_COMPATIBLE corrects for printf
patterns and types. It would still not pick up the INT64_C exception because
we didn't test our constants, only the type apr_int64_t (aka long).

Relying entirely on inttypes.h is a 100% solve (modulo a catch for missing
format macros) that should work around all platform quirks.

Reply via email to