From: Jim Wilson Date: Wed, 5 Nov 1997 01:15:04 +0000 (+0000) Subject: Fix c++ problem resulting from ADDRESSOF support. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=474eff885594b2e22a52fc103ef020d1c929df1f;p=gcc.git Fix c++ problem resulting from ADDRESSOF support. * integrate.c (save_for_inline_copying): Copy parm_reg_stack_loc. From-SVN: r16330 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd1dfa5a549..d95844d19a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ Tue Nov 4 16:55:11 1997 Jim Wilson + * integrate.c (save_for_inline_copying): Copy parm_reg_stack_loc. + * reload.c (find_reloads, case 'm' and 'o'): Reject HIGH constants. * mips.c (mips_expand_epilogue): Emit blockage insn before call to diff --git a/gcc/integrate.c b/gcc/integrate.c index 3931dee279d..4c887fbcf76 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 *new2; /* Make and emit a return-label if we have not already done so. Do this before recording the bounds on label numbers. */ @@ -539,6 +540,16 @@ save_for_inline_copying (fndecl) XEXP (regno_reg_rtx[i], 0) = copy_for_inline (XEXP (regno_reg_rtx[i], 0)); + /* Copy the parm_reg_stack_loc array, and substitute for all of the rtx + contained in it. */ + new2 = savealloc (max_parm_reg * sizeof (rtx)); + bcopy ((char *) parm_reg_stack_loc, (char *) new2, + max_parm_reg * sizeof (rtx)); + parm_reg_stack_loc = new2; + for (i = LAST_VIRTUAL_REGISTER + 1; i < max_parm_reg; ++i) + if (parm_reg_stack_loc[i]) + parm_reg_stack_loc[i] = copy_for_inline (parm_reg_stack_loc[i]); + /* Copy the tree of subblocks of the function, and the decls in them. We will use the copy for compiling this function, then restore the original subblocks and decls for use when inlining this function.