forked from OSchip/llvm-project
Emit proper selector name in debug info.
llvm-svn: 129626
This commit is contained in:
parent
9d6c857862
commit
7294d74627
|
@ -119,6 +119,17 @@ llvm::StringRef CGDebugInfo::getObjCMethodName(const ObjCMethodDecl *OMD) {
|
|||
return llvm::StringRef(StrPtr, OS.tell());
|
||||
}
|
||||
|
||||
/// getSelectporName - Return selector name. This is used for debugging
|
||||
/// info.
|
||||
llvm::StringRef CGDebugInfo::getSelectorName(Selector S) {
|
||||
llvm::SmallString<256> SName;
|
||||
llvm::raw_svector_ostream OS(SName);
|
||||
OS << S.getAsString();
|
||||
char *StrPtr = DebugInfoNames.Allocate<char>(OS.tell());
|
||||
memcpy(StrPtr, SName.begin(), OS.tell());
|
||||
return llvm::StringRef(StrPtr, OS.tell());
|
||||
}
|
||||
|
||||
/// getClassName - Get class name including template argument list.
|
||||
llvm::StringRef
|
||||
CGDebugInfo::getClassName(RecordDecl *RD) {
|
||||
|
@ -1198,8 +1209,8 @@ llvm::DIType CGDebugInfo::CreateType(const ObjCInterfaceType *Ty,
|
|||
if (ObjCPropertyDecl *PD =
|
||||
ID->FindPropertyVisibleInPrimaryClass(Field->getIdentifier())) {
|
||||
PropertyName = PD->getName();
|
||||
PropertyGetter = PD->getGetterName().getNameForSlot(0);
|
||||
PropertySetter = PD->getSetterName().getNameForSlot(0);
|
||||
PropertyGetter = getSelectorName(PD->getGetterName());
|
||||
PropertySetter = getSelectorName(PD->getSetterName());
|
||||
PropertyAttributes = PD->getPropertyAttributes();
|
||||
}
|
||||
FieldTy = DBuilder.createObjCIVar(FieldName, FieldDefUnit,
|
||||
|
|
|
@ -267,6 +267,10 @@ private:
|
|||
/// This is the display name for the debugging info.
|
||||
llvm::StringRef getObjCMethodName(const ObjCMethodDecl *FD);
|
||||
|
||||
/// getSelectporName - Return selector name. This is used for debugging
|
||||
/// info.
|
||||
llvm::StringRef getSelectorName(Selector S);
|
||||
|
||||
/// getClassName - Get class name including template argument list.
|
||||
llvm::StringRef getClassName(RecordDecl *RD);
|
||||
|
||||
|
|
Loading…
Reference in New Issue