fix wrong usage of ircons functions
[libfirm] / ir / opt / garbage_collect.c
index 9f32c64..64c0a67 100644 (file)
@@ -149,7 +149,7 @@ static void garbage_collect_in_segment(ir_type *segment)
 
 void garbage_collect_entities(void)
 {
-       size_t       i, n;
+       size_t       i;
        ir_segment_t s;
 
        FIRM_DBG_REGISTER(dbg, "firm.opt.garbagecollect");
@@ -169,8 +169,8 @@ void garbage_collect_entities(void)
        /* remove graphs of non-visited functions
         * (we have to count backwards so we can safely call remove_irp_irg
         *  while iterating) */
-       for (i = 0, n = get_irp_n_irgs(); i < n; ++i) {
-               ir_graph  *irg    = get_irp_irg(i);
+       for (i = get_irp_n_irgs(); i > 0;) {
+               ir_graph  *irg    = get_irp_irg(--i);
                ir_entity *entity = get_irg_entity(irg);
 
                if (entity_visited(entity))