forked from OSchip/llvm-project
Tidy up last commit, as per Devang's comments.
llvm-svn: 112840
This commit is contained in:
parent
1ce2faca05
commit
cf60744cd7
|
@ -95,6 +95,24 @@ llvm::StringRef CGDebugInfo::getFunctionName(const FunctionDecl *FD) {
|
|||
return llvm::StringRef(StrPtr, NS.length());
|
||||
}
|
||||
|
||||
llvm::StringRef CGDebugInfo::getObjCMethodName(const ObjCMethodDecl *OMD) {
|
||||
llvm::SmallString<256> MethodName;
|
||||
llvm::raw_svector_ostream OS(MethodName);
|
||||
OS << (OMD->isInstanceMethod() ? '-' : '+') << '[';
|
||||
const DeclContext *DC = OMD->getDeclContext();
|
||||
if (const ObjCImplementationDecl *OID = dyn_cast<const ObjCImplementationDecl>(DC)) {
|
||||
OS << OID->getName();
|
||||
} else if (const ObjCCategoryImplDecl *OCD = dyn_cast<const ObjCCategoryImplDecl>(DC)){
|
||||
OS << ((NamedDecl *)OCD)->getIdentifier()->getNameStart() << '(' <<
|
||||
OCD->getIdentifier()->getNameStart() << ')';
|
||||
}
|
||||
OS << ' ' << OMD->getSelector().getAsString() << ']';
|
||||
|
||||
char *StrPtr = DebugInfoNames.Allocate<char>(OS.tell());
|
||||
memcpy(StrPtr, MethodName.begin(), OS.tell());
|
||||
return llvm::StringRef(StrPtr, OS.tell());
|
||||
}
|
||||
|
||||
/// getClassName - Get class name including template argument list.
|
||||
llvm::StringRef
|
||||
CGDebugInfo::getClassName(RecordDecl *RD) {
|
||||
|
@ -1472,18 +1490,7 @@ void CGDebugInfo::EmitFunctionStart(GlobalDecl GD, QualType FnType,
|
|||
// Use mangled name as linkage name for c/c++ functions.
|
||||
LinkageName = CGM.getMangledName(GD);
|
||||
} else if (const ObjCMethodDecl *OMD = dyn_cast<ObjCMethodDecl>(D)) {
|
||||
llvm::SmallString<256> MethodName;
|
||||
llvm::raw_svector_ostream OS(MethodName);
|
||||
OS << (OMD->isInstanceMethod() ? '-' : '+') << '[';
|
||||
const DeclContext *DC = OMD->getDeclContext();
|
||||
if (const ObjCImplementationDecl *OID = dyn_cast<const ObjCImplementationDecl>(DC)) {
|
||||
OS << OID->getName();
|
||||
} else if (const ObjCCategoryImplDecl *OCD = dyn_cast<const ObjCCategoryImplDecl>(DC)){
|
||||
OS << ((NamedDecl *)OCD)->getIdentifier()->getNameStart() << '(' <<
|
||||
OCD->getIdentifier()->getNameStart() << ')';
|
||||
}
|
||||
OS << ' ' << OMD->getSelector().getAsString() << ']';
|
||||
Name = MethodName;
|
||||
Name = getObjCMethodName(OMD);
|
||||
LinkageName = Name;
|
||||
} else {
|
||||
// Use llvm function name as linkage name.
|
||||
|
|
|
@ -232,6 +232,9 @@ private:
|
|||
/// name is constructred on demand (e.g. C++ destructor) then the name
|
||||
/// is stored on the side.
|
||||
llvm::StringRef getFunctionName(const FunctionDecl *FD);
|
||||
/// getObjCMethodName - Returns the unmangled name of an Objective-C method.
|
||||
/// This is the display name for the debugging info.
|
||||
llvm::StringRef getObjCMethodName(const ObjCMethodDecl *FD);
|
||||
|
||||
/// getClassName - Get class name including template argument list.
|
||||
llvm::StringRef getClassName(RecordDecl *RD);
|
||||
|
|
Loading…
Reference in New Issue