summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2000-10-05 13:35:07 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2000-10-05 13:35:07 +0000
commit18bea95933912ccff4eaf960ff3a441bf3b0dd9d (patch)
treecea16f7e2671099aa14b7cb4bb23dbeb3affd0a5
parentfc859e3e031928eba70c1b57a76540b338b83668 (diff)
downloadppe42-gcc-18bea95933912ccff4eaf960ff3a441bf3b0dd9d.tar.gz
ppe42-gcc-18bea95933912ccff4eaf960ff3a441bf3b0dd9d.zip
* fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
negation in proper type.a git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36726 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/fold-const.c11
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 <kenner@vlsi1.ultra.nyu.edu>
+
+ * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
+ negation in proper type.a
+
2000-10-04 Richard Henderson <rth@cygnus.com>
* 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:
OpenPOWER on IntegriCloud