From f3fc8c9d0953dbb275f00122afbe207ef7e76df4 Mon Sep 17 00:00:00 2001 From: Manman Ren Date: Mon, 10 Feb 2014 23:26:14 +0000 Subject: 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 --- tools/lto/lto.cpp | 11 +++++++++++ tools/lto/lto.exports | 1 + 2 files changed, 12 insertions(+) (limited to 'tools/lto') diff --git a/tools/lto/lto.cpp b/tools/lto/lto.cpp index 967250acd7..d2f1ffdfa2 100644 --- a/tools/lto/lto.cpp +++ b/tools/lto/lto.cpp @@ -156,6 +156,17 @@ lto_module_t lto_module_create_from_memory(const void* mem, size_t length) { return LTOModule::makeLTOModule(mem, length, Options, sLastErrorString); } +/// Loads an object file from memory with an extra path argument. +/// Returns NULL on error (check lto_get_error_message() for details). +lto_module_t lto_module_create_from_memory_with_path(const void* mem, + size_t length, + const char *path) { + lto_initialize(); + llvm::TargetOptions Options; + lto_set_target_options(Options); + return LTOModule::makeLTOModule(mem, length, Options, sLastErrorString, path); +} + /// lto_module_dispose - Frees all memory for a module. Upon return the /// lto_module_t is no longer valid. void lto_module_dispose(lto_module_t mod) { diff --git a/tools/lto/lto.exports b/tools/lto/lto.exports index 9b8dcb5f09..b10ab1a3e6 100644 --- a/tools/lto/lto.exports +++ b/tools/lto/lto.exports @@ -5,6 +5,7 @@ lto_module_create lto_module_create_from_fd lto_module_create_from_fd_at_offset lto_module_create_from_memory +lto_module_create_from_memory_with_path lto_module_get_deplib lto_module_get_linkeropt lto_module_get_num_deplibs -- cgit v1.2.3