summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2016-01-20 17:39:52 +0000
committerLang Hames <lhames@gmail.com>2016-01-20 17:39:52 +0000
commit6c3e790e788fea0b9a40f62995c87a14f48f2e02 (patch)
tree04965a4cb9117d49b0e33096e3cac270900ce244
parent1c600c6e83ec61a7dc2c7f2ecb720aaacb5d8c7b (diff)
downloadbcm5719-llvm-6c3e790e788fea0b9a40f62995c87a14f48f2e02.tar.gz
bcm5719-llvm-6c3e790e788fea0b9a40f62995c87a14f48f2e02.zip
[Orc] Fix a use-after-move bug in the Orc C-bindings stack.
llvm-svn: 258324
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h b/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
index aae6a99432b..3b2f9ab1cda 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
+++ b/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
@@ -90,12 +90,12 @@ public:
std::unique_ptr<CompileCallbackMgr> CCMgr,
IndirectStubsManagerBuilder IndirectStubsMgrBuilder)
: DL(TM.createDataLayout()), CCMgr(std::move(CCMgr)),
+ IndirectStubsMgr(IndirectStubsMgrBuilder()),
ObjectLayer(),
CompileLayer(ObjectLayer, orc::SimpleCompiler(TM)),
CODLayer(CompileLayer,
[](Function &F) { std::set<Function*> S; S.insert(&F); return S; },
*this->CCMgr, std::move(IndirectStubsMgrBuilder), false),
- IndirectStubsMgr(IndirectStubsMgrBuilder()),
CXXRuntimeOverrides([this](const std::string &S) { return mangle(S); }) {}
~OrcCBindingsStack() {
@@ -264,13 +264,13 @@ private:
DataLayout DL;
SectionMemoryManager CCMgrMemMgr;
+ std::unique_ptr<orc::IndirectStubsManager> IndirectStubsMgr;
+
std::unique_ptr<CompileCallbackMgr> CCMgr;
ObjLayerT ObjectLayer;
CompileLayerT CompileLayer;
CODLayerT CODLayer;
- std::unique_ptr<orc::IndirectStubsManager> IndirectStubsMgr;
-
std::vector<std::unique_ptr<GenericHandle>> GenericHandles;
std::vector<unsigned> FreeHandleIndexes;
OpenPOWER on IntegriCloud