diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-10-03 21:41:25 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-10-03 21:41:25 -0400 |
commit | 0c0600d5d578c46eab15040d81cf2029ecdea225 (patch) | |
tree | d1dd04c4d935984c2da0f2217b674a3d43c62fd7 /gcc | |
parent | 0abc55a78572cdc681d06aca588e6ae1051a9845 (diff) | |
download | gcc-0c0600d5d578c46eab15040d81cf2029ecdea225.zip gcc-0c0600d5d578c46eab15040d81cf2029ecdea225.tar.gz gcc-0c0600d5d578c46eab15040d81cf2029ecdea225.tar.bz2 |
(expand_call): Set MEM_IN_STRUCT_P in stack slot if appropriate.
From-SVN: r5578
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/calls.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index e76412c..3c8f04b 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)); |