Re: [PATCH 5/5] ewah_bitmap.c: Fix printf format warnings on MinGW
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 7, 2013, 23:01 UTC
- Message-ID
- <xmqq7gcjq0jm.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <527C1069.1080000@ramsay1.demon.co.uk>
Ramsay Jones <ramsay@ramsay1.demon.co.uk> writes:
Show 15 quoted lines
> On MinGW, gcc complains as follows: > > CC ewah/ewah_bitmap.o > ewah/ewah_bitmap.c: In function 'ewah_dump': > ewah/ewah_bitmap.c:389: warning: unknown conversion type \ > character 'z' in format > ewah/ewah_bitmap.c:389: warning: unknown conversion type \ > character 'z' in format > ewah/ewah_bitmap.c:389: warning: too many arguments for format > ewah/ewah_bitmap.c:392: warning: unknown conversion type \ > character 'l' in format > ewah/ewah_bitmap.c:392: warning: too many arguments for format > > In order to suppress the warnings, use the PRIuMAX and PRIx64 macros > from the <inttypes.h> header file.
Good; it is in line with 28bd70d8 (unbreak and eliminate NO_C99_FORMAT, 2011-03-16) and 3efb1f34 (Check for PRIuMAX rather than NO_C99_FORMAT in fast-import.c., 2007-02-20).
Thanks.
Show 31 quoted lines
> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
> ---
> ewah/ewah_bitmap.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/ewah/ewah_bitmap.c b/ewah/ewah_bitmap.c
> index 625f5a6..1e363b9 100644
> --- a/ewah/ewah_bitmap.c
> +++ b/ewah/ewah_bitmap.c
> @@ -22,6 +22,7 @@
> #include <unistd.h>
> #include <string.h>
> #include <stdio.h>
> +#include <inttypes.h>
>
> #include "ewok.h"
> #include "ewok_rlw.h"
> @@ -386,10 +387,11 @@ void ewah_iterator_init(struct ewah_iterator *it, struct ewah_bitmap *parent)
> void ewah_dump(struct ewah_bitmap *self)
> {
> size_t i;
> - fprintf(stderr, "%zu bits | %zu words | ", self->bit_size, self->buffer_size);
> + fprintf(stderr, "%"PRIuMAX" bits | %"PRIuMAX" words | ",
> + (uintmax_t)self->bit_size, (uintmax_t)self->buffer_size);
>
> for (i = 0; i < self->buffer_size; ++i)
> - fprintf(stderr, "%016llx ", (unsigned long long)self->buffer[i]);
> + fprintf(stderr, "%016"PRIx64" ", (unsigned long long)self->buffer[i]);
>
> fprintf(stderr, "\n");
> }