diff options
Diffstat (limited to 'gcc/tree-chrec.c')
-rw-r--r-- | gcc/tree-chrec.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/tree-chrec.c b/gcc/tree-chrec.c index 7a2e100..ee789a2 100644 --- a/gcc/tree-chrec.c +++ b/gcc/tree-chrec.c @@ -1468,11 +1468,11 @@ eq_evolutions_p (const_tree chrec0, const_tree chrec1) if (chrec0 == chrec1) return true; + if (! types_compatible_p (TREE_TYPE (chrec0), TREE_TYPE (chrec1))) + return false; + switch (TREE_CODE (chrec0)) { - case INTEGER_CST: - return operand_equal_p (chrec0, chrec1, 0); - case POLYNOMIAL_CHREC: return (CHREC_VARIABLE (chrec0) == CHREC_VARIABLE (chrec1) && eq_evolutions_p (CHREC_LEFT (chrec0), CHREC_LEFT (chrec1)) @@ -1487,8 +1487,12 @@ eq_evolutions_p (const_tree chrec0, const_tree chrec1) && eq_evolutions_p (TREE_OPERAND (chrec0, 1), TREE_OPERAND (chrec1, 1)); + CASE_CONVERT: + return eq_evolutions_p (TREE_OPERAND (chrec0, 0), + TREE_OPERAND (chrec1, 0)); + default: - return false; + return operand_equal_p (chrec0, chrec1, 0); } } |