BugFix: Unreachable Blocks are always leader blocks
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 8 Sep 2005 14:45:21 +0000 (14:45 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 8 Sep 2005 14:45:21 +0000 (14:45 +0000)
[r6604]

ir/ana/irextbb.c

index c22aba1..68fe2e0 100644 (file)
@@ -68,10 +68,11 @@ static void pre_walk_calc_extbb(ir_node *block, void *ctx)
   int n = get_Block_n_cfgpreds(block);
   env_t *env = ctx;
 
-  if (n > 1 || block == get_irg_start_block(current_ir_graph)) {
+  if (n <= 0 || n > 1 || block == get_irg_start_block(current_ir_graph)) {
     /*
      * block is a JOIN-node ie he control flow from
      * many other blocks joins here. block is a leader.
+     * Note that we handle unreachable blocks (n <= 0) here too.
      */
     allocate_extblk(block, env);
   }