diff options
author | jle <jle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-03 16:39:55 +0000 |
---|---|---|
committer | jle <jle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-03 16:39:55 +0000 |
commit | 5da035580c776cbe8197d2961c425db357d61fea (patch) | |
tree | 47b0707ffe3783fb75b890728aeafe96645da837 | |
parent | c10f48b8a2f9161144a409a2396ef9ae5a0fdd6c (diff) | |
download | gcc-5da035580c776cbe8197d2961c425db357d61fea.tar.gz |
Tue May 2 00:20:30 2000 Jason Eckhardt <jle@cygnus.com>
* flow.c (verify_flow_info): Added two more sanity checks. The
first checks that the blocks are numbered consecutively. The second
checks that n_basic_blocks is actually equal to the number of
basic blocks in the insn chain.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33632 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/flow.c | 18 |
2 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b28cacc8a6c..267ce892241 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Tue May 2 00:20:30 2000 Jason Eckhardt <jle@cygnus.com> + + * flow.c (verify_flow_info): Added two more sanity checks. The + first checks that the blocks are numbered consecutively. The second + checks that n_basic_blocks is actually equal to the number of + basic blocks in the insn chain. + 2000-05-03 Zack Weinberg <zack@wolery.cumb.org> * cpplib.h: Add accessor macros for token lists. diff --git a/gcc/flow.c b/gcc/flow.c index f0cee82541b..08f1f0ac297 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -6177,7 +6177,7 @@ verify_flow_info () const rtx rtx_first = get_insns (); basic_block *bb_info; rtx x; - int i, err = 0; + int i, last_bb_num_seen, num_bb_notes, err = 0; bb_info = (basic_block *) xcalloc (max_uid, sizeof (basic_block)); @@ -6340,9 +6340,21 @@ verify_flow_info () } } + last_bb_num_seen = -1; + num_bb_notes = 0; x = rtx_first; while (x) { + if (GET_CODE (x) == NOTE + && NOTE_LINE_NUMBER (x) == NOTE_INSN_BASIC_BLOCK) + { + basic_block bb = NOTE_BASIC_BLOCK (x); + num_bb_notes++; + if (bb->index != last_bb_num_seen + 1) + fatal ("Basic blocks not numbered consecutively"); + last_bb_num_seen = bb->index; + } + if (!bb_info[INSN_UID (x)]) { switch (GET_CODE (x)) @@ -6378,6 +6390,10 @@ verify_flow_info () x = NEXT_INSN (x); } + if (num_bb_notes != n_basic_blocks) + fatal ("number of bb notes in insn chain (%d) != n_basic_blocks (%d)", + num_bb_notes, n_basic_blocks); + if (err) abort (); |