aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1993-01-01 16:41:53 -0800
committerJim Wilson <wilson@gcc.gnu.org>1993-01-01 16:41:53 -0800
commit77121feee43d5dd0f08d2d1b37f0363a39cba7ec (patch)
treee763eb8ca62b46950093c8379749e63772209e27 /gcc
parentaed0ae9b82d4874793cfae81d3d1fe8ddfa070f6 (diff)
downloadgcc-77121feee43d5dd0f08d2d1b37f0363a39cba7ec.zip
gcc-77121feee43d5dd0f08d2d1b37f0363a39cba7ec.tar.gz
gcc-77121feee43d5dd0f08d2d1b37f0363a39cba7ec.tar.bz2
(fixup_var_regs_insn): Update last_parm_insn when
insns are output after it to fix it up. From-SVN: r3047
Diffstat (limited to 'gcc')
-rw-r--r--gcc/function.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 70e04df..82ecd99 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -1036,10 +1036,17 @@ fixup_var_refs_insns (var, promoted_mode, unsignedp, insn, toplevel)
it here. */
struct fixup_replacement *replacements = 0;
+ rtx next_insn = NEXT_INSN (insn);
fixup_var_refs_1 (var, promoted_mode, &PATTERN (insn), insn,
&replacements);
+ /* If this is last_parm_insn, and any instructions were output
+ after it to fix it up, then we must set last_parm_insn to
+ the last such instruction emitted. */
+ if (insn == last_parm_insn)
+ last_parm_insn = PREV_INSN (next_insn);
+
while (replacements)
{
if (GET_CODE (replacements->new) == REG)