diff options
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/function.c b/gcc/function.c index 6596e0e..e2024f2 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4645,7 +4645,7 @@ assign_parms (tree fndecl) entry_parm = stack_parm; /* Record permanently how this parm was passed. */ - DECL_INCOMING_RTL (parm) = entry_parm; + set_decl_incoming_rtl (parm, entry_parm); /* If there is actually space on the stack for this parm, count it in stack_args_size; otherwise set stack_parm to 0 @@ -4714,7 +4714,7 @@ assign_parms (tree fndecl) && INTVAL (XEXP (XVECEXP (entry_parm, 0, i), 1)) == 0) { entry_parm = XEXP (XVECEXP (entry_parm, 0, i), 0); - DECL_INCOMING_RTL (parm) = entry_parm; + set_decl_incoming_rtl (parm, entry_parm); break; } } @@ -5225,20 +5225,22 @@ assign_parms (tree fndecl) { if (TREE_CODE (TREE_TYPE (parm)) == COMPLEX_TYPE) { + rtx tmp; + SET_DECL_RTL (parm, gen_rtx_CONCAT (DECL_MODE (parm), DECL_RTL (fnargs), DECL_RTL (TREE_CHAIN (fnargs)))); - DECL_INCOMING_RTL (parm) - = gen_rtx_CONCAT (DECL_MODE (parm), - DECL_INCOMING_RTL (fnargs), - DECL_INCOMING_RTL (TREE_CHAIN (fnargs))); + tmp = gen_rtx_CONCAT (DECL_MODE (parm), + DECL_INCOMING_RTL (fnargs), + DECL_INCOMING_RTL (TREE_CHAIN (fnargs))); + set_decl_incoming_rtl (parm, tmp); fnargs = TREE_CHAIN (fnargs); } else { SET_DECL_RTL (parm, DECL_RTL (fnargs)); - DECL_INCOMING_RTL (parm) = DECL_INCOMING_RTL (fnargs); + set_decl_incoming_rtl (parm, DECL_INCOMING_RTL (fnargs)); } fnargs = TREE_CHAIN (fnargs); } |