diff options
author | Laurynas Biveinis <laurynas.biveinis@gmail.com> | 2007-09-07 02:58:06 +0000 |
---|---|---|
committer | Laurynas Biveinis <lauras@gcc.gnu.org> | 2007-09-07 02:58:06 +0000 |
commit | 62a4a967a9ec706432d076cd352b64ca07b8445d (patch) | |
tree | 7ccd90b156ce32fb4c8f8191c5876483c41c14e4 /gcc/lower-subreg.c | |
parent | 917948d364025c5cc418cd6486dc75b43fa12015 (diff) | |
download | gcc-62a4a967a9ec706432d076cd352b64ca07b8445d.zip gcc-62a4a967a9ec706432d076cd352b64ca07b8445d.tar.gz gcc-62a4a967a9ec706432d076cd352b64ca07b8445d.tar.bz2 |
regrename.c (copyprop_hardreg_forward_1): New variable next.
2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
* regrename.c (copyprop_hardreg_forward_1): New variable next. Use
FOR_BB_INSNS_SAFE instead of for loop.
* cse.c (cse_extended_basic_block): Likewise.
* postreload.c (reload_cse_regs_1): New variable next. Make sure
that the for loop does not invoke NEXT_INSN on a deleted insn.
* function.c (instantiate_virtual_regs): Likewise.
* lower-subreg.c (remove_retval_note): Likewise.
(decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
FOR_BB_INSNS.
* emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
a deleted insn.
* cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
insn, if it's a jump.
(try_redirect_by_replacing_jump): New variable jump_p. Call
tablejump_p before delete_insn_chain.
* reload1.c (reload): New variable next. Make sure that the for
loop does not invoke NEXT_INSN on a deleted insn.
(fixup_eh_region_note): Make the loop terminate if i becomes NULL.
(delete_output_reload): New variable prev. Make sure the the for
loops do not invoke PREV_INSN on a deleted insn.
From-SVN: r128224
Diffstat (limited to 'gcc/lower-subreg.c')
-rw-r--r-- | gcc/lower-subreg.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c index b8e2eb6..e5e76b0 100644 --- a/gcc/lower-subreg.c +++ b/gcc/lower-subreg.c @@ -586,7 +586,7 @@ move_libcall_note (rtx old_start, rtx new_start) static void remove_retval_note (rtx insn1) { - rtx note0, insn0, note1, insn; + rtx note0, insn0, note1, insn, next; note1 = find_reg_note (insn1, REG_RETVAL, NULL); if (note1 == NULL_RTX) @@ -598,8 +598,9 @@ remove_retval_note (rtx insn1) remove_note (insn0, note0); remove_note (insn1, note1); - for (insn = insn0; insn != insn1; insn = NEXT_INSN (insn)) + for (insn = insn0; (insn != insn1) && insn; insn = next) { + next = NEXT_INSN (insn); while (1) { rtx note; @@ -1254,9 +1255,9 @@ decompose_multiword_subregs (void) FOR_EACH_BB (bb) { - rtx insn; + rtx insn, next; - FOR_BB_INSNS (bb, insn) + FOR_BB_INSNS_SAFE (bb, insn, next) { rtx next, pat; |