Fixed debug info for defaultProj
[libfirm] / ir / external / read.c
index 9558413..95b01be 100644 (file)
@@ -24,9 +24,7 @@
  * @date      11.10.2004
  * @version   $Id$
  */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
 
 #include <stdlib.h>
 #include <string.h>
@@ -1109,7 +1107,7 @@ static void create_abstract_load(ir_graph *irg, proc_t *proc, eff_t *eff)
     sel = addr -> firmnode;
     mode = mode_ANY;
   }
-  load = new_Load(get_store(), sel, mode);
+  load = new_Load(get_store(), sel, mode, 0);
   set_store(new_Proj(load, mode_M, 0));
   eff -> firmnode = new_Proj(load, mode, 2);
 
@@ -1156,7 +1154,7 @@ static void create_abstract_store(ir_graph *irg, proc_t *proc, eff_t *eff)
   else {
     sel = addr -> firmnode;
   }
-  store = new_Store(get_store(), sel, val -> firmnode);
+  store = new_Store(get_store(), sel, val -> firmnode, 0);
   set_store(new_Proj(store, mode_M, 0));
   eff -> firmnode = store;
 }
@@ -1254,7 +1252,7 @@ static void create_abstract_call(ir_graph *irg, proc_t *proc, eff_t *eff)
     VERBOSE_PRINT((stdout, "number of args expected: %d\n",
            get_method_n_params(mtype)));
   }
-  irns = alloca(num * sizeof(ir_node*));
+  irns = ALLOCAN(ir_node*, num);
   for(i = 0; i < num; i++) {
     irns[i] = find_valueid_in_proc_effects(eff -> effect.call.args[i], proc)
       -> firmnode;
@@ -1310,6 +1308,7 @@ static void create_abstract_join (ir_graph *irg, proc_t *proc, eff_t *eff)
   cond    = new_Cond (unknown);
 
   c_block   = new_immBlock ();  /* for the Phi after the branch(es) */
+  set_cur_block(c_block);
 
   ins = XMALLOCN(ir_node*, n_ins);
   for (i = 0; i < n_ins; i ++) {
@@ -1324,6 +1323,7 @@ static void create_abstract_join (ir_graph *irg, proc_t *proc, eff_t *eff)
 
     /* this also sets current_block, so the rest of the code ends up there: */
     s_block = new_immBlock ();
+    set_cur_block(s_block);
 
     add_immBlock_pred (s_block, projX);
     mature_immBlock (s_block);
@@ -1375,6 +1375,7 @@ static void create_abstract_raise (ir_graph *irg, proc_t *proc, eff_t *eff)
     ir_node *thrw  = NULL;
     eff_t *thrw_eff = NULL;
 
+       set_cur_block(b_exc);
     add_immBlock_pred (b_exc, projX);
 
     thrw_eff = find_valueid_in_proc_effects (eff->effect.raise.valref, proc);
@@ -1392,10 +1393,12 @@ static void create_abstract_raise (ir_graph *irg, proc_t *proc, eff_t *eff)
 
   /* one branch for 'non-exception' case */
   {
+       ir_node *block;
     ir_node *projX = new_Proj (cond, mode_X, 0);
-    new_immBlock ();            /* also sets current_block */
-    add_immBlock_pred (get_cur_block (), projX);
-    mature_immBlock (get_cur_block ());
+    block = new_immBlock ();
+    set_cur_block(block);
+    add_immBlock_pred (block, projX);
+    mature_immBlock (block);
     /* continue building in current_block */
   }