summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h')
-rw-r--r--gnu/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h10
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;