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.22-701-gf69f887


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  f69f887092914f6e1abcc2d622e4f5e56a6e1645 (commit)
      from  c34ae92056f29f0843274c0cb4ea8c301f4b13e8 (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=f69f887092914f6e1abcc2d622e4f5e56a6e1645

commit f69f887092914f6e1abcc2d622e4f5e56a6e1645
Author: Stefan Liebler <stli@linux.vnet.ibm.com>
Date:   Mon Jan 25 12:44:46 2016 +0100

    S390: Fix build failure in test string/tst-endian.c with gcc 6.
    
    Building string/tst-endian.c with gcc 6 produces an build warning/error on s390 (big endian machine):
    gcc tst-endian.c -c -std=gnu11 -fgnu89-inline  -O2 or -O3 ...
    tst-endian.c: In function â??do_testâ??:
    tst-endian.c:16:30: error: self-comparison always evaluates to false [-Werror=tautological-compare]
        if (htobe16 (be16toh (i)) != i)
                                  ^~
    ...
    
    See definitions of htobexx, bexxtoh in string/endian.h:
    ...
    
    This patch silences these warnings with DIAG_* macros if build with gcc 6
    and newer.
    
    The same warnings occur on little endian machines with the
    "htoleXX (leXXtoh (i)) != i" if-statements.
    
    ChangeLog:
    
    	* string/tst-endian.c: Include <libc-internal.h>.
    	(do_test): Ignore tautological-compare warnings around
    	"htobeXX (beXXtoh (i)) != i" and
    	"htoleXX (leXXtoh (i)) != i" if-statements.

diff --git a/ChangeLog b/ChangeLog
index 6c21184..9bdcb51 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-01-22  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
+	* string/tst-endian.c: Include <libc-internal.h>.
+	(do_test): Ignore tautological-compare warnings around
+	"htobeXX (beXXtoh (i)) != i" and
+	"htoleXX (leXXtoh (i)) != i" if-statements.
+
 2016-01-24  David S. Miller  <davem@davemloft.net>
 
 	* sysdeps/sparc/sparc32/fpu/e_sqrtl.c: New file.
diff --git a/string/tst-endian.c b/string/tst-endian.c
index 8684bb2..7d39131 100644
--- a/string/tst-endian.c
+++ b/string/tst-endian.c
@@ -3,6 +3,20 @@
 #include <inttypes.h>
 #include <stdio.h>
 #include <stdint.h>
+#include <libc-internal.h>
+
+#if __GNUC_PREREQ (6, 0)
+/* GCC 6.0 warns on big endian systems about:
+   htobeXX (beXXtoh (i)) != i
+   warning: self-comparison always evaluates to false [-Wtautological-compare]
+   because htobeXX(x) and beXXtoh(x) is defined to (x)
+   in string/endian.h on big endian systems.
+   The same applies to htoleXX/leXXtoh on little endian systems.  */
+# define DIAG_IGNORE_NEEDS_COMMENT_TAUTOLOGICAL_COMPARE() \
+  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wtautological-compare")
+#else
+# define DIAG_IGNORE_NEEDS_COMMENT_TAUTOLOGICAL_COMPARE()
+#endif
 
 static int
 do_test (void)
@@ -13,6 +27,8 @@ do_test (void)
     {
       if (i < UINT64_C (65536))
 	{
+	  DIAG_PUSH_NEEDS_COMMENT;
+	  DIAG_IGNORE_NEEDS_COMMENT_TAUTOLOGICAL_COMPARE ();
 	  if (htobe16 (be16toh (i)) != i)
 	    {
 	      printf ("htobe16 (be16toh (%" PRIx64 ")) == %" PRIx16 "\n",
@@ -25,6 +41,7 @@ do_test (void)
 		      i, (uint16_t) htole16 (le16toh (i)));
 	      result = 1;
 	    }
+	  DIAG_POP_NEEDS_COMMENT;
 
 	  uint16_t n[2];
 	  n[__BYTE_ORDER == __LITTLE_ENDIAN] = bswap_16 (i);
@@ -45,6 +62,8 @@ do_test (void)
 
       if (i < UINT64_C (4294967296))
 	{
+	  DIAG_PUSH_NEEDS_COMMENT;
+	  DIAG_IGNORE_NEEDS_COMMENT_TAUTOLOGICAL_COMPARE ();
 	  if (htobe32 (be32toh (i)) != i)
 	    {
 	      printf ("htobe32 (be32toh (%" PRIx64 ")) == %" PRIx32 "\n",
@@ -57,6 +76,7 @@ do_test (void)
 		      i, (uint32_t) htole32 (le32toh (i)));
 	      result = 1;
 	    }
+	  DIAG_POP_NEEDS_COMMENT;
 
 	  uint32_t n[2];
 	  n[__BYTE_ORDER == __LITTLE_ENDIAN] = bswap_32 (i);
@@ -75,6 +95,8 @@ do_test (void)
 	    }
 	}
 
+      DIAG_PUSH_NEEDS_COMMENT;
+      DIAG_IGNORE_NEEDS_COMMENT_TAUTOLOGICAL_COMPARE ();
       if (htobe64 (be64toh (i)) != i)
 	{
 	  printf ("htobe64 (be64toh (%" PRIx64 ")) == %" PRIx64 "\n",
@@ -87,6 +109,7 @@ do_test (void)
 		  i, htole64 (le64toh (i)));
 	  result = 1;
 	}
+      DIAG_POP_NEEDS_COMMENT;
 
       uint64_t n[2];
       n[__BYTE_ORDER == __LITTLE_ENDIAN] = bswap_64 (i);

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

Summary of changes:
 ChangeLog           |    7 +++++++
 string/tst-endian.c |   23 +++++++++++++++++++++++
 2 files changed, 30 insertions(+), 0 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]