[llvm] r176120 - Debug Info: for static member variables, move AT_MIPS_linkage_name from

Manman Ren mren at apple.com
Tue Feb 26 15:01:54 PST 2013


On Feb 26, 2013, at 2:50 PM, "Robinson, Paul" <Paul.Robinson at am.sony.com> wrote:

> On Tue, Feb 26, 2013 at 12:48 PM, Manman Ren <mren at apple.com> wrote:
>> Debug Info: for static member variables, move AT_MIPS_linkage_name from
>> TAG_member inside a class to the specification DIE.
> 
> The declaration would be the "specification DIE" (i.e., the DIE referred
> to by the DW_AT_specification attribute) and that's where it was.
> You moved it to the definition DIE.

Thanks for the clarification, from the comments in the source code
      // Create specification DIE.
      VariableSpecDIE = new DIE(dwarf::DW_TAG_variable);
we seem to call the TAG_variable DIE as specification DIE.

> 
>> Having AT_MIPS_linkage_name on TAG_member caused old gdb (GNU 6.3.50) to
>> error out. 
> 
> It is more likely that old GDB errored out because Clang now uses DW_TAG_member
> to declare static members inside a class, instead of DW_TAG_variable.
Yes, this is a regression for the old GDB, it used to work when we declare static members using DW_TAG_variable.
I am trying to fix this regression.

-Manman
> 
>> Also gcc 4.7 has AT_MIPS_linkage_name on the specification DIE.
> 
> GCC 4.4.3 has it on the declaration DIE.
> 
> --paulr
> 




More information about the llvm-commits mailing list