(expand_assignment): Don't pre-evaluate RHS if a CALL_EXPR with a
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 16 Apr 1996 10:21:39 +0000 (06:21 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 16 Apr 1996 10:21:39 +0000 (06:21 -0400)
variable-size return.

From-SVN: r11804

gcc/expr.c

index e29b404b69eb1fae6b9aae664aeeaee40ce137a0..512a083937f83e587deecd4216e49b33f0d5331b 100644 (file)
@@ -2803,6 +2803,7 @@ expand_assignment (to, from, want_value, suggest_reg)
      Handling this in the normal way is safe because no computation is done
      before the call.  */
   if (TREE_CODE (from) == CALL_EXPR && ! aggregate_value_p (from)
+      && TREE_CODE (TYPE_SIZE (TREE_TYPE (from))) == INTEGER_CST
       && ! (TREE_CODE (to) == VAR_DECL && GET_CODE (DECL_RTL (to)) == REG))
     {
       rtx value;