aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-04-12 02:18:55 +0000
committerJeff Law <law@gcc.gnu.org>1999-04-11 20:18:55 -0600
commit55a98783c87b42efddbc8a1dcda79fa62888e982 (patch)
tree4730eb8514a569674bc3d9d7886860ad0b6bb297 /gcc/flow.c
parent21b2cd732182b457962d0f248662c5d894e147ca (diff)
downloadgcc-55a98783c87b42efddbc8a1dcda79fa62888e982.zip
gcc-55a98783c87b42efddbc8a1dcda79fa62888e982.tar.gz
gcc-55a98783c87b42efddbc8a1dcda79fa62888e982.tar.bz2
flow.c (flow_delete_insn): If we delete a CODE_LABEL...
* flow.c (flow_delete_insn): If we delete a CODE_LABEL, also remove it from the nonlocal_goto_handler_labels list. * jump.c (delete_insn): Likewise. (jump_optimize_1): Also recompute LABEL_NUSES when we are just marking labels. * rtl.h (remove_node_from_expr_list): Declare. * rtlanal.c (remove_node_from_expr_list): New function. From-SVN: r26361
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 7952965..c9bf5ab 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1802,6 +1802,9 @@ flow_delete_insn (insn)
else
set_last_insn (prev);
+ if (GET_CODE (insn) == CODE_LABEL)
+ remove_node_from_expr_list (insn, &nonlocal_goto_handler_labels);
+
/* If deleting a jump, decrement the use count of the label. Deleting
the label itself should happen in the normal course of block merging. */
if (GET_CODE (insn) == JUMP_INSN && JUMP_LABEL (insn))