removed pn_Bound_M_except, Bound now have only one memory output
[libfirm] / ir / ir / irvrfy.c
index 080e30b..58e5de0 100644 (file)
@@ -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);