aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2015-11-17 13:16:35 -0500
committerJason Merrill <jason@gcc.gnu.org>2015-11-17 13:16:35 -0500
commit3e44547c936be9e741411e812fc1565f539641c1 (patch)
treea287eb144d579d831d29ac162fbecfaac0eda88a
parent3212c3c8ff81e677cef51136e13966a4157648d1 (diff)
downloadgcc-3e44547c936be9e741411e812fc1565f539641c1.zip
gcc-3e44547c936be9e741411e812fc1565f539641c1.tar.gz
gcc-3e44547c936be9e741411e812fc1565f539641c1.tar.bz2
re PR bootstrap/68346 (Bootstrap failure on i686-linux)
PR bootstrap/68346 * c-common.c (warn_tautological_cmp): Fold before checking for constants. From-SVN: r230471
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/c-family/c-common.c2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wtautological-compare2.C11
3 files changed, 18 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 3151e34..9ba2ea0 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2015-11-17 Jason Merrill <jason@redhat.com>
+
+ PR bootstrap/68346
+ * c-common.c (warn_tautological_cmp): Fold before checking for
+ constants.
+
2015-11-16 Marek Polacek <polacek@redhat.com>
PR c++/68362
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 06d857c..f50ca48 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -1924,7 +1924,7 @@ warn_tautological_cmp (location_t loc, enum tree_code code, tree lhs, tree rhs)
/* We do not warn for constants because they are typical of macro
expansions that test for features, sizeof, and similar. */
- if (CONSTANT_CLASS_P (lhs) || CONSTANT_CLASS_P (rhs))
+ if (CONSTANT_CLASS_P (fold (lhs)) || CONSTANT_CLASS_P (fold (rhs)))
return;
/* Don't warn for e.g.
diff --git a/gcc/testsuite/g++.dg/warn/Wtautological-compare2.C b/gcc/testsuite/g++.dg/warn/Wtautological-compare2.C
new file mode 100644
index 0000000..9d9060d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wtautological-compare2.C
@@ -0,0 +1,11 @@
+// PR bootstrap/68346
+// { dg-options -Wtautological-compare }
+
+#define INVALID_REGNUM (~(unsigned int) 0)
+#define PIC_OFFSET_TABLE_REGNUM INVALID_REGNUM
+
+int main()
+{
+ if ((unsigned) PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM)
+ __builtin_abort();
+}