From 3eb445feb22647e867a339f4c59b0a716b03a21a Mon Sep 17 00:00:00 2001 From: Nick Kledzik Date: Mon, 1 Jun 2009 20:33:09 +0000 Subject: libLTO needs to handle i386 magic objc class symbols Parse __OBJC data structures and synthesize magic .objc_ symbols. Also, alter mangler so that objc method names are readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72700 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/lto/LTOModule.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'tools/lto/LTOModule.h') diff --git a/tools/lto/LTOModule.h b/tools/lto/LTOModule.h index bbda5ee0e2..9de02a2a4e 100644 --- a/tools/lto/LTOModule.h +++ b/tools/lto/LTOModule.h @@ -77,13 +77,19 @@ private: void addDefinedDataSymbol(llvm::GlobalValue* v, llvm::Mangler &mangler); void addAsmGlobalSymbol(const char *); + void addObjCClass(llvm::GlobalVariable* clgv); + void addObjCCategory(llvm::GlobalVariable* clgv); + void addObjCClassRef(llvm::GlobalVariable* clgv); + bool objcClassNameFromExpression(llvm::Constant* c, + std::string& name); + static bool isTargetMatch(llvm::MemoryBuffer* memBuffer, const char* triplePrefix); - + static LTOModule* makeLTOModule(llvm::MemoryBuffer* buffer, std::string& errMsg); static llvm::MemoryBuffer* makeBuffer(const void* mem, size_t length); - + typedef llvm::StringMap StringSet; struct NameAndAttributes { -- cgit v1.2.3-18-g5258