- add an extra filed for the bit offset\n- renamed access functions\n- renamed entity...
[libfirm] / ir / ir / irvrfy.c
index 745e75d..06825ba 100644 (file)
@@ -723,6 +723,9 @@ static int verify_node_Proj_Bound(ir_node *n, ir_node *p) {
   ir_mode *mode = get_irn_mode(p);
   long proj     = get_Proj_proj(p);
 
+  /* ignore Bound checks of Bad */
+  if (is_Bad(get_Bound_index(n)))
+    return 1;
   ASSERT_AND_RET_DBG(
     ((proj == pn_Bound_M        && mode == mode_M) ||
      (proj == pn_Bound_X_except && mode == mode_X) ||
@@ -1432,15 +1435,24 @@ static int verify_node_Phi(ir_node *n, ir_graph *irg) {
     for (i = get_Phi_n_preds(n) - 1; i >= 0; --i) {
       int j;
       ir_node *pred_i = get_Phi_pred(n, i);
+
+      if (is_Bad(pred_i))
+        continue;
       for (j = i - 1; j >= 0; --j) {
         ir_node *pred_j = get_Phi_pred(n, j);
 
+        if (is_Bad(pred_j))
+          continue;
+#if 0
+        /* currently this checks fails for blocks with exception
+           outputs (and these are NOT basic blocks).  So it is disabled yet. */
         ASSERT_AND_RET_DBG(
           (pred_i == pred_j) || (get_irn_n(pred_i, -1) != get_irn_n(pred_j, -1)),
           "At least two different PhiM predecessors are in the same block",
           0,
           ir_printf("%+F and %+F of %+F are in %+F\n", pred_i, pred_j, n, get_irn_n(pred_i, -1))
         );
+#endif
       }
     }
   }