summaryrefslogtreecommitdiffstats
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1993-10-04 01:41:25 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1993-10-04 01:41:25 +0000
commitdb2c3be6f20b0757d7f742daf4b57ec2784db314 (patch)
treed1dd04c4d935984c2da0f2217b674a3d43c62fd7 /gcc/calls.c
parent32ebc9ce5c7767d69be0e7e9b7b83b0370a0988c (diff)
downloadppe42-gcc-db2c3be6f20b0757d7f742daf4b57ec2784db314.tar.gz
ppe42-gcc-db2c3be6f20b0757d7f742daf4b57ec2784db314.zip
(expand_call): Set MEM_IN_STRUCT_P in stack slot if appropriate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5578 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index e76412c6f75..3c8f04bcb8f 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1449,6 +1449,11 @@ expand_call (exp, target, ignore)
addr = plus_constant (addr, arg_offset);
args[i].stack = gen_rtx (MEM, args[i].mode, addr);
+ MEM_IN_STRUCT_P (args[i].stack)
+ = (TREE_CODE (TREE_TYPE (args[i].tree_value)) == RECORD_TYPE
+ || TREE_CODE (TREE_TYPE (args[i].tree_value)) == UNION_TYPE
+ || TREE_CODE (TREE_TYPE (args[i].tree_value)) == QUAL_UNION_TYPE
+ || TREE_CODE (TREE_TYPE (args[i].tree_value)) == ARRAY_TYPE);
if (GET_CODE (slot_offset) == CONST_INT)
addr = plus_constant (arg_reg, INTVAL (slot_offset));
OpenPOWER on IntegriCloud