diff mbox

patch to fix PR55048

Message ID 50880B02.4000900@redhat.com
State New
Headers show

Commit Message

Vladimir Makarov Oct. 24, 2012, 3:36 p.m. UTC
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  <vmakarov@redhat.com>

     PR bootstrap/55048
     * lra-constraints.c (update_ebb_live_info): Skip
     non-NOTE_INSN_BASIC_BLOCK notes.
diff mbox

Patch

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)
 	{