Fix opt/doms_segfault.c
[libfirm] / ir / ana / irtypeinfo.c
index 62f1a2c..79470c7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -69,7 +69,7 @@ ir_type *initial_type = NULL;
  */
 void init_irtypeinfo(void)
 {
-       int i;
+       size_t i, n;
 
        if (initial_type == NULL)
                initial_type = new_type_class(new_id_from_str("initial_type"));
@@ -79,13 +79,13 @@ void init_irtypeinfo(void)
                pmap_destroy(type_node_map);
        type_node_map = pmap_create();
 
-       for (i = get_irp_n_irgs() - 1; i >= 0; --i)
+       for (i = 0, n = get_irp_n_irgs(); i < n; ++i)
                set_irg_typeinfo_state(get_irp_irg(i), ir_typeinfo_none);
 }
 
 void free_irtypeinfo(void)
 {
-       int i;
+       size_t i, n;
 
        if (initial_type != NULL) {
                free_type(initial_type);
@@ -97,7 +97,7 @@ void free_irtypeinfo(void)
                type_node_map = NULL;
        }
 
-       for (i = get_irp_n_irgs() - 1; i >= 0; --i)
+       for (i = 0, n = get_irp_n_irgs(); i < n; ++i)
                set_irg_typeinfo_state(get_irp_irg(i), ir_typeinfo_none);
 }
 
@@ -158,7 +158,7 @@ ir_type *get_irn_typeinfo_type(const ir_node *n)
 
        entry = pmap_find(type_node_map, n);
        if (entry != NULL)
-               res = entry->value;
+               res = (ir_type*) entry->value;
 
        return res;
 }