fix illegal usage of compound_graph_path
[libfirm] / ir / lower / lower_dw.c
index eb9d175..483ad47 100644 (file)
@@ -281,9 +281,7 @@ static void prepare_links(ir_node *node, void *env)
        if (mode == lenv->params->high_signed ||
                mode == lenv->params->high_unsigned) {
                /* ok, found a node that will be lowered */
-               link = obstack_alloc(&lenv->obst, sizeof(*link));
-
-               memset(link, 0, sizeof(*link));
+               link = OALLOCZ(&lenv->obst, node_entry_t);
 
                idx = get_irn_idx(node);
                if (idx >= lenv->n_entries) {
@@ -577,7 +575,7 @@ static void lower_Div(ir_node *node, ir_mode *mode, lower_env_t *env) {
                case pn_Div_M:         /* Memory result. */
                        /* reroute to the call */
                        set_Proj_pred(proj, call);
-                       set_Proj_proj(proj, pn_Call_M_except);
+                       set_Proj_proj(proj, pn_Call_M);
                        break;
                case pn_Div_X_except:  /* Execution result if exception occurred. */
                        /* reroute to the call */
@@ -654,7 +652,7 @@ static void lower_Mod(ir_node *node, ir_mode *mode, lower_env_t *env) {
                case pn_Mod_M:         /* Memory result. */
                        /* reroute to the call */
                        set_Proj_pred(proj, call);
-                       set_Proj_proj(proj, pn_Call_M_except);
+                       set_Proj_proj(proj, pn_Call_M);
                        break;
                case pn_Mod_X_except:  /* Execution result if exception occurred. */
                        /* reroute to the call */
@@ -757,7 +755,7 @@ static void lower_DivMod(ir_node *node, ir_mode *mode, lower_env_t *env) {
                case pn_DivMod_M:         /* Memory result. */
                        /* reroute to the first call */
                        set_Proj_pred(proj, callDiv ? callDiv : (callMod ? callMod : mem));
-                       set_Proj_proj(proj, pn_Call_M_except);
+                       set_Proj_proj(proj, pn_Call_M);
                        break;
                case pn_DivMod_X_except:  /* Execution result if exception occurred. */
                        /* reroute to the first call */
@@ -2694,13 +2692,14 @@ struct pass_t {
 /**
  * Creates a wrapper around lower_dw_ops().
  */
-static void pass_wrapper(ir_prog *irp, void *context)
+static int pass_wrapper(ir_prog *irp, void *context)
 {
        struct pass_t *pass = context;
 
        (void)irp;
        lower_dw_ops(pass->param);
-}  /* pass_wrapper */
+       return 0;
+}
 
 ir_prog_pass_t *lower_dw_ops_pass(const char *name, const lwrdw_param_t *param) {
        struct pass_t *pass = XMALLOCZ(struct pass_t);