another test
[libfirm] / ir / stat / pattern.c
index b51fad0..08898b8 100644 (file)
@@ -420,8 +420,7 @@ static int _encode_node(ir_node *node, int max_depth, codec_env_t *env) {
                ir_mode *mode = get_irn_mode(node);
 
                if (mode)
-                       /* FIXME: not 64bit save */
-                       put_code(env->buf, (unsigned)mode);
+                       put_code(env->buf, stat_find_mode_index(mode));
                else
                        put_tag(env->buf, VLC_TAG_EMPTY);
        }  /* if */
@@ -702,7 +701,7 @@ static void calc_nodes_pattern(ir_node *node, void *ctx) {
        depth = encode_node(node, &buf, env->max_depth);
 
        if (buf_overrun(&buf)) {
-               fprintf(stderr, "Pattern store: buffer overrun at size %d. Pattern ignored.\n", sizeof(buffer));
+               fprintf(stderr, "Pattern store: buffer overrun at size %u. Pattern ignored.\n", (unsigned) sizeof(buffer));
        } else
                count_pattern(&buf, depth);
 }  /* calc_nodes_pattern */
@@ -803,7 +802,7 @@ static void pattern_output(const char *fname) {
        /* creates a dumper */
        dump = new_vcg_dumper(fname, 100);
 
-       pattern_arr = xmalloc(sizeof(*pattern_arr) * count);
+       pattern_arr = XMALLOCN(pattern_entry_t*, count);
        for (i = 0, entry = pset_first(status->pattern_hash);
             entry && i < count;
             entry = pset_next(status->pattern_hash), ++i) {