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]);




Reply via email to