Browse Source

tar: pacify GCC 5.1 -Wformat-signedness

* lib/wordsplit.c (struct wordsplit_node.flags):
Now unsigned, so that 'printf ("%x", p->flags)' doesn't provoke GCC.
* src/incremen.c (read_num, dumpdir_ok):
Don't printf an int with %x or %o.
Paul Eggert 9 years ago
parent
commit
da06935f6e
2 changed files with 12 additions and 8 deletions
  1. 1 1
      lib/wordsplit.c
  2. 11 7
      src/incremen.c

+ 1 - 1
lib/wordsplit.c

@@ -221,7 +221,7 @@ struct wordsplit_node
 {
   struct wordsplit_node *prev;	/* Previous element */
   struct wordsplit_node *next;	/* Next element */
-  int flags;			/* Node flags */
+  unsigned flags;		/* Node flags */
   union
   {
     struct

+ 11 - 7
src/incremen.c

@@ -735,7 +735,7 @@ scan_directory (struct tar_stat_info *st)
     savedir_error (dir);
 
   info_attach_exclist (st);
-  
+
   tmp = xstrdup (dir);
   zap_slashes (tmp);
 
@@ -1155,11 +1155,14 @@ read_num (FILE *fp, char const *fieldname,
     }
 
   if (c)
-    FATAL_ERROR ((0, 0,
-		  _("%s: byte %s: %s %s followed by invalid byte 0x%02x"),
-		  quotearg_colon (listed_incremental_option),
-		  offtostr (ftello (fp), offbuf),
-		  fieldname, buf, c));
+    {
+      unsigned uc = c;
+      FATAL_ERROR ((0, 0,
+		    _("%s: byte %s: %s %s followed by invalid byte 0x%02x"),
+		    quotearg_colon (listed_incremental_option),
+		    offtostr (ftello (fp), offbuf),
+		    fieldname, buf, uc));
+    }
 
   *pval = strtosysint (buf, NULL, min_val, max_val);
   conversion_errno = errno;
@@ -1541,9 +1544,10 @@ dumpdir_ok (char *dumpdir)
     {
       if (expect && *p != expect)
 	{
+	  unsigned char uc = *p;
 	  ERROR ((0, 0,
 		  _("Malformed dumpdir: expected '%c' but found %#3o"),
-		  expect, *p));
+		  expect, uc));
 	  return false;
 	}
       switch (*p)