fixed some requirements
[libfirm] / ir / be / beraextern.c
index adc330f..024bbdc 100644 (file)
@@ -647,7 +647,7 @@ static INLINE void dump_constraint(be_raext_env_t *raenv, ir_node *irn, int pos)
        arch_get_register_req(raenv->aenv, &req, irn, pos);
        if (arch_register_req_is(&req, limited)) {
                int reg_nr;
-               req.limited(irn, pos, bs);
+               req.limited(req.limited_env, bs);
                reg_nr = bitset_next_set(bs, 0);
                fprintf(raenv->f, " <%d>", reg_nr);
                assert(-1 == bitset_next_set(bs, reg_nr+1) && "Constraints with more than 1 possible register are not supported");
@@ -897,9 +897,12 @@ static void be_ra_extern_main(const be_main_env_t *env, ir_graph *irg) {
 
 #ifdef WITH_LIBCORE
 
+/* TODO: explicit cast to void * is ugly, but ISO-C forbids
+   assignment from func ptr to void ptr. This should probably be fixed
+   in libcore. (cw) */
 static const lc_opt_enum_const_ptr_items_t ssa_destr_items[] = {
-       { "simple",    ssa_destr_simple },
-       { "rastello",  ssa_destr_rastello },
+       { "simple",    (void *)ssa_destr_simple },
+       { "rastello",  (void *)ssa_destr_rastello },
        { NULL,      NULL }
 };