aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2015-07-27 19:09:27 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2015-07-27 19:09:27 +0000
commitf2afe6dd93ff0f07eabd85716ab767701c33e4f0 (patch)
tree345acc5884d42fd6642fbee07236f691cb326a41 /gcc
parentcca444fb00473658e18f52209dc64709af2005b2 (diff)
downloadgcc-f2afe6dd93ff0f07eabd85716ab767701c33e4f0.zip
gcc-f2afe6dd93ff0f07eabd85716ab767701c33e4f0.tar.gz
gcc-f2afe6dd93ff0f07eabd85716ab767701c33e4f0.tar.bz2
re PR bootstrap/67030 (ARM bootstrap failure due to [-Werror=tautological-compare])
PR bootstrap/67030 * c-common.c (warn_tautological_cmp): Don't warn for macro expansion. * c-c++-common/Wtautological-compare-2.c: New test. From-SVN: r226264
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-family/ChangeLog5
-rw-r--r--gcc/c-family/c-common.c6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/c-c++-common/Wtautological-compare-2.c15
4 files changed, 31 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 4d2ed59..06853ea 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,5 +1,10 @@
2015-07-27 Marek Polacek <polacek@redhat.com>
+ PR bootstrap/67030
+ * c-common.c (warn_tautological_cmp): Don't warn for macro expansion.
+
+2015-07-27 Marek Polacek <polacek@redhat.com>
+
PR c++/66555
PR c/54979
* c-common.c (find_array_ref_with_const_idx_r): New function.
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 6a79b95..caa801e 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -1890,6 +1890,12 @@ warn_tautological_cmp (location_t loc, enum tree_code code, tree lhs, tree rhs)
if (TREE_CODE_CLASS (code) != tcc_comparison)
return;
+ /* Don't warn for various macro expansions. */
+ if (from_macro_expansion_at (loc)
+ || from_macro_expansion_at (EXPR_LOCATION (lhs))
+ || from_macro_expansion_at (EXPR_LOCATION (rhs)))
+ return;
+
/* 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))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3e409dd..b769807 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-07-27 Marek Polacek <polacek@redhat.com>
+
+ PR bootstrap/67030
+ * c-c++-common/Wtautological-compare-2.c: New test.
+
2015-07-27 H.J. Lu <hongjiu.lu@intel.com>
PR target/66232
diff --git a/gcc/testsuite/c-c++-common/Wtautological-compare-2.c b/gcc/testsuite/c-c++-common/Wtautological-compare-2.c
new file mode 100644
index 0000000..c8aecef
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/Wtautological-compare-2.c
@@ -0,0 +1,15 @@
+/* PR bootstrap/67030 */
+/* { dg-do compile } */
+/* { dg-options "-Wtautological-compare" } */
+
+extern int foo (void);
+
+#define A a
+#define B A
+#define FOO (A > B)
+
+void
+fn1 (int a)
+{
+ if (FOO);
+}