aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/fold-const.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 649a871..e0195c7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-06-05 Jason Merrill <jason@casey.soma.redhat.com>
+
+ * fold-const.c (fold, case COND_EXPR): Elide conversion between
+ cv-qualified versions of types.
+
Mon Jun 5 14:06:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* config/sparc/sparc.c (short_branch): Correct error in range
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index ca50852..3b759e8 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -6903,6 +6903,10 @@ fold (expr)
tree comp_op1 = TREE_OPERAND (arg0, 1);
tree comp_type = TREE_TYPE (comp_op0);
+ /* Avoid adding NOP_EXPRs in case this is an lvalue. */
+ if (TYPE_MAIN_VARIANT (comp_type) == TYPE_MAIN_VARIANT (type))
+ comp_type = type;
+
switch (comp_code)
{
case EQ_EXPR: