This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.20-339-g1c4053d
- From: roland at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 11 Dec 2014 21:48:03 -0000
- Subject: 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