aboutsummaryrefslogtreecommitdiff
path: root/gcc/reorg.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2017-05-15 11:21:31 -0600
committerJeff Law <law@gcc.gnu.org>2017-05-15 11:21:31 -0600
commite30ce0a36c89794543381b3699cc23011af4e85c (patch)
tree84821df085894cc6ada5cd4b4bedf59d2e828ce9 /gcc/reorg.c
parentcc9d8f3b46c0fbb515199d067789aaf890b62088 (diff)
downloadgcc-e30ce0a36c89794543381b3699cc23011af4e85c.zip
gcc-e30ce0a36c89794543381b3699cc23011af4e85c.tar.gz
gcc-e30ce0a36c89794543381b3699cc23011af4e85c.tar.bz2
reorg.c (relax_delay_slots): Create a new variable to hold the temporary target rather than clobbering...
* reorg.c (relax_delay_slots): Create a new variable to hold the temporary target rather than clobbering TARGET_LABEL. * gcc.target/mips/reorgbug-1.c: New test. From-SVN: r248067
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r--gcc/reorg.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 85ef7d6..1a6fd86 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -3351,16 +3351,16 @@ relax_delay_slots (rtx_insn *first)
&& simplejump_or_return_p (trial_seq->insn (0))
&& redundant_insn (trial_seq->insn (1), insn, vNULL))
{
- target_label = JUMP_LABEL (trial_seq->insn (0));
- if (ANY_RETURN_P (target_label))
- target_label = find_end_label (target_label);
+ rtx temp_label = JUMP_LABEL (trial_seq->insn (0));
+ if (ANY_RETURN_P (temp_label))
+ temp_label = find_end_label (temp_label);
- if (target_label
+ if (temp_label
&& redirect_with_delay_slots_safe_p (delay_jump_insn,
- target_label, insn))
+ temp_label, insn))
{
update_block (trial_seq->insn (1), insn);
- reorg_redirect_jump (delay_jump_insn, target_label);
+ reorg_redirect_jump (delay_jump_insn, temp_label);
next = insn;
continue;
}