From: Richard Kenner Date: Wed, 28 Jul 1993 19:35:58 +0000 (-0400) Subject: (expand_return): Set TREE_SIDE_EFFECTS on MODIFY_EXPR. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a0a34f94fa3e47e07d747d4d17fb6198bcc22724;p=gcc.git (expand_return): Set TREE_SIDE_EFFECTS on MODIFY_EXPR. From-SVN: r5033 --- diff --git a/gcc/stmt.c b/gcc/stmt.c index 940f3744c59..52beb26af1f 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -2337,14 +2337,21 @@ expand_return (retval) || TREE_CODE (TREE_OPERAND (retval_rhs, 2)) == CALL_EXPR)) { rtx label = gen_label_rtx (); + tree expr; + do_jump (TREE_OPERAND (retval_rhs, 0), label, NULL_RTX); - expand_return (build (MODIFY_EXPR, TREE_TYPE (current_function_decl), - DECL_RESULT (current_function_decl), - TREE_OPERAND (retval_rhs, 1))); + expr = build (MODIFY_EXPR, TREE_TYPE (current_function_decl), + DECL_RESULT (current_function_decl), + TREE_OPERAND (retval_rhs, 1)); + TREE_SIDE_EFFECTS (expr) = 1; + expand_return (expr); emit_label (label); - expand_return (build (MODIFY_EXPR, TREE_TYPE (current_function_decl), - DECL_RESULT (current_function_decl), - TREE_OPERAND (retval_rhs, 2))); + + expr = build (MODIFY_EXPR, TREE_TYPE (current_function_decl), + DECL_RESULT (current_function_decl), + TREE_OPERAND (retval_rhs, 2)); + TREE_SIDE_EFFECTS (expr) = 1; + expand_return (expr); return; }