bug-gnulib@gnu.org mirror (unofficial)
 help / color / mirror / Atom feed
* [PATCH] Printf unsigned ints with %u in gen-uni-tables.c
@ 2019-02-17  7:17 Nathan Mills
  2019-02-18  0:15 ` Bruno Haible
  0 siblings, 1 reply; 2+ messages in thread
From: Nathan Mills @ 2019-02-17  7:17 UTC (permalink / raw)
  To: bug-gnulib

[-- Attachment #1: Type: text/plain, Size: 12495 bytes --]

From 1b8a4f9a58453ca592ee4fa638abaa3fba080a1b Mon Sep 17 00:00:00 2001
From: Nathan Mills <the.true.nathan.mills@gmail.com>
Date: Sat, 16 Feb 2019 22:53:09 -0800
Subject: [PATCH] Printf unsigned ints with %u in gen-uni-tables.c
Cppcheck gives warnings about gen-uni-tables.c where unsigned ints are
printf'd with %d where %u should be used instead. This patch fixes 25 of
these warnings in gen-uni-tables.c.These warnings are pasted below. Below
that, I have pasted the patch.

[lib\gen-uni-tables.c:735]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:1059]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:1210]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:1579]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:1784]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:1969]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:2179]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:2223]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:2461]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4090]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4369]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4616]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4658]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4902]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4904]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4911]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4911]: (warning) %d in format string (no. 2) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4917]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:4919]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:5336]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:7548]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:8098]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:8392]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:8722]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
[lib\gen-uni-tables.c:9174]: (warning) %d in format string (no. 1) requires
'int' but the argument type is 'unsigned int'.
---
 lib/gen-uni-tables.c | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/lib/gen-uni-tables.c b/lib/gen-uni-tables.c
index 81c138ef4..d82d299e0 100644
--- a/lib/gen-uni-tables.c
+++ b/lib/gen-uni-tables.c
@@ -732,7 +732,7 @@ output_predicate (const char *filename, bool
(*predicate) (unsigned int), const

   for (i = 0; i < 5; i++)
     if (i != 1)
-      fprintf (stream, "#define header_%d %d\n", i,
+      fprintf (stream, "#define header_%u %d\n", i,
                ((uint32_t *) t.result)[i]);

   fprintf (stream, "static const\n");
@@ -1056,7 +1056,7 @@ output_category (const char *filename, const char
*version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define category_header_%d %d\n", i,
+    fprintf (stream, "#define category_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -1207,7 +1207,7 @@ output_combclass (const char *filename, const char
*version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define combclass_header_%d %d\n", i,
+    fprintf (stream, "#define combclass_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -1576,7 +1576,7 @@ output_bidi_category (const char *filename, const
char *version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define bidi_category_header_%d %d\n", i,
+    fprintf (stream, "#define bidi_category_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -1781,7 +1781,7 @@ output_decimal_digit (const char *filename, const
char *version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define decdigit_header_%d %d\n", i,
+    fprintf (stream, "#define decdigit_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -1966,7 +1966,7 @@ output_digit (const char *filename, const char
*version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define digit_header_%d %d\n", i,
+    fprintf (stream, "#define digit_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -2176,7 +2176,7 @@ output_numeric (const char *filename, const char
*version)
         }
     }

-  fprintf (stream, "static const uc_fraction_t u_numeric_values[%d] =\n",
+  fprintf (stream, "static const uc_fraction_t u_numeric_values[%u] =\n",
            nfractions);
   fprintf (stream, "{\n");
   for (i = 0; i < nfractions; i++)
@@ -2220,7 +2220,7 @@ output_numeric (const char *filename, const char
*version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define numeric_header_%d %d\n", i,
+    fprintf (stream, "#define numeric_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -2458,7 +2458,7 @@ output_mirror (const char *filename, const char
*version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define mirror_header_%d %d\n", i,
+    fprintf (stream, "#define mirror_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -4087,7 +4087,7 @@ output_joining_type (const char *filename, const char
*version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define joining_type_header_%d %d\n", i,
+    fprintf (stream, "#define joining_type_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -4366,7 +4366,7 @@ output_joining_group (const char *filename, const
char *version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define joining_group_header_%d %d\n", i,
+    fprintf (stream, "#define joining_group_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -4613,7 +4613,7 @@ output_scripts (const char *version)
       fprintf (stream, "};\n");
     }

-  fprintf (stream, "static const uc_script_t scripts[%d] =\n", numscripts);
+  fprintf (stream, "static const uc_script_t scripts[%u] =\n", numscripts);
   fprintf (stream, "{\n");
   for (s = 0; s < numscripts; s++)
     {
@@ -4655,7 +4655,7 @@ output_scripts (const char *version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define script_header_%d %d\n", i,
+    fprintf (stream, "#define script_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -4899,24 +4899,24 @@ output_blocks (const char *version)
       fprintf (stream, "\n");
     }
   fprintf (stream, "};\n");
-  fprintf (stream, "#define blocks_level1_shift %d\n", shift);
+  fprintf (stream, "#define blocks_level1_shift %u\n", shift);
   fprintf (stream, "#define blocks_level1_threshold 0x%04X\n", threshold);
-  fprintf (stream, "static const uint8_t blocks_level1[%d * 2] =\n",
+  fprintf (stream, "static const uint8_t blocks_level1[%u * 2] =\n",
            threshold >> shift);
   fprintf (stream, "{\n");
   for (i1 = 0; i1 < (threshold >> shift); i1++)
     {
       unsigned int first_index = block_first_index (i1 << shift);
       unsigned int last_index = block_last_index (((i1 + 1) << shift) - 1);
-      fprintf (stream, "  %3d, %3d", first_index, last_index);
+      fprintf (stream, "  %3u, %3u", first_index, last_index);
       if (i1+1 < (threshold >> shift))
         fprintf (stream, ",");
       fprintf (stream, "\n");
     }
   fprintf (stream, "};\n");
-  fprintf (stream, "#define blocks_upper_first_index %d\n",
+  fprintf (stream, "#define blocks_upper_first_index %u\n",
            block_first_index (threshold));
-  fprintf (stream, "#define blocks_upper_last_index %d\n",
+  fprintf (stream, "#define blocks_upper_last_index %u\n",
            block_last_index (0x10FFFF));

   if (ferror (stream) || fclose (stream))
@@ -5333,7 +5333,7 @@ output_ident_category (const char *filename, int
(*predicate) (unsigned int), co
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define identsyntax_header_%d %d\n", i,
+    fprintf (stream, "#define identsyntax_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -7545,7 +7545,7 @@ output_lbp (FILE *stream1, FILE *stream2)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream1, "#define lbrkprop_header_%d %d\n", i,
+    fprintf (stream1, "#define lbrkprop_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream1, "\n");
   fprintf (stream1, "typedef struct\n");
@@ -8095,7 +8095,7 @@ output_wbp (FILE *stream)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define wbrkprop_header_%d %d\n", i,
+    fprintf (stream, "#define wbrkprop_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "\n");
   fprintf (stream, "typedef struct\n");
@@ -8389,7 +8389,7 @@ output_gbp_table (const char *filename, const char
*version)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define gbrkprop_header_%d %d\n", i,
+    fprintf (stream, "#define gbrkprop_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
@@ -8719,7 +8719,7 @@ output_decomposition (FILE *stream1, FILE *stream2)
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream1, "#define decomp_header_%d %d\n", i,
+    fprintf (stream1, "#define decomp_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream1, "\n");
   fprintf (stream1, "typedef struct\n");
@@ -9171,7 +9171,7 @@ output_simple_mapping (const char *filename,
     + (t.level2_size << t.q) * sizeof (uint32_t);

   for (i = 0; i < 5; i++)
-    fprintf (stream, "#define mapping_header_%d %d\n", i,
+    fprintf (stream, "#define mapping_header_%u %d\n", i,
              ((uint32_t *) t.result)[i]);
   fprintf (stream, "static const\n");
   fprintf (stream, "struct\n");
-- 
2.16.4

[-- Attachment #2: Type: text/html, Size: 15599 bytes --]

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] Printf unsigned ints with %u in gen-uni-tables.c
  2019-02-17  7:17 [PATCH] Printf unsigned ints with %u in gen-uni-tables.c Nathan Mills
@ 2019-02-18  0:15 ` Bruno Haible
  0 siblings, 0 replies; 2+ messages in thread
From: Bruno Haible @ 2019-02-18  0:15 UTC (permalink / raw)
  To: bug-gnulib; +Cc: Nathan Mills

Hi Nathan,

> From 1b8a4f9a58453ca592ee4fa638abaa3fba080a1b Mon Sep 17 00:00:00 2001
> From: Nathan Mills <the.true.nathan.mills@gmail.com>
> Date: Sat, 16 Feb 2019 22:53:09 -0800
> Subject: [PATCH] Printf unsigned ints with %u in gen-uni-tables.c
> Cppcheck gives warnings about gen-uni-tables.c where unsigned ints are
> printf'd with %d where %u should be used instead. This patch fixes 25 of
> these warnings in gen-uni-tables.c.These warnings are pasted below. Below
> that, I have pasted the patch.

The patch looks good. But does it fix all the issues? I mean, in

      fprintf (stream, "#define header_%u %d\n", i,
               ((uint32_t *) t.result)[i]);

there is the issue also with the second argument.

Bruno



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-02-18  0:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-17  7:17 [PATCH] Printf unsigned ints with %u in gen-uni-tables.c Nathan Mills
2019-02-18  0:15 ` Bruno Haible

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).