(expand_return): Set TREE_SIDE_EFFECTS on MODIFY_EXPR.
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 28 Jul 1993 19:35:58 +0000 (15:35 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 28 Jul 1993 19:35:58 +0000 (15:35 -0400)
From-SVN: r5033

gcc/stmt.c

index 940f3744c59f2d2c054b4b9d6ea3af9d8263b857..52beb26af1fee13e96233f08ecacb83f605cb376 100644 (file)
@@ -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;
     }