Let collect_nodes cope with Bad nodes
authorAndreas Zwinkau <zwinkau@kit.edu>
Thu, 1 Sep 2011 14:27:33 +0000 (16:27 +0200)
committerAndreas Zwinkau <zwinkau@kit.edu>
Thu, 1 Sep 2011 14:35:18 +0000 (16:35 +0200)
ir/opt/cfopt.c

index 6beeb99..33afb24 100644 (file)
@@ -115,9 +115,15 @@ static void collect_nodes(ir_node *n, void *ctx)
                        /* block with a jump label attached cannot be removed. */
                        set_Block_removable(n, false);
                }
+       } else if (is_Bad(n) || is_Jmp(n)) {
+               /* ignore these */
                return;
-       } else if (!is_Jmp(n)) {  /* Check for non-empty block. */
+       } else {
+               /* Check for non-empty block. */
                ir_node *block = get_nodes_block(n);
+               if (is_Bad(block))
+                       return;
+
                set_Block_removable(block, false);
 
                if (is_Proj(n)) {