Syncs must be created with an ARRF in array in new_ir_node().
authorChristoph Mallon <christoph.mallon@gmx.de>
Wed, 16 Apr 2008 18:10:17 +0000 (18:10 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Wed, 16 Apr 2008 18:10:17 +0000 (18:10 +0000)
[r19306]

ir/ir/irnode.c

index 43b5159..38c962f 100644 (file)
@@ -154,8 +154,8 @@ new_ir_node(dbg_info *db, ir_graph *irg, ir_node *block, ir_op *op, ir_mode *mod
        if (arity < 0) {
                res->in = NEW_ARR_F(ir_node *, 1);  /* 1: space for block */
        } else {
-               /* not nice but necessary: End must always have a flexible array */
-               if (op == op_End)
+               /* not nice but necessary: End and Sync must always have a flexible array */
+               if (op == op_End || op == op_Sync)
                        res->in = NEW_ARR_F(ir_node *, (arity+1));
                else
                        res->in = NEW_ARR_D(ir_node *, irg->obst, (arity+1));