PING^1

On 05/11/2018 03:12 PM, Martin Liška wrote:
> On 05/11/2018 11:35 AM, Richard Biener wrote:
>> On Thu, May 10, 2018 at 9:58 AM, Martin Liška <mli...@suse.cz> wrote:
>>> Hi.
>>>
>>> It's removal of an assert at place where we calculate hash of a type.
>>> For incomplete types, let's skip it.
>>>
>>> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>>>
>>> Ready to be installed?
>>
>> Seems to be a redundant check in the !val case as well.  Also why not
>> at least do
>>
>>           hstate2.add_int (RECORD_TYPE);
>>
>> for incomplete types? 
> 
> Thanks, done that.
> 
>  That said, your patch fixes the ICE but what
>> is supposed to happen for incomplete types?  Note that with LTO
>> we no longer "complete" types so you can see a mix of struct S;
>> and struct S { .... }; in the IL.  It looks like comparison later just
>> looks at types_compatible_p here.
> 
> Yes, that should be fine. The hashing of types is only an optimization.
> 
>>
>> Anyway, please at least remove the other redundant assert.
> 
> Done and tested.
> 
> Martin
> 
>>
>> Thanks,
>> Richard.
>>
>>> Martin
>>>
>>>
>>> gcc/ChangeLog:
>>>
>>> 2018-05-09  Martin Liska  <mli...@suse.cz>
>>>
>>>         PR ipa/85607
>>>         * ipa-icf.c (sem_item::add_type): Do not ICE for incomplete types.
>>>
>>> gcc/testsuite/ChangeLog:
>>>
>>> 2018-05-09  Martin Liska  <mli...@suse.cz>
>>>
>>>         PR ipa/85607
>>>         * g++.dg/ipa/pr85606.C: New test.
>>> ---
>>>  gcc/ipa-icf.c                      |  5 ++++-
>>>  gcc/testsuite/g++.dg/ipa/pr85606.C | 14 ++++++++++++++
>>>  2 files changed, 18 insertions(+), 1 deletion(-)
>>>  create mode 100644 gcc/testsuite/g++.dg/ipa/pr85606.C
>>>
>>>
> 

Reply via email to