diff options
author | Manman Ren <manman.ren@gmail.com> | 2014-02-10 23:26:14 +0000 |
---|---|---|
committer | Manman Ren <manman.ren@gmail.com> | 2014-02-10 23:26:14 +0000 |
commit | f3fc8c9d0953dbb275f00122afbe207ef7e76df4 (patch) | |
tree | b1374660a820a6e15ff03115b06ef0f30679f5ca /include | |
parent | 4822c5fa52bcc581ac54046b1f5f28be6159bb4e (diff) | |
download | llvm-f3fc8c9d0953dbb275f00122afbe207ef7e76df4.tar.gz llvm-f3fc8c9d0953dbb275f00122afbe207ef7e76df4.tar.bz2 llvm-f3fc8c9d0953dbb275f00122afbe207ef7e76df4.tar.xz |
LTO API: add lto_module_create_from_memory_with_path.
This function adds an extra path argument to lto_module_create_from_memory.
The path argument will be passed to makeBuffer to make sure the MemoryBuffer
has a name and the created module has a module identifier.
This is mainly for emitting warning messages from the linker. When we emit
warning message on a module, we can use the module identifier.
rdar://15985737
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201114 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm-c/lto.h | 12 | ||||
-rw-r--r-- | include/llvm/LTO/LTOModule.h | 8 |
2 files changed, 16 insertions, 4 deletions
diff --git a/include/llvm-c/lto.h b/include/llvm-c/lto.h index fbad2b5686..bff63ad096 100644 --- a/include/llvm-c/lto.h +++ b/include/llvm-c/lto.h @@ -40,7 +40,7 @@ typedef bool lto_bool_t; * @{ */ -#define LTO_API_VERSION 8 +#define LTO_API_VERSION 9 /** * \since prior to LTO_API_VERSION=3 @@ -176,6 +176,16 @@ extern lto_module_t lto_module_create_from_memory(const void* mem, size_t length); /** + * Loads an object file from memory with an extra path argument. + * Returns NULL on error (check lto_get_error_message() for details). + * + * \since prior to LTO_API_VERSION=9 + */ +extern lto_module_t +lto_module_create_from_memory_with_path(const void* mem, size_t length, + const char *path); + +/** * Loads an object file from disk. The seek point of fd is not preserved. * Returns NULL on error (check lto_get_error_message() for details). * diff --git a/include/llvm/LTO/LTOModule.h b/include/llvm/LTO/LTOModule.h index c70afa4196..a70b71fa2e 100644 --- a/include/llvm/LTO/LTOModule.h +++ b/include/llvm/LTO/LTOModule.h @@ -100,7 +100,8 @@ public: std::string& errMsg); static LTOModule *makeLTOModule(const void *mem, size_t length, llvm::TargetOptions options, - std::string &errMsg); + std::string &errMsg, + llvm::StringRef path = ""); /// getTargetTriple - Return the Module's target triple. const char *getTargetTriple() { @@ -222,8 +223,9 @@ private: llvm::TargetOptions options, std::string &errMsg); - /// makeBuffer - Create a MemoryBuffer from a memory range. - static llvm::MemoryBuffer *makeBuffer(const void *mem, size_t length); + /// Create a MemoryBuffer from a memory range with an optional name. + static llvm::MemoryBuffer *makeBuffer(const void *mem, size_t length, + llvm::StringRef name = ""); }; #endif // LTO_MODULE_H |