This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.20-339-g1c4053d


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  1c4053db63e2a3470ed8ace2ddd9636f9a6e135c (commit)
      from  a1edbf3cb8095699794d6601446c0f18cfa265a8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1c4053db63e2a3470ed8ace2ddd9636f9a6e135c

commit 1c4053db63e2a3470ed8ace2ddd9636f9a6e135c
Author: Roland McGrath <roland@hack.frob.com>
Date:   Thu Dec 11 13:46:21 2014 -0800

    Eliminate -Wno-format from printf/scanf tests.

diff --git a/ChangeLog b/ChangeLog
index e9eed7c..ad8fe21 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2014-12-11  Roland McGrath  <roland@hack.frob.com>
+
+	* stdio-common/tstdiomisc.c (t2): Ignore -Wformat and
+	-Wformat-extra-args warnings for scanf formats.
+	* stdio-common/scanf4.c (main): Ignore -Wformat-zero-length around
+	test of zero-length format (duh).
+	* stdio-common/scanf7.c (main): Ignore -Wformat warnings for
+	corner-case scanf format test.
+	* stdio-common/test-vfprintf.c (do_test): Ignore -Wformat-security for
+	generated fprintf format string.
+	* stdio-common/tst-sprintf.c (do_test): Ignore -Wformat warnings for
+	corner-case sprintf format tests.
+	* stdio-common/tst-printf.c: Ignore -Wformat throughout.
+	* stdio-common/tst-printfsz.c (main): Ignore -Wformat and
+	-Wformat-extra-args warnings throughout.
+	* stdio-common/Makefile (CFLAGS-tstdiomisc.c): Variable removed.
+	(CFLAGS-scanf4.c): Likewise.
+	(CFLAGS-scanf7.c): Likewise.
+	(CFLAGS-tst-sprintf.c): Likewise.
+	(CFLAGS-tst-printf.c): Likewise.
+	(CFLAGS-tst-printfsz.c): Likewise.
+
 2014-12-11  Joseph Myers  <joseph@codesourcery.com>
 
 	* include/cpio.h: New file.
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index 5f8e534..f763657 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -80,11 +80,6 @@ endif
 
 CFLAGS-vfprintf.c = -Wno-uninitialized
 CFLAGS-vfwprintf.c = -Wno-uninitialized
-CFLAGS-tst-printf.c = -Wno-format
-CFLAGS-tstdiomisc.c = -Wno-format
-CFLAGS-scanf4.c = -Wno-format
-CFLAGS-scanf7.c = -Wno-format
-CFLAGS-tst-printfsz.c = -Wno-format
 
 CFLAGS-tmpfile.c = -fexceptions
 CFLAGS-tmpfile64.c = -fexceptions
@@ -116,9 +111,6 @@ CFLAGS-scanf15.c = -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \
 CFLAGS-scanf17.c = -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \
 		   -I../wctype
 
-# We know the test has a format string problem.
-CFLAGS-tst-sprintf.c = -Wno-format
-
 CPPFLAGS += $(libio-mtsafe)
 
 $(objpfx)tst-setvbuf1.out: /dev/null $(objpfx)tst-setvbuf1
diff --git a/stdio-common/scanf4.c b/stdio-common/scanf4.c
index f9a9134..9bb14bb 100644
--- a/stdio-common/scanf4.c
+++ b/stdio-common/scanf4.c
@@ -1,5 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
+#include <libc-internal.h>
 
 int
 main(int arc, char *argv[])
@@ -15,7 +16,14 @@ main(int arc, char *argv[])
   printf("Result of fscanf %%n = %d\n", res);
   printf("Scanned format = %d\n", val);
 
+  /* We're testing exactly the case the warning is for.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-zero-length");
+
   res = fscanf(fp, "");
+
+  DIAG_POP_NEEDS_COMMENT;
+
   printf("Result of fscanf \"\" = %d\n", res);
   if (res != 0)
     abort ();
diff --git a/stdio-common/scanf7.c b/stdio-common/scanf7.c
index c746e47..53ddf4c 100644
--- a/stdio-common/scanf7.c
+++ b/stdio-common/scanf7.c
@@ -1,5 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
+#include <libc-internal.h>
 
 int
 main (int argc, char *argv[])
@@ -14,7 +15,16 @@ main (int argc, char *argv[])
     abort ();
 
   n = -2;
+
+  /* We are testing a corner case of the scanf format string here.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-extra-args");
+
   ret = sscanf ("1000", "%llld", &n);
+
+  DIAG_POP_NEEDS_COMMENT;
+
   printf ("%%llld: ret: %d, n: %Ld\n", ret, n);
   if (ret > 0 || n >= 0L)
     abort ();
diff --git a/stdio-common/test-vfprintf.c b/stdio-common/test-vfprintf.c
index 9cc56d7..8483d8d 100644
--- a/stdio-common/test-vfprintf.c
+++ b/stdio-common/test-vfprintf.c
@@ -92,7 +92,13 @@ do_test (void)
       fprintf (fp, "%s", large);
       fprintf (fp, "%.*s", 30000, large);
       large[20000] = '\0';
+      /* We're testing a large format string here and need to generate it
+         to avoid this source file being ridiculous.  So disable the warning
+         about a generated format string.  */
+      DIAG_PUSH_NEEDS_COMMENT;
+      DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-security");
       fprintf (fp, large);
