aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2005-03-14 04:33:46 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2005-03-14 04:33:46 +0000
commit8de1fc1b60d0919e6d5ae255ed137280cb27af0f (patch)
tree2c179e209fe6978ca37fff3f2d07a0dbc088c7ef
parent80fb36b1a817d64ce240ab9b0f70069ef42d2796 (diff)
downloadgcc-8de1fc1b60d0919e6d5ae255ed137280cb27af0f.zip
gcc-8de1fc1b60d0919e6d5ae255ed137280cb27af0f.tar.gz
gcc-8de1fc1b60d0919e6d5ae255ed137280cb27af0f.tar.bz2
tree-cfg.c (verify_stmts): Check that bb_for_stmt (stmt) == bb for every PHI node and statement.
* tree-cfg.c (verify_stmts): Check that bb_for_stmt (stmt) == bb for every PHI node and statement. From-SVN: r96418
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/tree-cfg.c13
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);