X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgmod.c;h=f9a4f481610f86510817e3306162bd48a4064a16;hb=7e8388fa7996ff182d3aa4e0cdd41b27bed4982f;hp=3b306aa76ce8a1bd470bfcaed0808c08da422972;hpb=a0a72b176b3637fbdf605f9593b23d20947de1fa;p=libfirm diff --git a/ir/ir/irgmod.c b/ir/ir/irgmod.c index 3b306aa76..f9a4f4816 100644 --- a/ir/ir/irgmod.c +++ b/ir/ir/irgmod.c @@ -96,8 +96,6 @@ void exchange(ir_node *old, ir_node *nw) { /* Else, do it the old-fashioned way. */ ir_node *block; - assert(get_irn_op(old)->opar != oparity_dynamic); - hook_turn_into_id(old); block = old->in[0]; @@ -109,6 +107,10 @@ void exchange(ir_node *old, ir_node *nw) { } } + if (get_irn_op(old)->opar == oparity_dynamic) { + DEL_ARR_F(get_irn_in(old)); + } + old->op = op_Id; old->in = NEW_ARR_D (ir_node *, irg->obst, 2); old->in[0] = block;