X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftr%2Ftype_finalization.c;h=e9dac9d0e2f9ed558435b1282af411a12ad4de42;hb=199ea1a4479a4d8dcbebfde81820286935e64b0c;hp=aac344c34cbd5e8d7a73cb16a4e61f57278d0aa8;hpb=bb9b1067ad0ef81a20a74be5ecaf2100b63a4855;p=libfirm diff --git a/ir/tr/type_finalization.c b/ir/tr/type_finalization.c index aac344c34..e9dac9d0e 100644 --- a/ir/tr/type_finalization.c +++ b/ir/tr/type_finalization.c @@ -22,7 +22,6 @@ * @brief Calculate finalization of classes and entities by * inspecting the class hierarchy. * @author Michael Beck - * @version $Id$ */ #include "config.h" @@ -34,8 +33,9 @@ DEBUG_ONLY(static firm_dbg_module_t *dbg;) -static void do_finalization(type_or_ent tore, void *env) { - ir_type *glob_tp = env; +static void do_finalization(type_or_ent tore, void *env) +{ + ir_type *glob_tp = (ir_type*)env; if (is_type(tore.typ)) { ir_type *cls = tore.typ; @@ -50,7 +50,7 @@ static void do_finalization(type_or_ent tore, void *env) { frame/global types this way. Should not made any problems. */ set_class_final(cls, 1); DB((dbg, LEVEL_1, " made final Class %s\n", - get_type_name(cls))); + get_class_name(cls))); } } else { ir_entity *ent = tore.ent; @@ -68,27 +68,22 @@ static void do_finalization(type_or_ent tore, void *env) { assert(get_entity_n_overwrittenby(ent) == 0); set_entity_final(ent, 1); DB((dbg, LEVEL_1, " made final %s::%s\n", - get_type_name(owner), get_entity_name(ent))); + get_compound_name(owner), get_entity_name(ent))); } else if (get_entity_n_overwrittenby(ent) == 0) { set_entity_final(ent, 1); DB((dbg, LEVEL_1, " made final %s::%s\n", - get_type_name(owner), get_entity_name(ent))); + get_compound_name(owner), get_entity_name(ent))); } } -} /* do_finalization */ +} -/** - * If we have the closed world assumption, we can calculate the - * finalization of classes and entities by inspecting the class hierarchy. - * After this is done, all classes and entities that are not overridden - * anymore have the final property set. - */ -void types_calc_finalization(void) { - if (! get_opt_closed_world()) - return; +void types_calc_finalization(void) +{ + if (! get_opt_closed_world()) + return; FIRM_DBG_REGISTER(dbg, "firm.tr.finalization"); - /* types must be visited before it's entities */ + /* types must be visited before their entities */ type_walk(do_finalization, NULL, get_glob_type()); }