aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1992-08-17 11:53:26 -0700
committerJim Wilson <wilson@gcc.gnu.org>1992-08-17 11:53:26 -0700
commit2654605aa7145af085e835960105285ddafbae8b (patch)
treea6f240144b5411467cc2776bef5d043848422ad5
parent3c3fa1471c4de6abbf9841155c0f2865bfc099d6 (diff)
downloadgcc-2654605aa7145af085e835960105285ddafbae8b.zip
gcc-2654605aa7145af085e835960105285ddafbae8b.tar.gz
gcc-2654605aa7145af085e835960105285ddafbae8b.tar.bz2
(assign_parms): When copy arg passed by invisible
reference to pseudo reg, don't use nominal_mode. From-SVN: r1876
-rw-r--r--gcc/function.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 685fcc386..52d0e6d 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -2879,7 +2879,9 @@ assign_parms (fndecl, second_time)
|| (flag_float_store
&& TREE_CODE (TREE_TYPE (parm)) == REAL_TYPE)))
{
- parmreg = gen_reg_rtx (nominal_mode);
+ /* We can't use nominal_mode, because it will have been set to
+ Pmode above. We must use the actual mode of the parm. */
+ parmreg = gen_reg_rtx (TYPE_MODE (TREE_TYPE (parm)));
emit_move_insn (parmreg, DECL_RTL (parm));
DECL_RTL (parm) = parmreg;
}