(Please don't forget to CC gcc-patches on replies.  Thanks.)

> From: Dmitriy Vyukov <dvyu...@google.com>
> Date: Mon, 12 Dec 2011 14:43:10 +0100

> Fix flags for edges from/to entry/exit basic blocks.
> W/o this patch I hit internal asserts when trying to
> split the edge from entry block.
> 
> Index: gcc/cgraphunit.c
> ===================================================================
> --- gcc/cgraphunit.c  (revision 182237)
> +++ gcc/cgraphunit.c  (working copy)
> @@ -1459,8 +1459,8 @@
>  
>    /* Create BB for body of the function and connect it properly.  */
>    bb = create_basic_block (NULL, (void *) 0, ENTRY_BLOCK_PTR);
> -  make_edge (ENTRY_BLOCK_PTR, bb, 0);
> -  make_edge (bb, EXIT_BLOCK_PTR, 0);
> +  make_edge (ENTRY_BLOCK_PTR, bb, EDGE_FALLTHRU);
> +  make_edge (bb, EXIT_BLOCK_PTR, EDGE_FALLTHRU);
>  
>    return bb;
>  }
> Index: gcc/ChangeLog
> ===================================================================
> --- gcc/ChangeLog     (revision 182237)
> +++ gcc/ChangeLog     (working copy)
> @@ -1,3 +1,8 @@
> +2011-12-12  Dmitry Vyukov  <dvyu...@google.com>
> +
> +     * cgraphunit.c (init_lowered_empty_function):
> +     Fix flags for new edges.
> +

This caused a build failure for cris-elf (i.e. it is the most
likely patch in the breaking range r182243:182256):

In member function 'void
std::istrstream::_ZTv0_n12_NSt10istrstreamD0Ev()':
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/backward/strstream:134:13:
error: fallthru to exit from bb 2
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/backward/strstream:134:13:
error: fallthru edge after a control statement in bb 2
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/backward/strstream:134:13:
error: wrong outgoing edge flags at end of bb 2
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/backward/strstream:134:13:
internal compiler error: verify_flow_info failed

Details in PR51521.

brgds, H-P

Reply via email to