From a7833bec2c0ac811e6410bb7dbd41c07b7c58c8d Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 6 Jun 2000 00:15:37 +0000 Subject: [PATCH] fold-const.c (fold, [...]): Elide conversion between cv-qualified versions of types. * fold-const.c (fold, case COND_EXPR): Elide conversion between cv-qualified versions of types. From-SVN: r34416 --- gcc/ChangeLog | 5 +++++ gcc/fold-const.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 649a8713cc7..e0195c7659b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-06-05 Jason Merrill + + * fold-const.c (fold, case COND_EXPR): Elide conversion between + cv-qualified versions of types. + Mon Jun 5 14:06:18 2000 Richard Kenner * config/sparc/sparc.c (short_branch): Correct error in range diff --git a/gcc/fold-const.c b/gcc/fold-const.c index ca50852c975..3b759e8c8be 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: -- 2.30.2