aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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