This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix flags for edges from/to entry/exit basic blocks (issue5486043)


On Mon, Dec 12, 2011 at 3:04 PM, Hans-Peter Nilsson
<hans-peter.nilsson@axis.com> wrote:
> (Please don't forget to CC gcc-patches on replies. ÂThanks.)
>
>> From: Dmitriy Vyukov <dvyukov@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 Â<dvyukov@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]