From 8288909fc3faededa65c24aa04b7f91a7eb11c86 Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Tue, 21 Sep 1999 14:47:23 +0000 Subject: flow.c (merge_blocks_move_successor_nojumps): Delete the BARRIER at the end of the successor... * flow.c (merge_blocks_move_successor_nojumps): Delete the BARRIER at the end of the successor, not the BARRIER before the successor. From-SVN: r29545 --- gcc/flow.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gcc/flow.c') diff --git a/gcc/flow.c b/gcc/flow.c index 988ccc7..95743d8 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -1907,10 +1907,13 @@ merge_blocks_move_successor_nojumps (e, a, b) end = b->end; insertpoint = a->end; - /* We want to delete the BARRIER before the start of the insns we are + /* We want to delete the BARRIER after the end of the insns we are going to move. If we don't find a BARRIER, then do nothing. This - can happen in some cases if we have labels we can not delete. */ - barrier = prev_nonnote_insn (start); + can happen in some cases if we have labels we can not delete. + + Similarly, do nothing if we can not delete the label at the start + of the target block. */ + barrier = next_nonnote_insn (end); if (GET_CODE (barrier) != BARRIER || (GET_CODE (b->head) == CODE_LABEL && ! can_delete_label_p (b->head))) -- cgit v1.1