From: Jeff Law Date: Wed, 11 Mar 1998 01:35:44 +0000 (-0700) Subject: flow.c (find_basic_blocks_1): Keep the cfg accurate when removing an unconditional... X-Git-Tag: prereleases/egcs-1.1-prerelease~2145 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=df0c5d2fd3798ebd5306c486334e34fdf3a24df1;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/flow.c b/gcc/flow.c index 5daff7c36023..0bca7ac09999 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;