X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fircgopt.c;h=3bded6149acabe68821a0a6f5b83b20a213c1ed1;hb=3398ae4a8b3cbf66cb0b274ddcd85a2ea863ece1;hp=eca8ffbdcb88275da407f8b8b6cd3b2e68fbe520;hpb=32ea6ea0320f551448bb66e534e3351977464d42;p=libfirm diff --git a/ir/opt/ircgopt.c b/ir/opt/ircgopt.c index eca8ffbdc..3bded6149 100644 --- a/ir/opt/ircgopt.c +++ b/ir/opt/ircgopt.c @@ -27,7 +27,7 @@ /* * Entfernen von nicht erreichbaren (aufrufbaren) Methoden. Die Menge - * der nicht erreichbaren Methoden wird aus der Abschätzung der + * der nicht erreichbaren Methoden wird aus der Abschätzung der * Aufrufrelation bestimmt. */ #include "config.h" @@ -52,7 +52,7 @@ DEBUG_ONLY(static firm_dbg_module_t *dbg); */ static void collect_call(ir_node *node, void *env) { - ir_node *head = env; + ir_node *head = (ir_node*)env; if (is_Call(node)) { set_irn_link(node, get_irn_link(head)); @@ -81,7 +81,7 @@ void gc_irgs(int n_keep, ir_entity ** keep_arr) for (i = 0; i < n_keep; ++i) { marked[i] = keep_arr[i]; set_entity_link(marked[i], MARK); - DB((dbg, LEVEL_1, " method %+F kept alive.\n", marked[i])); + DB((dbg, LEVEL_1, " method %+F kept alive.\n", marked[i])); } for (i = 0; i < ARR_LEN(marked); ++i) { @@ -98,7 +98,8 @@ void gc_irgs(int n_keep, ir_entity ** keep_arr) irg_walk_graph(irg, firm_clear_link, collect_call, node); /* iterate calls */ - for (node = get_irn_link(node); node; node = get_irn_link(node)) { + for (node = (ir_node*)get_irn_link(node); node != NULL; + node = (ir_node*)get_irn_link(node)) { int i; assert(is_Call(node)); @@ -127,10 +128,10 @@ void gc_irgs(int n_keep, ir_entity ** keep_arr) if (get_entity_link(ent) == MARK) continue; - DB((dbg, LEVEL_1, " freeing method %+F\n", ent)); + DB((dbg, LEVEL_1, " freeing method %+F\n", ent)); remove_irp_irg(irg); - remove_class_member(get_entity_owner(ent), ent); + free_entity(ent); } }