summaryrefslogtreecommitdiff
path: root/gcc/cfghooks.c
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-20 05:02:28 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-20 05:02:28 +0000
commit532f6ac12898fe43f5e2f172bd72a5a14c4c00cc (patch)
treeadcd8f1cb11423dfef36a3d69e2b7f39b0f21c01 /gcc/cfghooks.c
parentad1a4db8a51c4e0e5db999b99bc6cfd83a1e955c (diff)
downloadgcc-532f6ac12898fe43f5e2f172bd72a5a14c4c00cc.tar.gz
* basic-block.h (edge_def): Add dest_idx.
* cfg.c (unchecked_make_edge): Initialize dest_idx. (remove_edge): Simplify the disconnection of an edge from its destination. (redirect_edge_succ): Likewise. * cfghooks.c (verify_flow_info): Check the consistency of dest_idx for each edge. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90958 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfghooks.c')
-rw-r--r--gcc/cfghooks.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/cfghooks.c b/gcc/cfghooks.c
index 00f4562d81e..42d1183841a 100644
--- a/gcc/cfghooks.c
+++ b/gcc/cfghooks.c
@@ -178,6 +178,20 @@ verify_flow_info (void)
fputc ('\n', stderr);
err = 1;
}
+
+ if (ei.index != e->dest_idx)
+ {
+ error ("basic block %d pred edge is corrupted", bb->index);
+ error ("its dest_idx should be %d, not %d",
+ ei.index, e->dest_idx);
+ fputs ("Predecessor: ", stderr);
+ dump_edge_info (stderr, e, 0);
+ fputs ("\nSuccessor: ", stderr);
+ dump_edge_info (stderr, e, 1);
+ fputc ('\n', stderr);
+ err = 1;
+ }
+
edge_checksum[e->dest->index + 2] -= (size_t) e;
}
}