diff options
author | Josef Zlomek <zlomekj@suse.cz> | 2003-10-31 15:19:03 +0100 |
---|---|---|
committer | Josef Zlomek <zlomek@gcc.gnu.org> | 2003-10-31 14:19:03 +0000 |
commit | 9295a326c0145a0ace14b974615a605741898aa9 (patch) | |
tree | 89c2e555f3bddd0c9807e4c473cb94319a3d5465 /gcc | |
parent | 739e6d58e7e2dc15f850da10936102e22924347a (diff) | |
download | gcc-9295a326c0145a0ace14b974615a605741898aa9.zip gcc-9295a326c0145a0ace14b974615a605741898aa9.tar.gz gcc-9295a326c0145a0ace14b974615a605741898aa9.tar.bz2 |
cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes.
PR/10239
* cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes.
From-SVN: r73145
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 12 |
2 files changed, 14 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1613d2f..24954ff 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2003-10-31 Josef Zlomek <zlomekj@suse.cz> + PR/10239 + * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes. + +2003-10-31 Josef Zlomek <zlomekj@suse.cz> + PR/11640 * cfgrtl.c (try_redirect_by_replacing_jump): Move jump immediatelly before BARRIER. diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 7354c73..5769ef36 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -156,9 +156,15 @@ delete_insn (rtx insn) LABEL_NUSES (JUMP_LABEL (insn))--; /* Also if deleting an insn that references a label. */ - else if ((note = find_reg_note (insn, REG_LABEL, NULL_RTX)) != NULL_RTX - && GET_CODE (XEXP (note, 0)) == CODE_LABEL) - LABEL_NUSES (XEXP (note, 0))--; + else + { + while ((note = find_reg_note (insn, REG_LABEL, NULL_RTX)) != NULL_RTX + && GET_CODE (XEXP (note, 0)) == CODE_LABEL) + { + LABEL_NUSES (XEXP (note, 0))--; + remove_note (insn, note); + } + } if (GET_CODE (insn) == JUMP_INSN && (GET_CODE (PATTERN (insn)) == ADDR_VEC |