[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: test-intprops.c: many new warnings
From: |
Paul Eggert |
Subject: |
Re: test-intprops.c: many new warnings |
Date: |
Tue, 24 May 2011 16:50:41 -0700 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Thunderbird/3.1.10 |
On 05/24/11 12:36, Jim Meyering wrote:
> "make check" was inundated with new warnings.
> Nearly 500 lines worth.
Thanks, I fixed those by pushing the following two patches:
---
ChangeLog | 9 +++++++++
lib/intprops.h | 8 ++++----
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 270866e..fee8b5a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2011-05-24 Paul Eggert <address@hidden>
+
+ intprops: shorten, to pacify gcc -Woverlength-strings
+ * lib/intprops.h (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT):
+ (_GL_BINARY_OP_OVERFLOW): Say "0 * (x)" rather than "(x) - (x)",
+ so that, for example, verify (INT_MULTIPLY_OVERFLOW (...)) is less
+ likely to run afoul of C compiler limits for string constant lengths.
+ See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00528.html>.
+
2011-05-24 Eric Blake <address@hidden>
docs: document recently fixed glibc printf bug
diff --git a/lib/intprops.h b/lib/intprops.h
index 293204a..d722648 100644
--- a/lib/intprops.h
+++ b/lib/intprops.h
@@ -25,11 +25,11 @@
/* Return a integer value, converted to the same type as the integer
expression E after integer type promotion. V is the unconverted value.
E should not have side effects. */
-#define _GL_INT_CONVERT(e, v) ((e) - (e) + (v))
+#define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>. */
-#define _GL_INT_NEGATE_CONVERT(e, v) ((e) - (e) - (v))
+#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v))
/* The extra casts in the following macros work around compiler bugs,
e.g., in Cray C 5.0.3.0. */
@@ -314,7 +314,7 @@
Arguments should be free of side effects. */
#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \
op_result_overflow (a, b, \
- _GL_INT_MINIMUM ((b) - (b) + (a)), \
- _GL_INT_MAXIMUM ((b) - (b) + (a)))
+ _GL_INT_MINIMUM (0 * (b) + (a)), \
+ _GL_INT_MAXIMUM (0 * (b) + (a)))
#endif /* _GL_INTPROPS_H */
--
1.7.4.4
---
ChangeLog | 6 ++++++
tests/test-intprops.c | 6 ++++++
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index fee8b5a..390d4e8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2011-05-24 Paul Eggert <address@hidden>
+ test-intprops: disable -Wtype-limits diagnostics
+ * tests/test-intprops.c: Use a pragma to ignore -Wtype-limits
+ diagnostics. Otherwise, the integer overflow macros generate many
+ diagnostics. Reported by Jim Meyering in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00528.html>.
+
intprops: shorten, to pacify gcc -Woverlength-strings
* lib/intprops.h (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT):
(_GL_BINARY_OP_OVERFLOW): Say "0 * (x)" rather than "(x) - (x)",
diff --git a/tests/test-intprops.c b/tests/test-intprops.c
index 8fc582b..1a34d77 100644
--- a/tests/test-intprops.c
+++ b/tests/test-intprops.c
@@ -16,6 +16,12 @@
/* Written by Paul Eggert. */
+/* Tell gcc not to warn about the many (X < 0) expressions that
+ the overflow macros expand to. */
+#if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__
+# pragma GCC diagnostic ignored "-Wtype-limits"
+#endif
+
#include <config.h>
#include "intprops.h"
--
1.7.4.4