diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0b2febd597e5..76914efa78bb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-04-23 Eric Botcazou + + * fold-const.c (range_predecessor): Use operand_equal_p + as the predicate for equality. + (range_successor): Likewise. + 2006-04-22 Kazu Hirata Revert: diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 39bd36689d5b..567168276e19 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -4158,7 +4158,8 @@ range_predecessor (tree val) { tree type = TREE_TYPE (val); - if (INTEGRAL_TYPE_P (type) && val == TYPE_MIN_VALUE (type)) + if (INTEGRAL_TYPE_P (type) + && operand_equal_p (val, TYPE_MIN_VALUE (type), 0)) return 0; else return range_binop (MINUS_EXPR, NULL_TREE, val, 0, integer_one_node, 0); @@ -4171,7 +4172,8 @@ range_successor (tree val) { tree type = TREE_TYPE (val); - if (INTEGRAL_TYPE_P (type) && val == TYPE_MAX_VALUE (type)) + if (INTEGRAL_TYPE_P (type) + && operand_equal_p (val, TYPE_MAX_VALUE (type), 0)) return 0; else return range_binop (PLUS_EXPR, NULL_TREE, val, 0, integer_one_node, 0);