aboutsummaryrefslogtreecommitdiff
path: root/tools/lto/LTOModule.h
diff options
context:
space:
mode:
authorNick Kledzik <kledzik@apple.com>2009-06-01 20:33:09 +0000
committerNick Kledzik <kledzik@apple.com>2009-06-01 20:33:09 +0000
commit3eb445feb22647e867a339f4c59b0a716b03a21a (patch)
tree779eb30904dc2e0a5a45994b8c12a1f6c93abeee /tools/lto/LTOModule.h
parent8fff19ba556b8a61545fa52fdac9f04fbbe74e11 (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.h10
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 {