Jan, the following change of yours is responsible for PR21460.  Can you
remember why you wanted to look for NOTE_INSN_BASIC_BLOCK?

I propose using this instead:

  for (fn_begin = get_insns (); ; fn_begin = NEXT_INSN (fn_begin))
    if (NOTE_P (fn_begin)
        && NOTE_LINE_NUMBER (fn_begin) == NOTE_INSN_FUNCTION_BEG)
      break;

  insert_insn_on_edge (seq, single_succ_edge (BLOCK_FOR_INSN (fn_begin)));


On Mon, Feb 23, 2004 at 12:00:41AM +0100, Jan Hubicka wrote:
> 2004-02-22  Jan Hubicka  <[EMAIL PROTECTED]>
>       * basic-block.h (make_eh_edge, break_superblocks): Declare.
>       * cfgbuild.c (make_eh_edge):  Make global.
>       * cfglayout.c (break_superblocks): Likewise; fix memory leak.
>       * except.c (build_post_landing_pads, connect_post_landing_pads,
>       dw2_build_landing_pads, sjlj_emit_function_enter,
>       sjlj_emit_function_exit, sjlj_emit_dispatch_table, 
>       sjlj_build_landing_pads): Update CFG.
>       (finish_eh_generation): Do not rebuild the CFG.
[snip]
> *************** sjlj_emit_function_enter (rtx dispatch_l
> *** 2107,2115 ****
>   
>     for (fn_begin = get_insns (); ; fn_begin = NEXT_INSN (fn_begin))
>       if (GET_CODE (fn_begin) == NOTE
> !     && NOTE_LINE_NUMBER (fn_begin) == NOTE_INSN_FUNCTION_BEG)
>         break;
> !   emit_insn_after (seq, fn_begin);
>   }
>   
>   /* Call back from expand_function_end to know where we should put
> --- 2146,2164 ----
>   
>     for (fn_begin = get_insns (); ; fn_begin = NEXT_INSN (fn_begin))
>       if (GET_CODE (fn_begin) == NOTE
> !     && (NOTE_LINE_NUMBER (fn_begin) == NOTE_INSN_FUNCTION_BEG
> !         || NOTE_LINE_NUMBER (fn_begin) == NOTE_INSN_BASIC_BLOCK))
>         break;
> !   if (NOTE_LINE_NUMBER (fn_begin) == NOTE_INSN_FUNCTION_BEG)
> !     insert_insn_on_edge (seq, ENTRY_BLOCK_PTR->succ);
> !   else
> !     {
> !       for (; ; fn_begin = NEXT_INSN (fn_begin))
> !     if (GET_CODE (fn_begin) == NOTE
> !         && NOTE_LINE_NUMBER (fn_begin) == NOTE_INSN_FUNCTION_BEG)
> !       break;
> !       emit_insn_after (seq, fn_begin);
> !     }
>   }
>   
>   /* Call back from expand_function_end to know where we should put

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre

Reply via email to