aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/fold-const.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0b2febd..76914ef 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * fold-const.c (range_predecessor): Use operand_equal_p
+ as the predicate for equality.
+ (range_successor): Likewise.
+
2006-04-22 Kazu Hirata <kazu@codesourcery.com>
Revert:
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 39bd366..5671682 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);