From b8fbe62c82e854fb02bca685c84bfa8c1a57b8f9 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 5 Oct 2000 13:35:07 +0000 Subject: [PATCH] fold-const.c (fold, [...]): Perform negation in proper type.a * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform negation in proper type.a From-SVN: r36726 --- gcc/ChangeLog | 5 +++++ gcc/fold-const.c | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 06ed5d3e692..540f54a330f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Oct 5 09:31:31 2000 Richard Kenner + + * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform + negation in proper type.a + 2000-10-04 Richard Henderson * configure.in (enable-shared): New. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index ecc7c3200aa..6908d7101b8 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -5576,7 +5576,7 @@ fold (expr) if (! FLOAT_TYPE_P (type)) { if (! wins && integer_zerop (arg0)) - return convert (type, negate_expr (arg1)); + return negate_expr (convert (type, arg1)); if (integer_zerop (arg1)) return non_lvalue (convert (type, arg0)); @@ -5599,7 +5599,7 @@ fold (expr) { /* Except with IEEE floating point, 0-x equals -x. */ if (! wins && real_zerop (arg0)) - return convert (type, negate_expr (arg1)); + return negate_expr (convert (type, arg1)); /* Except with IEEE floating point, x-0 equals x. */ if (real_zerop (arg1)) return non_lvalue (convert (type, arg0)); @@ -6888,7 +6888,12 @@ fold (expr) { case EQ_EXPR: return - pedantic_non_lvalue (convert (type, negate_expr (arg1))); + pedantic_non_lvalue + (convert (type, + negate_expr + (convert (TREE_TYPE (TREE_OPERAND (t, 1)), + arg1)))); + case NE_EXPR: return pedantic_non_lvalue (convert (type, arg1)); case GE_EXPR: