cfgrtl.c (verify_flow_info): Use control_flow_insn_p.
authorJan Hubicka <jh@suse.cz>
Sun, 9 Feb 2003 11:06:41 +0000 (12:06 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 9 Feb 2003 11:06:41 +0000 (11:06 +0000)
* cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
* reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
possibly got duplicated.

From-SVN: r62599

gcc/ChangeLog
gcc/cfgrtl.c
gcc/reload1.c

index f89f7b17866ad644daeb2cd360baec11471d7468..b078754b890a939302d278ae09651cb9dafa4fd3 100644 (file)
@@ -1,3 +1,9 @@
+Sat Feb  8 00:21:22 CET 2003  Jan Hubicka  <jh@suse.cz>
+
+       * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
+       * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
+       possibly got duplicated.
+
 2003-02-08  Richard Henderson  <rth@redhat.com>
 
        * config/alpha/alpha.c (override_options): Turn off explicit
index 07f4a8c09570e18b214569f3819d7767154a13f2..5209aa2b85f18f27a318100c93979a46f5f44b01 100644 (file)
@@ -2008,9 +2008,7 @@ verify_flow_info ()
            if (x == bb->end)
              break;
 
-           if (GET_CODE (x) == JUMP_INSN
-               || GET_CODE (x) == CODE_LABEL
-               || GET_CODE (x) == BARRIER)
+           if (control_flow_insn_p (x))
              {
                error ("in basic block %d:", bb->index);
                fatal_insn ("flow control insn inside a basic block", x);
index f6498f10e2901b281e2f873115afc7703655f344..33e15a1f0d4151d642bad1b9f090e98e17a96ff9 100644 (file)
@@ -9533,6 +9533,14 @@ fixup_abnormal_edges ()
            }
        }
     }
+  /* We've possibly turned single trapping insn into multiple ones.  */
+  if (flag_non_call_exceptions)
+    {
+      sbitmap blocks;
+      blocks = sbitmap_alloc (last_basic_block);
+      sbitmap_ones (blocks);
+      find_many_sub_basic_blocks (blocks);
+    }
   if (inserted)
     commit_edge_insertions ();
 }