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

Reply via email to