The following patch fixes
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55048
LRA tried to take BB from non-NOTE_INSN_BASIC_BLOCK note and got NULL
which resulted in SIGSEGV.
The patch was successfully bootstrapped with java on x86/x86-64.
Committed as rev. 192770.
2012-10-24 Vladimir Makarov <[email protected]>
PR bootstrap/55048
* lra-constraints.c (update_ebb_live_info): Skip
non-NOTE_INSN_BASIC_BLOCK notes.
Index: lra-constraints.c
===================================================================
--- lra-constraints.c (revision 192743)
+++ lra-constraints.c (working copy)
@@ -4300,6 +4300,10 @@ update_ebb_live_info (rtx head, rtx tail
curr_insn = prev_insn)
{
prev_insn = PREV_INSN (curr_insn);
+ /* We need to process empty blocks too. They contain
+ NOTE_INSN_BASIC_BLOCK referring for the basic block. */
+ if (NOTE_P (curr_insn) && NOTE_KIND (curr_insn) != NOTE_INSN_BASIC_BLOCK)
+ continue;
curr_bb = BLOCK_FOR_INSN (curr_insn);
if (curr_bb != prev_bb)
{