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.24-630-g3c93782
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 11 Jan 2017 14:02:50 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.24-630-g3c93782
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 3c9378265a8633e2c85a393b54a16abcf64fe616 (commit)
from 436cfba0abf749e5993b52dce589bae482f8c58a (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=3c9378265a8633e2c85a393b54a16abcf64fe616
commit 3c9378265a8633e2c85a393b54a16abcf64fe616
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed Jan 11 14:02:23 2017 +0000
Fix testsuite build for GCC 7 -Wformat-truncation.
This patch fixes the glibc testsuite build for GCC 7
-Wformat-truncation, newly moved out of -Wformat-length and with some
further warnings that didn't previously appear. Two tests that
previously disabled -Wformat-length are changed to disable
-Wformat-truncation instead; two others are made to disable that
option as well.
Tested (compilation only) with build-many-glibcs.py for aarch64 with
GCC mainline.
* stdio-common/tst-printf.c [__GNUC_PREREQ (7, 0)]: Ignore
-Wformat-truncation instead of -Wformat-length.
* time/tst-strptime2.c (mkbuf) [__GNUC_PREREQ (7, 0)]: Likewise.
* stdio-common/tstdiomisc.c (F): Ignore -Wformat-truncation for
GCC 7.
* wcsmbs/tst-wcstof.c: Include <libc-internal.h>.
(do_test): Ignore -Wformat-truncation for GCC 7.
diff --git a/ChangeLog b/ChangeLog
index 8e784b8..9911ab2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2017-01-11 Joseph Myers <joseph@codesourcery.com>
+ * stdio-common/tst-printf.c [__GNUC_PREREQ (7, 0)]: Ignore
+ -Wformat-truncation instead of -Wformat-length.
+ * time/tst-strptime2.c (mkbuf) [__GNUC_PREREQ (7, 0)]: Likewise.
+ * stdio-common/tstdiomisc.c (F): Ignore -Wformat-truncation for
+ GCC 7.
+ * wcsmbs/tst-wcstof.c: Include <libc-internal.h>.
+ (do_test): Ignore -Wformat-truncation for GCC 7.
+
* locale/programs/ld-address.c (INT_STR_ELEM): Increase size of
buffer used to print long int value.
diff --git a/stdio-common/tst-printf.c b/stdio-common/tst-printf.c
index 74150c5..719b3eb 100644
--- a/stdio-common/tst-printf.c
+++ b/stdio-common/tst-printf.c
@@ -33,8 +33,9 @@
DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
#if __GNUC_PREREQ (7, 0)
-/* Compiler warnings about format lengths should also be ignored. */
-DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-length");
+/* Compiler warnings about snprintf output truncation should also be
+ ignored. */
+DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-truncation");
#endif
static void rfg1 (void);
diff --git a/stdio-common/tstdiomisc.c b/stdio-common/tstdiomisc.c
index 5548a71..9c7342d 100644
--- a/stdio-common/tstdiomisc.c
+++ b/stdio-common/tstdiomisc.c
@@ -94,6 +94,14 @@ F (void)
qnanval = NAN;
+ /* The %f and %F arguments are in fact constants, but GCC is
+ prevented from seeing this (volatile is used) so it cannot tell
+ that the output is not truncated. */
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-truncation");
+#endif
+
snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
qnanval, qnanval, qnanval, qnanval,
qnanval, qnanval, qnanval, qnanval);
@@ -260,6 +268,8 @@ F (void)
printf ("expected L\"-inf -INF -inf -INF -inf -INF -inf -INF\", got L\"%S\"\n",
wbuf);
+ DIAG_POP_NEEDS_COMMENT;
+
return result;
}
diff --git a/time/tst-strptime2.c b/time/tst-strptime2.c
index 04f7cff..9273568 100644
--- a/time/tst-strptime2.c
+++ b/time/tst-strptime2.c
@@ -73,7 +73,7 @@ mkbuf (char *buf, bool neg, bool colon, unsigned int hhmm, size_t ndigits)
This test is explicitly using short buffers to force snprintf to truncate
the output so we ignore the warnings. */
DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-length");
+ DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-truncation");
#endif
if (colon)
snprintf (buf + i, ndigits + 2, "%02u:%02u", hh, mm);
diff --git a/wcsmbs/tst-wcstof.c b/wcsmbs/tst-wcstof.c
index 576a58c..861f659 100644
--- a/wcsmbs/tst-wcstof.c
+++ b/wcsmbs/tst-wcstof.c
@@ -3,6 +3,7 @@
#include <stdio.h>
#include <string.h>
#include <wctype.h>
+#include <libc-internal.h>
static int
do_test (void)
@@ -14,7 +15,14 @@ do_test (void)
tmp[1] = '1';
tmp[2] = 0;
+ /* GCC does not know the result of wcstof so cannot see that the
+ snprintf output is not truncated. */
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-truncation");
+#endif
snprintf (buf, 100, "%S = %f", tmp, wcstof (tmp, NULL));
+ DIAG_POP_NEEDS_COMMENT;
printf ("\"%s\" -> %s\n", buf,
strcmp (buf, "81 = 81.000000") == 0 ? "okay" : "buggy");
result |= strcmp (buf, "81 = 81.000000") != 0;
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 8 ++++++++
stdio-common/tst-printf.c | 5 +++--
stdio-common/tstdiomisc.c | 10 ++++++++++
time/tst-strptime2.c | 2 +-
wcsmbs/tst-wcstof.c | 8 ++++++++
5 files changed, 30 insertions(+), 3 deletions(-)
hooks/post-receive
--
GNU C Library master sources