From 18ca529b1976bfdc7f84b96f93d0ac3f483bf7f8 Mon Sep 17 00:00:00 2001 From: Jason Eckhardt Date: Wed, 3 May 2000 16:39:55 +0000 Subject: [PATCH] flow.c (verify_flow_info): Added two more sanity checks. Tue May 2 00:20:30 2000 Jason Eckhardt * 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. From-SVN: r33632 --- gcc/ChangeLog | 7 +++++++ gcc/flow.c | 18 +++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) 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 + + * 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 * 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 (); -- 2.30.2