/* @@@ replace use of array "in" by access functions. */
ir_node **get_irn_in(ir_node *node);
+bool opt_do_node_verification = 1;
+void do_node_verification(bool b) {
+ opt_do_node_verification = b;
+}
+
+
INLINE static int
vrfy_Proj_proj(ir_node *p, ir_graph *irg) {
ir_node *pred;
ir_node **in;
+ if (!opt_do_node_verification) return 1;
+
if (! interprocedural_view) {
/*
* do NOT check placement in interprocedural view, as we don't always know
case iro_Block:
for (i = 0; i < get_Block_n_cfgpreds(n); ++i) {
ir_node *pred = get_Block_cfgpred(n, i);
- ASSERT_AND_RET((is_Bad(pred) || (get_irn_mode(pred) == mode_X)), "Block node", 0);
+ ASSERT_AND_RET((is_Bad(pred) ||
+ (get_irn_op(pred) == op_Unknown) ||
+ (get_irn_mode(pred) == mode_X) ),
+ "Block node", 0);
}
// End block may only have Return, Raise or fragile ops as preds.
if (n == get_irg_end_block(irg))
is_fragile_op(pred) ),
"End Block node", 0);
}
+ // irg attr must == graph we are in.
+ if (! interprocedural_view) {
+ ASSERT_AND_RET(((get_irn_irg(n) && get_irn_irg(n) == irg)), "", 0);
+ }
+
break;
case iro_Start: