From: Michael Beck Date: Mon, 2 Feb 2004 12:57:20 +0000 (+0000) Subject: More additional debug info X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=afba96a87045ed29a25cb10d910c4763b313c103;p=libfirm More additional debug info [r2362] --- diff --git a/ir/ir/irvrfy.c b/ir/ir/irvrfy.c index caa0d2fcf..94a6314c2 100644 --- a/ir/ir/irvrfy.c +++ b/ir/ir/irvrfy.c @@ -95,11 +95,11 @@ static void show_node_on_graph(ir_graph *irg, ir_node *n) entity *ent = get_irg_ent(irg); if (ent) - fprintf(stderr, "\nFIRM: irn_vrfy_irg() of Entity %s, node %ld %s%s\n", + fprintf(stderr, "\nFIRM: irn_vrfy_irg() of entity %s, node %ld %s%s\n", get_entity_name(ent), get_irn_node_nr(n), get_irn_opname(n), get_irn_modename(n)); else - fprintf(stderr, "\nFIRM: irn_vrfy_irg() of Graph %p, node %ld %s%s\n", + fprintf(stderr, "\nFIRM: irn_vrfy_irg() of graph %p, node %ld %s%s\n", (void *)irg, get_irn_node_nr(n), get_irn_opname(n), get_irn_modename(n)); } @@ -124,6 +124,32 @@ static void show_call_param(ir_node *n, type *mt) } +/** + * Show return modes + */ +static void show_return_modes(ir_graph *irg, ir_node *n, type *mt, int i) +{ + entity *ent = get_irg_ent(irg); + + fprintf(stderr, "\nFIRM: irn_vrfy_irg() Return node %ld in entity \"%s\" mode %s different from type mode %s\n", + get_irn_node_nr(n), get_entity_name(ent), + get_mode_name(get_irn_mode(get_Return_res(n, i))), + get_mode_name(get_type_mode(get_method_res_type(mt, i))) + ); +} + +/** + * Show return number of results + */ +static void show_return_nres(ir_graph *irg, ir_node *n, type *mt) +{ + entity *ent = get_irg_ent(irg); + + fprintf(stderr, "\nFIRM: irn_vrfy_irg() Return node %ld in entity \"%s\" has %d results different from type %d\n", + get_irn_node_nr(n), get_entity_name(ent), + get_Return_n_ress(n), get_method_n_ress(mt)); +} + INLINE static int vrfy_Proj_proj(ir_node *p, ir_graph *irg) { ir_node *pred; @@ -483,12 +509,14 @@ int irn_vrfy_irg(ir_node *n, ir_graph *irg) ASSERT_AND_RET( mymode == mode_X, "Result X", 0 ); /* result X */ /* Compare returned results with result types of method type */ mt = get_entity_type(get_irg_ent(irg)); - ASSERT_AND_RET( get_Return_n_ress(n) == get_method_n_ress(mt), - "Number of results for Return doesn't match number of results in type.", 0 ); + ASSERT_AND_RET_DBG( get_Return_n_ress(n) == get_method_n_ress(mt), + "Number of results for Return doesn't match number of results in type.", 0, + show_return_nres(irg, n, mt);); for (i = 0; i < get_Return_n_ress(n); i++) - ASSERT_AND_RET( - get_irn_mode(get_Return_res(n, i)) == get_type_mode(get_method_res_type(mt, i)), - "Mode of result for Return doesn't match mode of result type.", 0); + ASSERT_AND_RET_DBG( + get_irn_mode(get_Return_res(n, i)) == get_type_mode(get_method_res_type(mt, i)), + "Mode of result for Return doesn't match mode of result type.", 0, + show_return_modes(irg, n, mt, i);); break; case iro_Raise: