From: Fariborz Jahanian Date: Fri, 1 Oct 2010 00:01:53 +0000 (+0000) Subject: Output debug info. for ivars declared in class X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9747739d0dd3077763100c28a134cc1f332df3d4;p=clang Output debug info. for ivars declared in class extension and implementation. Fixes rdar://8493239. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115248 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 29a4377dd1..30165961e5 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -1114,9 +1114,8 @@ llvm::DIType CGDebugInfo::CreateType(const ObjCInterfaceType *Ty, const ASTRecordLayout &RL = CGM.getContext().getASTObjCInterfaceLayout(ID); unsigned FieldNo = 0; - for (ObjCInterfaceDecl::ivar_iterator I = ID->ivar_begin(), - E = ID->ivar_end(); I != E; ++I, ++FieldNo) { - ObjCIvarDecl *Field = *I; + for (ObjCIvarDecl *Field = ID->all_declared_ivar_begin(); Field; + Field = Field->getNextIvar()) { llvm::DIType FieldTy = getOrCreateType(Field->getType(), Unit); llvm::StringRef FieldName = Field->getName(); diff --git a/test/CodeGenObjC/debug-info-default-synth-ivar.m b/test/CodeGenObjC/debug-info-default-synth-ivar.m new file mode 100644 index 0000000000..f121e40750 --- /dev/null +++ b/test/CodeGenObjC/debug-info-default-synth-ivar.m @@ -0,0 +1,34 @@ +// RUN: %clang -fverbose-asm -g -S %s -o - | grep DW_AT_name | count 42 +// rdar://8493239 + +@class NSString; + +@interface InstanceVariablesEverywhereButTheInterface +@end + +@interface InstanceVariablesEverywhereButTheInterface() +{ + NSString *_someString; +} + +@property(readonly) NSString *someString; +@property(readonly) unsigned long someNumber; +@end + +@implementation InstanceVariablesEverywhereButTheInterface +{ + unsigned long _someNumber; +} +@synthesize someString = _someString, someNumber = _someNumber; +@end + +@interface AutomaticSynthesis +{ + int real_ivar; +} +@property(copy) NSString *someString; +@property unsigned long someNumber; +@end + +@implementation AutomaticSynthesis +@end