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 | 84d40a431f24645ebdef7f04f8c0ffa2cc2e06ba (patch) | |
| tree | 64fe1be34ee9e687d1a85337f20b0af9d765b5a1 /clang | |
| parent | cc707657f9ff2f4c1c043f0a79a48e83be7f082b (diff) | |
| download | bcm5719-llvm-84d40a431f24645ebdef7f04f8c0ffa2cc2e06ba.tar.gz bcm5719-llvm-84d40a431f24645ebdef7f04f8c0ffa2cc2e06ba.zip | |
Do not emit AT_MIPS_linkage_name for Objective-C method static variable i.
llvm-svn: 125210
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 3 | ||||
| -rw-r--r-- | clang/test/CodeGenObjC/debug-info-static-var.m | 23 |
2 files changed, 25 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index ecb1760454d..8036efe9ec4 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/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/clang/test/CodeGenObjC/debug-info-static-var.m b/clang/test/CodeGenObjC/debug-info-static-var.m new file mode 100644 index 00000000000..0da559c0728 --- /dev/null +++ b/clang/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 + |

