global.c (build_insn_chain): Verify no real insns exist past the end of the last basic block, then exit the loop.

* global.c (build_insn_chain): Verify no real insns exist past the
        end of the last basic block, then exit the loop.

From-SVN: r22961
This commit is contained in:
Jeffrey A Law 1998-10-09 13:28:55 +00:00 committed by Jeff Law
parent a9e6be8ed0
commit 3663a3047f
2 changed files with 19 additions and 0 deletions

View File

@ -1,3 +1,8 @@
Fri Oct 9 14:26:44 1998 Jeffrey A Law (law@cygnus.com)
* global.c (build_insn_chain): Verify no real insns exist past the
end of the last basic block, then exit the loop.
Fri Oct 9 11:44:47 1998 David Edelsohn <edelsohn@mhpcc.edu>
* loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.

View File

@ -1722,6 +1722,20 @@ build_insn_chain (first)
if (first == basic_block_end[b])
b++;
/* Stop after we pass the end of the last basic block. Verify that
no real insns are after the end of the last basic block.
We may want to reorganize the loop somewhat since this test should
always be the right exit test. */
if (b == n_basic_blocks)
{
for (first = NEXT_INSN (first) ; first; first = NEXT_INSN (first))
if (GET_RTX_CLASS (GET_CODE (first)) == 'i'
&& GET_CODE (PATTERN (first)) != USE)
abort ();
break;
}
}
FREE_REG_SET (live_relevant_regs);
*p = 0;