Use (void *)(intptr_t) to cast function addresses to void*
[oota-llvm.git] / tools / lto / LTOModule.h
index 0cb9cdc8b0cff78fbc00b273459210b1f765bc13..8fd3915e28ca46bf16ac91c34f86329462c7af0d 100644 (file)
@@ -50,9 +50,10 @@ public:
     static bool              isBitcodeFileForTarget(const char* path, 
                                                     const char* triplePrefix);
 
-    static LTOModule*        makeLTOModule(const char* path, std::string& errMsg);
+    static LTOModule*        makeLTOModule(const char* path,
+                                          std::string& errMsg);
     static LTOModule*        makeLTOModule(const void* mem, size_t length,
-                                                            std::string& errMsg);
+                                           std::string& errMsg);
 
     const char*              getTargetTriple();
     uint32_t                 getSymbolCount();
@@ -77,13 +78,19 @@ private:
     void                    addDefinedDataSymbol(llvm::GlobalValue* v, 
                                                         llvm::Mangler &mangler);
     void                    addAsmGlobalSymbol(const char *);
-    static bool             isTargetMatch(llvm::MemoryBuffer* memBuffer, 
+    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, 
+
+    static LTOModule*       makeLTOModule(llvm::MemoryBuffer* buffer,
                                                         std::string& errMsg);
-       static llvm::MemoryBuffer* makeBuffer(const void* mem, size_t length);
-                                                        
+    static llvm::MemoryBuffer* makeBuffer(const void* mem, size_t length);
+
     typedef llvm::StringMap<uint8_t> StringSet;
     
     struct NameAndAttributes { 
@@ -97,7 +104,7 @@ private:
     std::vector<NameAndAttributes>          _symbols;
     // _defines and _undefines only needed to disambiguate tentative definitions
     StringSet                               _defines;    
-    StringSet                               _undefines; 
+    llvm::StringMap<NameAndAttributes>      _undefines;
 };
 
 extern std::string getFeatureString(const char *TargetTriple);