diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eda99eb93f7e..a9a890c6007b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -10,6 +10,9 @@ Make them static. * hard-reg-set.h: Remove the corresponding declarations. + * tree-cfg.c (verify_stmts): Check that + bb_for_stmt (stmt) == bb for every PHI node and statement. + 2005-03-14 Alan Modra * config.gcc: Remove excess indentation. diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index ba04101724ec..18fcab7ba8e9 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -3696,6 +3696,12 @@ verify_stmts (void) { int phi_num_args = PHI_NUM_ARGS (phi); + if (bb_for_stmt (phi) != bb) + { + error ("bb_for_stmt (phi) is set to a wrong basic block\n"); + err |= true; + } + for (i = 0; i < phi_num_args; i++) { tree t = PHI_ARG_DEF (phi, i); @@ -3734,6 +3740,13 @@ verify_stmts (void) for (bsi = bsi_start (bb); !bsi_end_p (bsi); ) { tree stmt = bsi_stmt (bsi); + + if (bb_for_stmt (stmt) != bb) + { + error ("bb_for_stmt (stmt) is set to a wrong basic block\n"); + err |= true; + } + bsi_next (&bsi); err |= verify_stmt (stmt, bsi_end_p (bsi)); addr = walk_tree (&stmt, verify_node_sharing, htab, NULL);