On 16.04.2011, at 02:12, Devang Patel wrote: > Author: dpatel > Date: Fri Apr 15 19:12:55 2011 > New Revision: 129625 > > URL: http://llvm.org/viewvc/llvm-project?rev=129625&view=rev > Log: > Emit debug info for Objective-C properties. > > Added: > cfe/trunk/test/CodeGenObjC/debug-info-property.m > Modified: > cfe/trunk/lib/CodeGen/CGDebugInfo.cpp > > Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=129625&r1=129624&r2=129625&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri Apr 15 19:12:55 2011 > @@ -1191,9 +1191,22 @@ > else if (Field->getAccessControl() == ObjCIvarDecl::Private) > Flags = llvm::DIDescriptor::FlagPrivate; > > - FieldTy = DBuilder.createMemberType(FieldName, FieldDefUnit, > - FieldLine, FieldSize, FieldAlign, > - FieldOffset, Flags, FieldTy); > + llvm::StringRef PropertyName; > + llvm::StringRef PropertyGetter; > + llvm::StringRef PropertySetter; > + unsigned PropertyAttributes; > + if (ObjCPropertyDecl *PD = > + ID->FindPropertyVisibleInPrimaryClass(Field->getIdentifier())) { > + PropertyName = PD->getName(); > + PropertyGetter = PD->getGetterName().getNameForSlot(0); > + PropertySetter = PD->getSetterName().getNameForSlot(0); > + PropertyAttributes = PD->getPropertyAttributes(); > + } > + FieldTy = DBuilder.createObjCIVar(FieldName, FieldDefUnit, > + FieldLine, FieldSize, FieldAlign, > + FieldOffset, Flags, FieldTy, > + PropertyName, PropertyGetter, > + PropertySetter, PropertyAttributes); > EltTys.push_back(FieldTy); > }
Is it intended to create an ObjCIVar with an empty name if it's not visible in the primary class? Also PropertyAttributes will be used uninitialized in that case, which causes failures on the valgrind buildbot. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
