diff options
author | Devang Patel <dpatel@apple.com> | 2011-02-09 19:16:38 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2011-02-09 19:16:38 +0000 |
commit | eb4c45b383b4a8f69d23e4b9cfb6dd3e6f8ff641 (patch) | |
tree | 41475cc2f73954897ca32980c5bc8bdddd45ae87 | |
parent | 92b97f2d279405751447488504816d82e1906f4f (diff) |
Do not emit AT_MIPS_linkage_name for Objective-C method static variable i.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125210 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 3 | ||||
-rw-r--r-- | test/CodeGenObjC/debug-info-static-var.m | 23 |
2 files changed, 25 insertions, 1 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index ecb1760454..8036efe9ec 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -1954,7 +1954,8 @@ void CGDebugInfo::EmitGlobalVariable(llvm::GlobalVariable *Var, } llvm::StringRef DeclName = D->getName(); llvm::StringRef LinkageName; - if (D->getDeclContext() && !isa<FunctionDecl>(D->getDeclContext())) + if (D->getDeclContext() && !isa<FunctionDecl>(D->getDeclContext()) + && !isa<ObjCMethodDecl>(D->getDeclContext())) LinkageName = Var->getName(); if (LinkageName == DeclName) LinkageName = llvm::StringRef(); diff --git a/test/CodeGenObjC/debug-info-static-var.m b/test/CodeGenObjC/debug-info-static-var.m new file mode 100644 index 0000000000..0da559c072 --- /dev/null +++ b/test/CodeGenObjC/debug-info-static-var.m @@ -0,0 +1,23 @@ +// RUN: %clang_cc1 -g -S -masm-verbose -o - %s | FileCheck %s +// Radar 8801045 +// Do not emit AT_MIPS_linkage_name for static variable i + +// CHECK: DW_TAG_variable +// CHECK-NEXT: .byte 105 ## DW_AT_name +// CHECK-NEXT: .byte 0 +// CHECK-NEXT: DW_AT_type +// CHECK-NEXT: DW_AT_decl_file +// CHECK-NEXT: DW_AT_decl_line +// CHECK-NEXT: DW_AT_location + +@interface A { +} +-(void) foo; +@end + +@implementation A +-(void)foo { + static int i = 1; +} +@end + |