X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Fircons.c;h=7de8333aed97346b725ed755cfc78239a278112c;hb=8f355cb9b3d20c10f71d1b1e17cbf59a51ced83b;hp=8381a96f0aa676c784e3485afa3ac05216c915b8;hpb=1ce363f80e6a204d4011f85813362d9bd1d0e7e4;p=libfirm diff --git a/ir/ir/ircons.c b/ir/ir/ircons.c index 8381a96f0..7de8333ae 100644 --- a/ir/ir/ircons.c +++ b/ir/ir/ircons.c @@ -2000,9 +2000,11 @@ get_r_frag_value_internal(ir_node *block, ir_node *cfOp, int pos, ir_mode *mode) * @param prev_cf_op if cf_pred is a Proj, the predecessor node, else equal to cf_pred */ static int is_exception_flow(ir_node *cf_pred, ir_node *prev_cf_op) { - /* all projections from a raise are exceptional control flow */ - if (is_Raise(prev_cf_op)) - return 1; + /* + * Note: all projections from a raise are "exceptional control flow" we we handle it + * like a normal Jmp, because there is no "regular" one. + * That's why Raise is no "fragile_op"! + */ if (is_fragile_op(prev_cf_op)) { if (is_Proj(cf_pred)) { if (get_Proj_proj(cf_pred) == pn_Generic_X_regular) { @@ -2712,7 +2714,7 @@ add_immBlock_pred(ir_node *block, ir_node *jmp) { assert(!block->attr.block.is_matured && "Error: Block already matured!\n"); assert(block->attr.block.is_mb_head && "Error: Cannot add a predecessor to a PartBlock"); - assert(jmp != NULL); + assert(is_ir_node(jmp)); ARR_APP1(ir_node *, block->in, jmp); /* Call the hook */ @@ -2751,6 +2753,7 @@ set_value(int pos, ir_node *value) { ir_graph *irg = current_ir_graph; assert(get_irg_phase_state(irg) == phase_building); assert(pos+1 < irg->n_loc); + assert(is_ir_node(value)); irg->current_block->attr.block.graph_arr[pos + 1] = value; } /* set_value */