X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firedges.c;h=583169bdf80d372842970ed209105825f5226a46;hb=b4647d67ab7885d5da32c2a30242fbc4ed93d81b;hp=11245470d6bd81e557441dbfb78cbda2a3d932af;hpb=c8e1cf6a41fa2077058cce740783ab78990ac0ab;p=libfirm diff --git a/ir/ir/iredges.c b/ir/ir/iredges.c index 11245470d..583169bdf 100644 --- a/ir/ir/iredges.c +++ b/ir/ir/iredges.c @@ -472,17 +472,13 @@ void edges_notify_edge(ir_node *src, int pos, ir_node *tgt, ir_node *old_tgt, ir } if (edges_activated_kind(irg, EDGE_KIND_BLOCK) && is_Block(src)) { - if (pos == -1) { - /* a MacroBlock edge: ignore it here */ - } else { - ir_node *bl_old = old_tgt ? get_nodes_block(skip_Proj(old_tgt)) : NULL; - ir_node *bl_tgt = NULL; + ir_node *bl_old = old_tgt ? get_nodes_block(skip_Proj(old_tgt)) : NULL; + ir_node *bl_tgt = NULL; - if (tgt) - bl_tgt = is_Bad(tgt) ? tgt : get_nodes_block(skip_Proj(tgt)); + if (tgt) + bl_tgt = is_Bad(tgt) ? tgt : get_nodes_block(skip_Proj(tgt)); - edges_notify_edge_kind(src, pos, bl_tgt, bl_old, EDGE_KIND_BLOCK, irg); - } + edges_notify_edge_kind(src, pos, bl_tgt, bl_old, EDGE_KIND_BLOCK, irg); } } @@ -622,6 +618,9 @@ static void visitor(ir_node *irn, void *data) { visitor_info_t *info = data; + if (is_Deleted(irn)) + return; + if (!irn_visited_else_mark(irn)) { info->visit(irn, info->data); }