diff options
Diffstat (limited to 'gnu/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h')
| -rw-r--r-- | gnu/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gnu/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h b/gnu/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h index 422a3761837..464417e4e6d 100644 --- a/gnu/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h +++ b/gnu/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h @@ -15,6 +15,7 @@ #define LLVM_EXECUTIONENGINE_ORC_JITSYMBOL_H #include "llvm/ExecutionEngine/JITSymbolFlags.h" +#include "llvm/ExecutionEngine/RuntimeDyld.h" #include "llvm/Support/DataTypes.h" #include <cassert> #include <functional> @@ -52,6 +53,10 @@ public: JITSymbol(GetAddressFtor GetAddress, JITSymbolFlags Flags) : JITSymbolBase(Flags), GetAddress(std::move(GetAddress)), CachedAddr(0) {} + /// @brief Create a JITSymbol from a RuntimeDyld::SymbolInfo. + JITSymbol(const RuntimeDyld::SymbolInfo &Sym) + : JITSymbolBase(Sym.getFlags()), CachedAddr(Sym.getAddress()) {} + /// @brief Returns true if the symbol exists, false otherwise. explicit operator bool() const { return CachedAddr || GetAddress; } @@ -66,6 +71,11 @@ public: return CachedAddr; } + /// @brief Convert this JITSymbol to a RuntimeDyld::SymbolInfo. + RuntimeDyld::SymbolInfo toRuntimeDyldSymbol() { + return RuntimeDyld::SymbolInfo(getAddress(), getFlags()); + } + private: GetAddressFtor GetAddress; TargetAddress CachedAddr; |
