diff options
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/tree-cfg.c | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eda99eb..a9a890c 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 <amodra@bigpond.net.au> * config.gcc: Remove excess indentation. diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index ba04101..18fcab7 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); |