https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66448

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #35734|0                           |1
        is obsolete|                            |

--- Comment #17 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
Created attachment 35744
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35744&action=edit
Call check_die on type DIEs and avoid DW_AT_aritificial attribs

On 06/10/2015 04:01 AM, iains at gcc dot gnu.org wrote:>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66448
> 
> --- Comment #15 from Iain Sandoe <iains at gcc dot gnu.org> ---
> (In reply to Aldy Hernandez from comment #14)
>> Created attachment 35734 [details]
>> Patch to ICE on other duplicate DW_AT_ attributes
> 
>> I can't reproduce any of these with a cross compiler.  I'm building a cross
>> with:
>>
>> --enable-languages=c,c++ --disable-bootstrap --disable-multilib
>> --target=i686-darwin
> 
> The triple for the platform I'm testing on is :  x86_64-apple-darwin12

As a side note, if *-apple-darwin{10,12} is the more common variant (as opposed
to *-apple-darwin which uses stabs), may I suggest speaking with the SC to put
a more recent darwin on the secondary platform list instead of
i686-apple-darwin which is stabs (and nobody cares bout stabs ;-)).

>> ...but I still can't get cc1plus to trigger any ICE with the attached patch.
> 
> me neither - nevertheless...

Well, I was testing stabs apparently, but even so, the reason why the ICE did
not trigger was because the duplicate attributes appear on a type DIE, not a
decl DIE.  I was able to reproduce by looking at the assembly.

I added a check for type DIEs and found a slew of problems on Linux as well. 
It seems the Linux linker is far more permissive wrt dwarf.  The attached patch
fixes all the problems you reported that I could reproduce with a cross
compiler for x86_64-apple-darwin10.  It also passes bootstrap and tests on
x86-64 Linux.

Could you test it properly on darwin?

Reply via email to