fixed bug in irgopt -- optimize_cf
[libfirm] / testprograms / irr_loop_example.c
index 43c1d00..485881e 100644 (file)
@@ -7,7 +7,9 @@
 */
 
 # include <stdio.h>
+# include <string.h>
 
+# include "irvrfy.h"
 # include "irdump.h"
 # include "firm.h"
 
@@ -74,10 +76,10 @@ int main(int argc, char **argv)
   irg = new_ir_graph (ent, NUM_OF_LOCAL_VARS);
 
   /* to make three conditionals  */
-  expr = new_Const (mode_i, tarval_from_long (mode_i, 0));
-  c1 = new_Const (mode_i, tarval_from_long (mode_i, 1));
-  c2 = new_Const (mode_i, tarval_from_long (mode_i, 2));
-  c3 = new_Const (mode_i, tarval_from_long (mode_i, 2));
+  expr = new_Const (mode_Is, tarval_from_long (mode_Is, 0));
+  c1 = new_Const (mode_Is, tarval_from_long (mode_Is, 1));
+  c2 = new_Const (mode_Is, tarval_from_long (mode_Is, 2));
+  c3 = new_Const (mode_Is, tarval_from_long (mode_Is, 2));
 
   cond = new_Cond(new_Proj(new_Cmp(expr, c1), mode_b, Eq));
   f = new_Proj(cond, mode_X, 0);
@@ -113,6 +115,8 @@ int main(int argc, char **argv)
   add_in_edge (get_irg_end_block(irg), x);
   mature_block (get_irg_end_block(irg));
 
+  finalize_cons (irg);
+
   printf("Optimizing ...\n");
   dead_node_elimination(irg);