+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.
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));
}
}
+ 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))
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 ();