Do not emit AT_MIPS_linkage_name for Objective-C method static variable i.

llvm-svn: 125210
This commit is contained in:
Devang Patel 2011-02-09 19:16:38 +00:00
parent cc707657f9
commit 84d40a431f
2 changed files with 25 additions and 1 deletions

View File

@ -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();

View File

@ -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