From 5a0c4aaebcce464f039fd224fad98ac811bb4356 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 25 Oct 2017 16:49:25 -0400 Subject: [PATCH 24/24] FIXME: (jason's): fix Wtautological-compare-1.c --- gcc/c-family/c-warn.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gcc/c-family/c-warn.c b/gcc/c-family/c-warn.c index cb1db03..878a3af 100644 --- a/gcc/c-family/c-warn.c +++ b/gcc/c-family/c-warn.c @@ -313,10 +313,14 @@ find_array_ref_with_const_idx_r (tree *expr_p, int *, void *) { tree expr = *expr_p; - if ((TREE_CODE (expr) == ARRAY_REF - || TREE_CODE (expr) == ARRAY_RANGE_REF) - && TREE_CODE (TREE_OPERAND (expr, 1)) == INTEGER_CST) - return integer_type_node; + if (TREE_CODE (expr) == ARRAY_REF + || TREE_CODE (expr) == ARRAY_RANGE_REF) + { + tree op = TREE_OPERAND (expr, 1); + STRIP_ANY_LOCATION_WRAPPER (op); + if (TREE_CODE (op) == INTEGER_CST) + return integer_type_node; + } return NULL_TREE; } @@ -394,6 +398,9 @@ warn_tautological_cmp (location_t loc, enum tree_code code, tree lhs, tree rhs) if (TREE_CODE_CLASS (code) != tcc_comparison) return; + STRIP_ANY_LOCATION_WRAPPER (lhs); + STRIP_ANY_LOCATION_WRAPPER (rhs); + /* Don't warn for various macro expansions. */ if (from_macro_expansion_at (loc) || from_macro_expansion_at (EXPR_LOCATION (lhs)) -- 1.8.5.3