]> gcc.gnu.org Git - gcc.git/commitdiff
flow.c (find_basic_blocks_1): Keep the cfg accurate when removing an unconditional...
authorJeff Law <law@gcc.gnu.org>
Wed, 11 Mar 1998 01:35:44 +0000 (18:35 -0700)
committerJeff Law <law@gcc.gnu.org>
Wed, 11 Mar 1998 01:35:44 +0000 (18:35 -0700)
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

index 5daff7c3602380d1540594dae45098916aad0915..0bca7ac0999927a70b19a13a0465a465d5dce84a 100644 (file)
@@ -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;
This page took 0.075264 seconds and 5 git commands to generate.