]> Savannah Git Hosting - gnulib.git/commitdiff
xalloc: avoid GCC 5.1 warning on 32 bit
authorPádraig Brady <P@draigBrady.com>
Fri, 2 Oct 2015 19:21:50 +0000 (20:21 +0100)
committerPádraig Brady <P@draigBrady.com>
Fri, 2 Oct 2015 19:24:03 +0000 (20:24 +0100)
* lib/xalloc.h: Disable -Wstrict-overflow for uses of
xalloc_oversized(), which was seen to give this warning
on GCC 5.1 on 32 bit: "assuming signed overflow does not occur
when simplifying conditional".

ChangeLog
lib/xalloc.h

index 1fe13e22a08ac4e57342776f0986af2f124434ef..116bcbae538c7ef55fe440e9df773f1555ef94b2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-10-02  Pádraig Brady  <P@draigBrady.com>
+
+       xalloc: avoid GCC 5.1 warning on 32 bit
+       * lib/xalloc.h: Disable -Wstrict-overflow for uses of
+       xalloc_oversized(), which was seen to give this warning
+       on GCC 5.1 on 32 bit: "assuming signed overflow does not occur
+       when simplifying conditional".
+
 2015-10-02  Daiki Ueno  <ueno@gnu.org>
 
        uniname/uniname-tests: avoid compiler warnings
index 81ef680a3a7aabd036529cf35b6a976f2c13f945..b250e2d487653625b4ffd0595437bfabfbc65547 100644 (file)
@@ -94,6 +94,12 @@ char *xstrdup (char const *str)
 #define XCALLOC(n, t) \
    ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
 
+/* GCC 5.1 gives an erroneous warning on 32 bit for xalloc_oversized():
+   "assuming signed overflow does not occur when simplifying conditional".  */
+#if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wstrict-overflow"
+#endif
 
 /* Allocate an array of N objects, each with S bytes of memory,
    dynamically, with error checking.  S must be nonzero.  */
@@ -121,6 +127,10 @@ xnrealloc (void *p, size_t n, size_t s)
   return xrealloc (p, n * s);
 }
 
+#if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
+# pragma GCC diagnostic pop
+#endif
+
 /* If P is null, allocate a block of at least *PN such objects;
    otherwise, reallocate P so that it contains more than *PN objects
    each of S bytes.  S must be nonzero.  Set *PN to the new number of