aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2003-01-03 15:04:38 -0500
committerJason Merrill <jason@gcc.gnu.org>2003-01-03 15:04:38 -0500
commit4e8dca1c3ab060bd7bc1b70d4c62d6933e7bc479 (patch)
tree3080ff7fbc3a73e39df1773fb9eda1ec24ad5334 /gcc/fold-const.c
parent9aad8f83a8c33f5af53fa712234677766716659d (diff)
downloadgcc-4e8dca1c3ab060bd7bc1b70d4c62d6933e7bc479.zip
gcc-4e8dca1c3ab060bd7bc1b70d4c62d6933e7bc479.tar.gz
gcc-4e8dca1c3ab060bd7bc1b70d4c62d6933e7bc479.tar.bz2
fold-const.c (fold): Avoid NOP_EXPRs better.
* fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better. * integrate.c (copy_decl_for_inlining): Don't clear the rtl for static/external decls. cp/ * call.c (build_conditional_expr): Stabilize lvalues properly. * cvt.c (ocp_convert): Don't build NOP_EXPRs of class type. * tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues. Don't allow CALL_EXPR or VA_ARG_EXPR, either. * call.c (convert_like_real): Call decl_constant_value for an IDENTITY_CONV even if there are no more conversions. * cvt.c (build_up_reference): Don't push unnamed temps. * decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL. * dump.c (cp_dump_tree): Don't try to dump class-specific fields for a backend struct. * except.c (wrap_cleanups_r, build_throw): Make MUST_NOT_THROW_EXPRs void. * init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR. * init.c (build_vec_delete_1): Pre-evaluate the base address. * init.c (get_temp_regvar): Simplify logic. * tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks if our replacement is a decl. From-SVN: r60851
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r--gcc/fold-const.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 1454d41..0c53604 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -7002,7 +7002,11 @@ fold (expr)
/* Avoid adding NOP_EXPRs in case this is an lvalue. */
if (TYPE_MAIN_VARIANT (comp_type) == TYPE_MAIN_VARIANT (type))
- comp_type = type;
+ {
+ comp_type = type;
+ comp_op0 = arg1;
+ comp_op1 = arg2;
+ }
switch (comp_code)
{