diff options
author | Nick Kledzik <kledzik@apple.com> | 2009-06-01 20:33:09 +0000 |
---|---|---|
committer | Nick Kledzik <kledzik@apple.com> | 2009-06-01 20:33:09 +0000 |
commit | 3eb445feb22647e867a339f4c59b0a716b03a21a (patch) | |
tree | 779eb30904dc2e0a5a45994b8c12a1f6c93abeee /tools/lto/LTOModule.h | |
parent | 8fff19ba556b8a61545fa52fdac9f04fbbe74e11 (diff) |
<rdar://problem/6927148> 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
Diffstat (limited to 'tools/lto/LTOModule.h')
-rw-r--r-- | tools/lto/LTOModule.h | 10 |
1 files changed, 8 insertions, 2 deletions
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<uint8_t> StringSet; struct NameAndAttributes { |