fold-const.c (fold, [...]): Elide conversion between cv-qualified versions of types.
authorJason Merrill <jason@casey.soma.redhat.com>
Tue, 6 Jun 2000 00:15:37 +0000 (00:15 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 6 Jun 2000 00:15:37 +0000 (20:15 -0400)
        * fold-const.c (fold, case COND_EXPR): Elide conversion between
        cv-qualified versions of types.

From-SVN: r34416

gcc/ChangeLog
gcc/fold-const.c

index 649a871..e0195c7 100644 (file)
@@ -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
index ca50852..3b759e8 100644 (file)
@@ -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: