diff options
author | Richard Stallman <rms@gnu.org> | 1993-06-20 22:21:49 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-06-20 22:21:49 +0000 |
commit | 6d8b61b9e73409df0ae4a284cf586c2737feeb7f (patch) | |
tree | d2567090689953eba015b6680e44bc3c4cc392ee | |
parent | 69d6b01d68502863c670be61b797313515f81d58 (diff) | |
download | gcc-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.c | 11 |
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))); } |