mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-16 00:33:10 +00:00
Debug Info: for static member variables, move AT_MIPS_linkage_name from
TAG_member inside a class to the specification DIE. Having AT_MIPS_linkage_name on TAG_member caused old gdb (GNU 6.3.50) to error out. Also gcc 4.7 has AT_MIPS_linkage_name on the specification DIE. rdar://problem/13291234 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176120 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0908bcbf44
commit
6fe26103d7
@ -1349,7 +1349,10 @@ void CompileUnit::createGlobalVariableDIE(const MDNode *N) {
|
||||
// Add linkage name.
|
||||
StringRef LinkageName = GV.getLinkageName();
|
||||
if (!LinkageName.empty() && isGlobalVariable)
|
||||
addString(VariableDIE, dwarf::DW_AT_MIPS_linkage_name,
|
||||
// For static member variables, AT_MIPS_linkage_name should be on
|
||||
// specification DIE to make old gdb work.
|
||||
addString(IsStaticMember && VariableSpecDIE ?
|
||||
VariableSpecDIE : VariableDIE, dwarf::DW_AT_MIPS_linkage_name,
|
||||
getRealLinkageName(LinkageName));
|
||||
} else if (const ConstantInt *CI =
|
||||
dyn_cast_or_null<ConstantInt>(GV.getConstant())) {
|
||||
|
@ -97,7 +97,6 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
|
||||
; PRESENT: DW_AT_external
|
||||
; PRESENT: DW_AT_declaration
|
||||
; PRESENT: DW_AT_accessibility [DW_FORM_data1] (0x03)
|
||||
; PRESENT: DW_AT_MIPS_linkage_name {{.*}} "_ZN1C1aE"
|
||||
; PRESENT: DW_TAG_member
|
||||
; PRESENT-NEXT: DW_AT_name {{.*}} "const_a"
|
||||
; PRESENT: DW_AT_external
|
||||
@ -107,7 +106,6 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
|
||||
; PRESENT: 0x[[DECL_B:[0-9a-f]+]]: DW_TAG_member
|
||||
; PRESENT-NEXT: DW_AT_name {{.*}} "b"
|
||||
; PRESENT: DW_AT_accessibility [DW_FORM_data1] (0x02)
|
||||
; PRESENT: DW_AT_MIPS_linkage_name {{.*}} "_ZN1C1bE"
|
||||
; PRESENT: DW_TAG_member
|
||||
; PRESENT-NEXT: DW_AT_name {{.*}} "const_b"
|
||||
; PRESENT: DW_AT_accessibility [DW_FORM_data1] (0x02)
|
||||
@ -115,7 +113,6 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
|
||||
; PRESENT: 0x[[DECL_C:[0-9a-f]+]]: DW_TAG_member
|
||||
; PRESENT-NEXT: DW_AT_name {{.*}} "c"
|
||||
; PRESENT: DW_AT_accessibility [DW_FORM_data1] (0x01)
|
||||
; PRESENT: DW_AT_MIPS_linkage_name {{.*}} "_ZN1C1cE"
|
||||
; PRESENT: DW_TAG_member
|
||||
; PRESENT-NEXT: DW_AT_name {{.*}} "const_c"
|
||||
; PRESENT: DW_AT_accessibility [DW_FORM_data1] (0x01)
|
||||
@ -131,12 +128,15 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
|
||||
; PRESENT: DW_TAG_variable
|
||||
; PRESENT-NEXT: DW_AT_specification {{.*}} {0x[[DECL_A]]}
|
||||
; PRESENT-NEXT: DW_AT_location
|
||||
; PRESENT-NEXT: DW_AT_MIPS_linkage_name {{.*}} "_ZN1C1aE"
|
||||
; PRESENT: DW_TAG_variable
|
||||
; PRESENT-NEXT: DW_AT_specification {{.*}} {0x[[DECL_B]]}
|
||||
; PRESENT-NEXT: DW_AT_location
|
||||
; PRESENT-NEXT: DW_AT_MIPS_linkage_name {{.*}} "_ZN1C1bE"
|
||||
; PRESENT: DW_TAG_variable
|
||||
; PRESENT-NEXT: DW_AT_specification {{.*}} {0x[[DECL_C]]}
|
||||
; PRESENT-NEXT: DW_AT_location
|
||||
; PRESENT-NEXT: DW_AT_MIPS_linkage_name {{.*}} "_ZN1C1cE"
|
||||
|
||||
; ABSENT verifies that static member declarations do not have either
|
||||
; DW_AT_location or DW_AT_data_member_location; also, variables do not
|
||||
|
Loading…
x
Reference in New Issue
Block a user