From df0c5d2fd3798ebd5306c486334e34fdf3a24df1 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Tue, 10 Mar 1998 18:35:44 -0700 Subject: [PATCH] flow.c (find_basic_blocks_1): Keep the cfg accurate when removing an unconditional jump around deleted blocks. P * flow.c (find_basic_blocks_1): Keep the cfg accurate when removing an unconditional jump around deleted blocks. From-SVN: r18468 --- gcc/flow.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gcc/flow.c b/gcc/flow.c index 5daff7c3602..0bca7ac0999 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -811,6 +811,14 @@ find_basic_blocks_1 (f, nonlocal_label_list, live_reachable_p) && INSN_UID (label) != 0 && BLOCK_NUM (label) == j) { + int k; + + /* The deleted blocks still show up in the cfg, + so we must set basic_block_drops_in for blocks + I to J inclusive to keep the cfg accurate. */ + for (k = i; k <= j; k++) + basic_block_drops_in[k] = 1; + PUT_CODE (insn, NOTE); NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED; NOTE_SOURCE_FILE (insn) = 0;