- set_irn_visited(get_irg_start_block(called_graph), get_irg_visited(irg));
- set_irn_link(get_irg_bad(called_graph), get_irg_bad(irg));
- set_irn_visited(get_irg_bad(called_graph), get_irg_visited(irg));
+ set_irn_visited(get_irg_start_block(called_graph), visited);
+
+ assert(get_irg_n_anchors(called_graph) == get_irg_n_anchors(irg));
+
+ for (i = get_irg_n_anchors(called_graph) - 1; i >= 0; --i) {
+ ir_node *anchor = get_irg_anchor(called_graph, i);
+
+ if (get_irn_visited(anchor) >= visited) {
+ /* already set above */
+ continue;
+ }
+ set_irn_link(anchor, get_irg_anchor(irg, i));
+ set_irn_visited(anchor, visited);
+ }