On Mon, Dec 12, 2011 at 3:04 PM, Hans-Peter Nilsson <hans-peter.nils...@axis.com> wrote: > (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
And it causes a few failures on x86_64-linux-gnu also. FAIL: g++.dg/abi/covariant5.C -std=c++98 (internal compiler error) FAIL: g++.dg/abi/covariant5.C -std=c++98 (test for excess errors) FAIL: g++.dg/abi/covariant5.C -std=c++11 (internal compiler error) FAIL: g++.dg/abi/covariant5.C -std=c++11 (test for excess errors) Thanks, Andrew Pinski