aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-06-20 22:21:49 +0000
committerRichard Stallman <rms@gnu.org>1993-06-20 22:21:49 +0000
commit6d8b61b9e73409df0ae4a284cf586c2737feeb7f (patch)
treed2567090689953eba015b6680e44bc3c4cc392ee
parent69d6b01d68502863c670be61b797313515f81d58 (diff)
downloadgcc-6d8b61b9e73409df0ae4a284cf586c2737feeb7f.zip
gcc-6d8b61b9e73409df0ae4a284cf586c2737feeb7f.tar.gz
gcc-6d8b61b9e73409df0ae4a284cf586c2737feeb7f.tar.bz2
(expand_call): In last change, preserve the temp slot.
From-SVN: r4705
-rw-r--r--gcc/calls.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 03dbdfb..dc867ae 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1845,9 +1845,14 @@ expand_call (exp, target, ignore)
not specified. This calling sequence is only used on
a few machines and TARGET is usually nonzero. */
if (TYPE_MODE (TREE_TYPE (exp)) == BLKmode)
- target = assign_stack_temp (BLKmode,
- int_size_in_bytes (TREE_TYPE (exp)),
- 1);
+ {
+ target = assign_stack_temp (BLKmode,
+ int_size_in_bytes (TREE_TYPE (exp)),
+ 0);
+
+ /* Save this temp slot around the pop below. */
+ preserve_temp_slots (target);
+ }
else
target = gen_reg_rtx (TYPE_MODE (TREE_TYPE (exp)));
}