From 2cf7d1422759775a6efa83ffe02302f427e37149 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 23 Jan 2008 13:55:19 +0000 Subject: [PATCH] set the right macro block header for to upper part of an splitted block [r17514] --- ir/ir/irgmod.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ir/ir/irgmod.c b/ir/ir/irgmod.c index 3d83477a3..dfd05b851 100644 --- a/ir/ir/irgmod.c +++ b/ir/ir/irgmod.c @@ -220,7 +220,14 @@ void part_block(ir_node *node) { mbh = get_Block_MacroBlock(old_block); new_block = new_Block(get_Block_n_cfgpreds(old_block), get_Block_cfgpred_arr(old_block)); - set_irn_n(new_block, -1, mbh); + + if (mbh != old_block) { + /* we splitting a partBlock */ + set_irn_n(new_block, -1, mbh); + } else { + /* we are splitting a header: this creates a new header */ + set_irn_n(new_block, -1, new_block); + } set_irg_current_block(current_ir_graph, new_block); { ir_node *jmp = new_Jmp(); @@ -253,6 +260,7 @@ void part_block(ir_node *node) { assert(is_Block(curr)); next = get_irn_link(block); + assert(get_Block_MacroBlock(curr) == mbh); for (;;) { if (curr == old_block) { -- 2.20.1