static int casecmp(const void *a, const void *b)
{
- const case_data_t *cda = a;
- const case_data_t *cdb = b;
+ const case_data_t *cda = (const case_data_t*)a;
+ const case_data_t *cdb = (const case_data_t*)b;
/*
* Enforce unsigned sorting. Signed comparison will behave differently for
if (numcases == 0) {
/* zero cases: "goto default;" */
- ARR_APP1(ir_node*, env->defusers, new_Jmp());
+ ARR_APP1(ir_node*, env->defusers, new_r_Jmp(block));
} else if (numcases == 1) {
/* only one case: "if (sel == val) goto target else goto default;" */
ir_node *val = new_r_Const_long(irg, cmp_mode, curcases[0].value);
delta = env->switch_min;
env->switch_min = 0;
env->switch_max -= delta;
+ set_Cond_selector(cond, sel);
}
/* check for out-of-bounds */
*/
static void find_cond_nodes(ir_node *block, void *ctx)
{
- walk_env_t *env = ctx;
+ walk_env_t *env = (walk_env_t *)ctx;
ir_node *projx;
ir_node *cond;
ir_node *sel;