These gcc warnings unigbrk/test-u16-grapheme-next.c:60:55: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'long int' [-Wformat=] unigbrk/test-u16-grapheme-prev.c:62:55: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'long int' [-Wformat=] unigbrk/test-u32-grapheme-next.c:60:55: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'long int' [-Wformat=] unigbrk/test-u32-grapheme-prev.c:62:55: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'long int' [-Wformat=] unigbrk/test-u8-grapheme-next.c:41:54: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'long int' [-Wformat=] unigbrk/test-u8-grapheme-prev.c:42:54: warning: format '%zu' expects argument of type 'size_t', but argument 3 has type 'long int' [-Wformat=]
are justified, because to print a pointer difference, one needs %tu or %td, not %zu or %zd. (Although I know of no platform other than Windows 3 where size_t and ptrdiff_t are not of the same size.) The patch below fixes it. No dependency from the tests to 'fprintf-posix' is needed any more for using %tu or %zu, with our current portabaility targets. 2023-09-05 Bruno Haible <[email protected]> unigbrk/u8-grapheme-{next,prev} tests: Fix gcc -Wformat warnings. * tests/unigbrk/test-u8-grapheme-next.c (test_u8_grapheme_next): Use %tu, not %zu, to print a pointer difference. * tests/unigbrk/test-u16-grapheme-next.c (test_u16_grapheme_next): Likewise. * tests/unigbrk/test-u32-grapheme-next.c (test_u32_grapheme_next): Likewise. * tests/unigbrk/test-u8-grapheme-prev.c (test_u8_grapheme_prev): Likewise. * tests/unigbrk/test-u16-grapheme-prev.c (test_u16_grapheme_prev): Likewise. * tests/unigbrk/test-u32-grapheme-prev.c (test_u32_grapheme_prev): Likewise. diff --git a/tests/unigbrk/test-u16-grapheme-next.c b/tests/unigbrk/test-u16-grapheme-next.c index 0f3c15a9d4..adf1473498 100644 --- a/tests/unigbrk/test-u16-grapheme-next.c +++ b/tests/unigbrk/test-u16-grapheme-next.c @@ -57,7 +57,7 @@ test_u16_grapheme_next (size_t len, ...) if (next == NULL) fputs ("u16_grapheme_next returned NULL", stderr); else - fprintf (stderr, "u16_grapheme_next skipped %zu units", next - s); + fprintf (stderr, "u16_grapheme_next skipped %tu units", next - s); fprintf (stderr, ", expected %zu:\n", len); for (i = 0; i < n; i++) fprintf (stderr, " %04x", s[i]); diff --git a/tests/unigbrk/test-u16-grapheme-prev.c b/tests/unigbrk/test-u16-grapheme-prev.c index 6d0260febc..a4745f379e 100644 --- a/tests/unigbrk/test-u16-grapheme-prev.c +++ b/tests/unigbrk/test-u16-grapheme-prev.c @@ -59,7 +59,7 @@ test_u16_grapheme_prev (size_t len, ...) if (prev == NULL) fputs ("u16_grapheme_prev returned NULL", stderr); else - fprintf (stderr, "u16_grapheme_prev skipped %zu units", end - prev); + fprintf (stderr, "u16_grapheme_prev skipped %tu units", end - prev); fprintf (stderr, ", expected %zu:\n", len); for (i = 0; i < n; i++) fprintf (stderr, " %04x", s[i]); diff --git a/tests/unigbrk/test-u32-grapheme-next.c b/tests/unigbrk/test-u32-grapheme-next.c index 447b5b9420..a6cfeeb225 100644 --- a/tests/unigbrk/test-u32-grapheme-next.c +++ b/tests/unigbrk/test-u32-grapheme-next.c @@ -57,7 +57,7 @@ test_u32_grapheme_next (size_t len, ...) if (next == NULL) fputs ("u32_grapheme_next returned NULL", stderr); else - fprintf (stderr, "u32_grapheme_next skipped %zu units", next - s); + fprintf (stderr, "u32_grapheme_next skipped %tu units", next - s); fprintf (stderr, ", expected %zu:\n", len); for (i = 0; i < n; i++) fprintf (stderr, " %04x", s[i]); diff --git a/tests/unigbrk/test-u32-grapheme-prev.c b/tests/unigbrk/test-u32-grapheme-prev.c index dd72ef5f1d..8a9d1057b7 100644 --- a/tests/unigbrk/test-u32-grapheme-prev.c +++ b/tests/unigbrk/test-u32-grapheme-prev.c @@ -59,7 +59,7 @@ test_u32_grapheme_prev (size_t len, ...) if (prev == NULL) fputs ("u32_grapheme_prev returned NULL", stderr); else - fprintf (stderr, "u32_grapheme_prev skipped %zu units", end - prev); + fprintf (stderr, "u32_grapheme_prev skipped %tu units", end - prev); fprintf (stderr, ", expected %zu:\n", len); for (i = 0; i < n; i++) fprintf (stderr, " %04x", s[i]); diff --git a/tests/unigbrk/test-u8-grapheme-next.c b/tests/unigbrk/test-u8-grapheme-next.c index 16b62deece..1265c3c20c 100644 --- a/tests/unigbrk/test-u8-grapheme-next.c +++ b/tests/unigbrk/test-u8-grapheme-next.c @@ -38,7 +38,7 @@ test_u8_grapheme_next (const char *input, size_t n, size_t len) if (next == NULL) fputs ("u8_grapheme_next returned NULL", stderr); else - fprintf (stderr, "u8_grapheme_next skipped %zu bytes", next - s); + fprintf (stderr, "u8_grapheme_next skipped %tu bytes", next - s); fprintf (stderr, ", expected %zu:\n", len); for (i = 0; i < n; i++) fprintf (stderr, " %02x", s[i]); diff --git a/tests/unigbrk/test-u8-grapheme-prev.c b/tests/unigbrk/test-u8-grapheme-prev.c index 0e06210b04..a775a90d1c 100644 --- a/tests/unigbrk/test-u8-grapheme-prev.c +++ b/tests/unigbrk/test-u8-grapheme-prev.c @@ -39,7 +39,7 @@ test_u8_grapheme_prev (const char *input, size_t n, size_t len) if (prev == NULL) fputs ("u8_grapheme_prev returned NULL", stderr); else - fprintf (stderr, "u8_grapheme_prev skipped %zu bytes", end - prev); + fprintf (stderr, "u8_grapheme_prev skipped %tu bytes", end - prev); fprintf (stderr, ", expected %zu:\n", len); for (i = 0; i < n; i++) fprintf (stderr, " %02x", s[i]);
