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.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


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