> On Feb 9, 2018, at 5:15 AM, Matt Caswell <m...@openssl.org> wrote: > > The new travis OS/X builds are failing with this: > > -MT apps/enc.o -c -o apps/enc.o apps/enc.c > apps/enc.c:567:54: error: format specifies type 'uintmax_t' (aka > 'unsigned long') but the argument has type 'uint64_t' (aka 'unsigned > long long') [-Werror,-Wformat] > BIO_printf(bio_err, "bytes read : %8ju\n", BIO_number_read(in)); > ~~~~ ^~~~~~~~~~~~~~~~~~~ > %8llu > apps/enc.c:568:54: error: format specifies type 'uintmax_t' (aka > 'unsigned long') but the argument has type 'uint64_t' (aka 'unsigned > long long') [-Werror,-Wformat] > BIO_printf(bio_err, "bytes written: %8ju\n", > BIO_number_written(out)); > ~~~~ ^~~~~~~~~~~~~~~~~~~~~~~ > %8llu > 2 errors generated. > > > The thing is though this is *our* BIO_printf, and we do seem to expect a > uint64_t for a "%ju". So I'm not sure how to fix that.
The obvious and correct fix is to cast the output of BIO_number_read() and BIO_number_written() to uintmax_t. And we should expect uintmax_t with %j, even in our BIO_printf(). It happens to be 64-bit on all the platforms we support perhaps (any Crays?), but that's just a coincidence. -- Viktor. _______________________________________________ openssl-project mailing list openssl-project@openssl.org https://mta.openssl.org/mailman/listinfo/openssl-project