diff options
author | Jeff Law <law@redhat.com> | 2017-05-15 11:21:31 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2017-05-15 11:21:31 -0600 |
commit | e30ce0a36c89794543381b3699cc23011af4e85c (patch) | |
tree | 84821df085894cc6ada5cd4b4bedf59d2e828ce9 /gcc/reorg.c | |
parent | cc9d8f3b46c0fbb515199d067789aaf890b62088 (diff) | |
download | gcc-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.c | 12 |
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; } |