+      DIAG_POP_NEEDS_COMMENT;
       fprintf (fp, "%-1.300000000s", "hello");
 
       if (fflush (fp) != 0 || ferror (fp) != 0 || fclose (fp) != 0)
diff --git a/stdio-common/tst-printf.c b/stdio-common/tst-printf.c
index 10673ce..d52dc1d 100644
--- a/stdio-common/tst-printf.c
+++ b/stdio-common/tst-printf.c
@@ -26,6 +26,11 @@
 #endif
 
 #include <float.h>
+#include <libc-internal.h>
+
+/* This whole file is picayune tests of corner cases of printf format strings.
+   The compiler warnings are not useful here.  */
+DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
 
 static void rfg1 (void);
 static void rfg2 (void);
diff --git a/stdio-common/tst-printfsz.c b/stdio-common/tst-printfsz.c
index 74d67d2..902b2ac 100644
--- a/stdio-common/tst-printfsz.c
+++ b/stdio-common/tst-printfsz.c
@@ -23,6 +23,10 @@ main (int argc, char *argv[])
   register_printf_function ('B', printf_size, printf_size_info);
   DIAG_POP_NEEDS_COMMENT;
 
+  /* All of the formats here use the nonstandard extension specifier
+     just registered, so compiler checking will never grok them.  */
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-extra-args");
 
   sprintf (buf, "%g %b %B %.0b %.0B %.1b %.1B %8.0b %08.0B",
 	   V, 1025., V, V, V, V, V, V, V, V);
diff --git a/stdio-common/tst-sprintf.c b/stdio-common/tst-sprintf.c
index 2fe373f..ea3008b 100644
--- a/stdio-common/tst-sprintf.c
+++ b/stdio-common/tst-sprintf.c
@@ -45,15 +45,26 @@ do_test (void)
       result = 1;
     }
 
-  if (sprintf (buf, "%67108863.16\"%d", 7) != 14
-      || strcmp (buf, "%67108863.16\"7") != 0)
+  /* We are testing a corner case of the sprintf format string here.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  int n = sprintf (buf, "%67108863.16\"%d", 7);
+  DIAG_POP_NEEDS_COMMENT;
+
+  if (n != 14 || strcmp (buf, "%67108863.16\"7") != 0)
     {
-      printf ("sprintf (buf, \"%%67108863.16\\\"%%d\", 7) produced `%s' output", buf);
+      printf ("sprintf (buf, \"%%67108863.16\\\"%%d\", 7) produced `%s' output",
+              buf);
       result = 1;
     }
 
-  if (sprintf (buf, "%*\"%d", 0x3ffffff, 7) != 11
-      || strcmp (buf, "%67108863\"7") != 0)
+  /* We are testing a corner case of the sprintf format string here.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  n = sprintf (buf, "%*\"%d", 0x3ffffff, 7);
+  DIAG_POP_NEEDS_COMMENT;
+
+  if (n != 11 || strcmp (buf, "%67108863\"7") != 0)
     {
       printf ("sprintf (buf, \"%%*\\\"%%d\", 0x3ffffff, 7) produced `%s' output", buf);
       result = 1;
diff --git a/stdio-common/tstdiomisc.c b/stdio-common/tstdiomisc.c
index 2e0663a..5548a71 100644
--- a/stdio-common/tstdiomisc.c
+++ b/stdio-common/tstdiomisc.c
@@ -3,6 +3,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <wchar.h>
+#include <libc-internal.h>
 
 static int
 t1 (void)
@@ -28,6 +29,12 @@ t2 (void)
 	  INPUT, FORMAT, retval, (long int) VAR); \
   result |= retval != EXP_RES || VAR != EXP_VAL
 
+  /* This function is testing corner cases of the scanf format string,
+     so they do not all conform to -Wformat's expectations.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-extra-args");
+
   SCAN ("12345", "%ld", N, 1, 12345);
   SCAN ("12345", "%llllld", N, 0, -1);
   SCAN ("12345", "%LLLLLd", N, 0, -1);
@@ -43,6 +50,8 @@ t2 (void)
 	  retval, n, N); \
   result |= retval != 1 || n != 1 || N != -1;
 
+  DIAG_POP_NEEDS_COMMENT;
+
   return result;
 }
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                    |   22 ++++++++++++++++++++++
 stdio-common/Makefile        |    8 --------
 stdio-common/scanf4.c        |    8 ++++++++
 stdio-common/scanf7.c        |   10 ++++++++++
 stdio-common/test-vfprintf.c |    6 ++++++
 stdio-common/tst-printf.c    |    5 +++++
 stdio-common/tst-printfsz.c  |    4 ++++
 stdio-common/tst-sprintf.c   |   21 ++++++++++++++++-----
 stdio-common/tstdiomisc.c    |    9 +++++++++
 9 files changed, 80 insertions(+), 13 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]