aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1994-01-24 16:19:48 -0800
committerJim Wilson <wilson@gcc.gnu.org>1994-01-24 16:19:48 -0800
commit648a09eed9f2b429e36353da9f603e79caa6c18e (patch)
treefcc71d7992c3fc7785843860802b39d47c341db8 /gcc
parent453dfc7887f0558aa1c79c91d412a4d35271dece (diff)
downloadgcc-648a09eed9f2b429e36353da9f603e79caa6c18e.zip
gcc-648a09eed9f2b429e36353da9f603e79caa6c18e.tar.gz
gcc-648a09eed9f2b429e36353da9f603e79caa6c18e.tar.bz2
(copy_loop_body): When delete simplified condjump,
protect the label, so that it doesn't get deleted also. From-SVN: r6428
Diffstat (limited to 'gcc')
-rw-r--r--gcc/unroll.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/unroll.c b/gcc/unroll.c
index eac1e95..20ab17b 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -1830,7 +1830,14 @@ copy_loop_body (copy_start, copy_end, map, exit_label, last_iteration,
/* If this is now a no-op, delete it. */
if (map->last_pc_value == pc_rtx)
{
+ /* Don't let delete_insn delete the label referenced here,
+ because we might possibly need it later for some other
+ instruction in the loop. */
+ if (JUMP_LABEL (copy))
+ LABEL_NUSES (JUMP_LABEL (copy))++;
delete_insn (copy);
+ if (JUMP_LABEL (copy))
+ LABEL_NUSES (JUMP_LABEL (copy))--;
copy = 0;
}
else