aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-08-24 19:16:12 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-08-24 19:16:12 -0400
commit002bdd6c053033674b57183ef9a0fca1fc321db0 (patch)
tree0ce2d2e4d790994c16e96311b3fed09c1fc4670a
parent7063dcbeb705d334e62355cfa1332d2d0c582338 (diff)
downloadgcc-002bdd6c053033674b57183ef9a0fca1fc321db0.zip
gcc-002bdd6c053033674b57183ef9a0fca1fc321db0.tar.gz
gcc-002bdd6c053033674b57183ef9a0fca1fc321db0.tar.bz2
(expand_call): Check for variable-sized return value in proper place.
From-SVN: r7974
-rw-r--r--gcc/calls.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 9e08558..22ab484 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -667,9 +667,6 @@ expand_call (exp, target, ignore)
{
struct_value_size = int_size_in_bytes (TREE_TYPE (exp));
- if (struct_value_size < 0)
- abort ();
-
if (target && GET_CODE (target) == MEM)
structure_value_addr = XEXP (target, 0);
else
@@ -680,6 +677,9 @@ expand_call (exp, target, ignore)
specified. If we were to allocate space on the stack here,
we would have no way of knowing when to free it. */
+ if (struct_value_size < 0)
+ abort ();
+
structure_value_addr
= XEXP (assign_stack_temp (BLKmode, struct_value_size, 1), 0);
target = 0;