X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firvrfy.c;h=58e5de00b908d338c93e7799d24e34b0a5b370a5;hb=e1c33a238578342a072e1c95ff12eefe6d0acd37;hp=080e30b7d6a5ec65e86134b54fbadac639755a00;hpb=44fec44bd47ef88ae276179866d4a65cda6e0253;p=libfirm diff --git a/ir/ir/irvrfy.c b/ir/ir/irvrfy.c index 080e30b7d..58e5de00b 100644 --- a/ir/ir/irvrfy.c +++ b/ir/ir/irvrfy.c @@ -655,7 +655,8 @@ static int verify_node_Proj_Proj(ir_node *pred, ir_node *p) { break; default: - ASSERT_AND_RET(0, "Unknown opcode", 0); + /* ASSERT_AND_RET(0, "Unknown opcode", 0); */ + break; } return 1; } @@ -775,7 +776,7 @@ static int verify_node_Block(ir_node *n, ir_graph *irg) { ir_node *pred = skip_Proj(get_Block_cfgpred(n, i)); if (is_Proj(pred) || get_irn_op(pred) == op_Tuple) break; /* We can not test properly. How many tuples are there? */ - ASSERT_AND_RET(((get_irn_op(pred) == op_Return) || + ASSERT_AND_RET((is_Return(pred) || is_Bad(pred) || (get_irn_op(pred) == op_Raise) || is_fragile_op(pred) ), @@ -932,6 +933,11 @@ static int verify_node_Const(ir_node *n, ir_graph *irg) { mymode == mode_b) /* we want boolean constants for static evaluation */ ,"Const node", 0 /* of Cmp. */ ); + ASSERT_AND_RET( + /* the modes of the constant and teh tarval must match */ + mymode == get_tarval_mode(get_Const_tarval(n)), + "Const node, tarval and node mode mismatch", 0 + ); return 1; } @@ -1267,7 +1273,7 @@ static int verify_node_Logic(ir_node *n, ir_graph *irg) { ASSERT_AND_RET_DBG( /* And or Or or Eor: BB x int x int --> int */ - mode_is_int(mymode) && + (mode_is_int(mymode) || mymode == mode_b) && op2mode == op1mode && mymode == op2mode, "And, Or or Eor node", 0, @@ -1712,6 +1718,11 @@ int irn_vrfy_irg(ir_node *n, ir_graph *irg) show_node_on_graph(irg, n); ); assert(get_irn_irg(n) == irg); + { + unsigned idx = get_irn_idx(n); + ir_node *node_from_map = get_idx_irn(irg, idx); + ASSERT_AND_RET_DBG(node_from_map == n, "Node index and index map entry differ", 0, ir_printf("node %+F node in map %+F(%p)", n, node_from_map, node_from_map)); + } } op = get_irn_op(n);