(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