summaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-04-15 13:52:45 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-04-15 13:52:45 -0400
commit822e3422fb522797881e6212ffe124690cf0b04a (patch)
tree91fc4b832a2e1f198b6895ce7702b472ef9e1ec0 /gcc/calls.c
parentfd84ddafb074116ba7b0b428cfd38c839c64bf1c (diff)
downloadgcc-822e3422fb522797881e6212ffe124690cf0b04a.tar.gz
(expand_call): Call preserve_temp_slots on temps made for BLKmode args
returned in registers. From-SVN: r9390
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index c0912cc952c..a8b6d3e47ec 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -2037,8 +2037,11 @@ expand_call (exp, target, ignore)
enum machine_mode tmpmode;
if (target == 0)
- target = assign_stack_temp (BLKmode, bytes, 0);
- MEM_IN_STRUCT_P (target) = AGGREGATE_TYPE_P (TREE_TYPE (exp));
+ {
+ target = assign_stack_temp (BLKmode, bytes, 0);
+ MEM_IN_STRUCT_P (target) = AGGREGATE_TYPE_P (TREE_TYPE (exp));
+ preserve_temp_slots (target);
+ }
/* We could probably emit more efficient code for machines
which do not use strict alignment, but it doesn't seem