#include "xmalloc.h"
#include "irgwalk.h"
#include "irdom_t.h"
-#include "irgraph_t.h" /* To access state field. */
+#include "irgraph_t.h"
#include "irnode_t.h"
#include "ircons_t.h"
#include "array_t.h"
/* The root of the dominator tree should be the Start block. */
ir_node *root = get_irg_start_block(irg);
- assert(irg->dom_state == dom_consistent
+ assert(irg->dom_state == dom_consistent
&& "The dominators of the irg must be consistent");
assert(root && "The start block of the graph is NULL?");
assert(get_dom_info(root)->idom == NULL
/* Iterate */
for (i = get_Block_n_cfg_outs_ka(bl) - 1; i >= 0; --i) {
ir_node *pred = get_Block_cfg_out_ka(bl, i);
- assert(is_Block(pred));
+ /* can happen for half-optimized dead code (I've seen this in student
+ projects */
+ if (!is_Block(pred))
+ continue;
+
init_tmp_dom_info(pred, tdi, tdi_list, used, n_blocks);
}
}