This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: split_block fix


On Sun, Jul 22, 2001 at 07:56:12PM +0200, Jan Hubicka wrote:
> What I was having problem with, if I remember correctly, was an CODE_LABEL
> inserted as last insn in the block. sub_basic_block called split_block on
> next-to-last insn, but split_block emits BASIC_BLOCK note after the
> CODE_LABEL, thus overing after end of the BB.

Ok, I see.  In which case I think moving the check up, 
and commenting it, makes things clearer.

I'll apply it shortly.



r~



Index: flow.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/flow.c,v
retrieving revision 1.431
diff -c -p -d -r1.431 flow.c
*** flow.c	2001/07/21 03:05:09	1.431
--- flow.c	2001/07/22 22:45:06
*************** split_block (bb, insn)
*** 1565,1570 ****
--- 1565,1575 ----
        bb_note = emit_note_after (NOTE_INSN_BASIC_BLOCK,
  				 new_bb->head);
        NOTE_BASIC_BLOCK (bb_note) = new_bb;
+ 
+       /* If the only thing in this new block was the label, make sure
+ 	 the block note gets included.  */
+       if (new_bb->head == new_bb->end)
+ 	new_bb->end = bb_note;
      }
    else
      {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]