From 9230ebc36fac529ec6fb3479b658cef2aecf6eb0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=B6tz=20Lindenmaier?= Date: Tue, 20 Nov 2001 13:50:45 +0000 Subject: [PATCH] removed a bug [r275] --- ir/ir/ircons.c | 1 - ir/ir/irgopt.c | 9 ++++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ir/ir/ircons.c b/ir/ir/ircons.c index 6dfb226b0..057de6203 100644 --- a/ir/ir/ircons.c +++ b/ir/ir/ircons.c @@ -1113,7 +1113,6 @@ get_r_frag_value_internal (ir_node *block, ir_node *cfOp, int pos, ir_mode *mode ir_node **rem; ir_node **frag_arr; - DDMSG2(cfOp); assert(is_fragile_op(cfOp)); frag_arr = get_frag_arr(cfOp); diff --git a/ir/ir/irgopt.c b/ir/ir/irgopt.c index 65e381e6a..361ca00b3 100644 --- a/ir/ir/irgopt.c +++ b/ir/ir/irgopt.c @@ -486,7 +486,14 @@ void inline_method(ir_node *call, ir_graph *called_graph) { for (i = 0; i < arity; i++) { ir_node *ret; ret = skip_Proj(get_irn_n(end_bl, i)); - if (is_fragile_op(ret) || (get_irn_op(ret) == op_Raise)) { + if (get_irn_op(ret) == op_Call) { + cf_pred[n_exc] = new_r_Proj(current_ir_graph, get_nodes_Block(ret), ret, mode_M, 3); + n_exc++; + } else if (is_fragile_op(ret)) { + /* We rely that all cfops have the memory output at the same position. */ + cf_pred[n_exc] = new_r_Proj(current_ir_graph, get_nodes_Block(ret), ret, mode_M, 0); + n_exc++; + } else if (get_irn_op(ret) == op_Raise) { cf_pred[n_exc] = new_r_Proj(current_ir_graph, get_nodes_Block(ret), ret, mode_M, 1); n_exc++; } -- 2.20.1