fix a bunch of warnings reported by clang analyzer
[libfirm] / ir / be / ia32 / bearch_ia32.c
index 6e62271..cc8d5f0 100644 (file)
@@ -1245,7 +1245,6 @@ static void introduce_prolog_epilog(ir_graph *irg)
                ir_node *incsp;
 
                curr_sp = new_r_Proj(push, mode_gp, pn_ia32_Push_stack);
-               mem     = new_r_Proj(push, mode_M, pn_ia32_Push_M);
                arch_set_irn_register(curr_sp, sp);
                sched_add_after(start, push);
 
@@ -1676,7 +1675,6 @@ static ir_node *ia32_create_trampoline_fkt(ir_node *block, ir_node *mem, ir_node
        p   = new_r_Add(block, p, one, mode);
        st  = new_r_Store(block, mem, p, callee, cons_none);
        mem = new_r_Proj(st, mode_M, pn_Store_M);
-       p   = new_r_Add(block, p, four, mode);
 
        return mem;
 }
@@ -2053,6 +2051,12 @@ static void ia32_lower_for_target(void)
                lower_floating_point();
        }
 
+       for (i = 0; i < n_irgs; ++i) {
+               ir_graph *irg = get_irp_irg(i);
+               /* break up switches with wide ranges */
+               lower_switch(irg, 4, 256, false);
+       }
+
        ir_prepare_dw_lowering(&lower_dw_params);
        ir_lower_dw_ops();
 
@@ -2060,8 +2064,6 @@ static void ia32_lower_for_target(void)
                ir_graph *irg = get_irp_irg(i);
                /* lower for mode_b stuff */
                ir_lower_mode_b(irg, mode_Iu);
-               /* break up switches with wide ranges */
-               lower_switch(irg, 4, 256, false);
        }
 
        for (i = 0; i < n_irgs; ++i) {