From d61c840fcda18675c131bf86bb6d4498fcb6c272 Mon Sep 17 00:00:00 2001 From: Manman Ren Date: Tue, 26 Feb 2013 22:35:53 +0000 Subject: [PATCH] Revert r176120 as it caused a failure at static-member.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176129 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 5 +---- test/DebugInfo/X86/debug-info-static-member.ll | 6 +++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index c023afdf33c..93b00fb5229 100644 --- a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -1349,10 +1349,7 @@ void CompileUnit::createGlobalVariableDIE(const MDNode *N) { // Add linkage name. StringRef LinkageName = GV.getLinkageName(); if (!LinkageName.empty() && isGlobalVariable) - // 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, + addString(VariableDIE, dwarf::DW_AT_MIPS_linkage_name, getRealLinkageName(LinkageName)); } else if (const ConstantInt *CI = dyn_cast_or_null(GV.getConstant())) { diff --git a/test/DebugInfo/X86/debug-info-static-member.ll b/test/DebugInfo/X86/debug-info-static-member.ll index dd317c689a1..d7a6578ff70 100644 --- a/test/DebugInfo/X86/debug-info-static-member.ll +++ b/test/DebugInfo/X86/debug-info-static-member.ll @@ -97,6 +97,7 @@ 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 @@ -106,6 +107,7 @@ 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) @@ -113,6 +115,7 @@ 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) @@ -128,15 +131,12 @@ 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