aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJosef Zlomek <zlomekj@suse.cz>2003-10-31 15:19:03 +0100
committerJosef Zlomek <zlomek@gcc.gnu.org>2003-10-31 14:19:03 +0000
commit9295a326c0145a0ace14b974615a605741898aa9 (patch)
tree89c2e555f3bddd0c9807e4c473cb94319a3d5465 /gcc
parent739e6d58e7e2dc15f850da10936102e22924347a (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/cfgrtl.c12
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