projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[Orc] Add sensible defaults for the ObjectLinkingLayer constructor.
[oota-llvm.git]
/
include
/
llvm
/
ExecutionEngine
/
Orc
/
ObjectLinkingLayer.h
diff --git
a/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
b/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
index ff358007a72c56b2b6daf1ce71a8bc8b324b3440..03b43aa3272d429369244148864a2b0c6bad202e 100644
(file)
--- a/
include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
+++ b/
include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
@@
-32,11
+32,17
@@
protected:
/// had been provided by this instance. Higher level layers are responsible
/// for taking any action required to handle the missing symbols.
class LinkedObjectSet {
/// had been provided by this instance. Higher level layers are responsible
/// for taking any action required to handle the missing symbols.
class LinkedObjectSet {
+ LinkedObjectSet(const LinkedObjectSet&) LLVM_DELETED_FUNCTION;
+ void operator=(const LinkedObjectSet&) LLVM_DELETED_FUNCTION;
public:
LinkedObjectSet(std::unique_ptr<RTDyldMemoryManager> MM)
: MM(std::move(MM)), RTDyld(llvm::make_unique<RuntimeDyld>(&*this->MM)),
State(Raw) {}
public:
LinkedObjectSet(std::unique_ptr<RTDyldMemoryManager> MM)
: MM(std::move(MM)), RTDyld(llvm::make_unique<RuntimeDyld>(&*this->MM)),
State(Raw) {}
+ // MSVC 2012 cannot infer a move constructor, so write it out longhand.
+ LinkedObjectSet(LinkedObjectSet &&O)
+ : MM(std::move(O.MM)), RTDyld(std::move(O.RTDyld)), State(O.State) {}
+
std::unique_ptr<RuntimeDyld::LoadedObjectInfo>
addObject(const object::ObjectFile &Obj) {
return RTDyld->loadObject(Obj);
std::unique_ptr<RuntimeDyld::LoadedObjectInfo>
addObject(const object::ObjectFile &Obj) {
return RTDyld->loadObject(Obj);
@@
-74,7
+80,7
@@
protected:
public:
/// @brief Handle to a set of loaded objects.
public:
/// @brief Handle to a set of loaded objects.
- typedef
typename
LinkedObjectSetListT::iterator ObjSetHandleT;
+ typedef LinkedObjectSetListT::iterator ObjSetHandleT;
};
/// @brief Default (no-op) action to perform when loading objects.
};
/// @brief Default (no-op) action to perform when loading objects.
@@
-109,9
+115,9
@@
public:
/// @brief Construct an ObjectLinkingLayer with the given NotifyLoaded,
/// NotifyFinalized and CreateMemoryManager functors.
ObjectLinkingLayer(
/// @brief Construct an ObjectLinkingLayer with the given NotifyLoaded,
/// NotifyFinalized and CreateMemoryManager functors.
ObjectLinkingLayer(
- CreateRTDyldMMFtor CreateMemoryManager,
- NotifyLoadedFtor NotifyLoaded,
- NotifyFinalizedFtor NotifyFinalized)
+ CreateRTDyldMMFtor CreateMemoryManager
= CreateRTDyldMMFtor()
,
+ NotifyLoadedFtor NotifyLoaded
= NotifyLoadedFtor()
,
+ NotifyFinalizedFtor NotifyFinalized
= NotifyFinalizedFtor()
)
: NotifyLoaded(std::move(NotifyLoaded)),
NotifyFinalized(std::move(NotifyFinalized)),
CreateMemoryManager(std::move(CreateMemoryManager)) {}
: NotifyLoaded(std::move(NotifyLoaded)),
NotifyFinalized(std::move(NotifyFinalized)),
CreateMemoryManager(std::move(CreateMemoryManager)) {}