diff options
Diffstat (limited to 'gcc/integrate.c')
-rw-r--r-- | gcc/integrate.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index 6854cf6..2b2c856 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -415,6 +415,7 @@ save_for_inline_copying (fndecl) int max_uid; rtx first_nonparm_insn; char *new, *new1; + rtx *new_parm_reg_stack_loc; rtx *new2; /* Make and emit a return-label if we have not already done so. @@ -522,6 +523,13 @@ save_for_inline_copying (fndecl) for (i = min_labelno; i < max_labelno; i++) label_map[i] = gen_label_rtx (); + /* Likewise for parm_reg_stack_slot. */ + new_parm_reg_stack_loc = (rtx *) savealloc (max_parm_reg * sizeof (rtx)); + for (i = 0; i < max_parm_reg; i++) + new_parm_reg_stack_loc[i] = copy_for_inline (parm_reg_stack_loc[i]); + + parm_reg_stack_loc = new_parm_reg_stack_loc; + /* Record the mapping of old insns to copied insns. */ insn_map = (rtx *) alloca (max_uid * sizeof (rtx)); |