summaryrefslogtreecommitdiff
path: root/include/llvm/ExecutionEngine/JITSymbolFlags.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/ExecutionEngine/JITSymbolFlags.h')
-rw-r--r--include/llvm/ExecutionEngine/JITSymbolFlags.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/llvm/ExecutionEngine/JITSymbolFlags.h b/include/llvm/ExecutionEngine/JITSymbolFlags.h
index 450e9481fa006..7e1d57dabc81a 100644
--- a/include/llvm/ExecutionEngine/JITSymbolFlags.h
+++ b/include/llvm/ExecutionEngine/JITSymbolFlags.h
@@ -15,6 +15,7 @@
#define LLVM_EXECUTIONENGINE_JITSYMBOLFLAGS_H
#include "llvm/IR/GlobalValue.h"
+#include "llvm/Object/SymbolicFile.h"
namespace llvm {
@@ -69,7 +70,16 @@ public:
if (!GV.hasLocalLinkage() && !GV.hasHiddenVisibility())
Flags |= JITSymbolFlags::Exported;
return Flags;
+ }
+ static JITSymbolFlags
+ flagsFromObjectSymbol(const object::BasicSymbolRef &Symbol) {
+ JITSymbolFlags Flags = JITSymbolFlags::None;
+ if (Symbol.getFlags() & object::BasicSymbolRef::SF_Weak)
+ Flags |= JITSymbolFlags::Weak;
+ if (Symbol.getFlags() & object::BasicSymbolRef::SF_Exported)
+ Flags |= JITSymbolFlags::Exported;
+ return Flags;
}
private: