summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2014-03-26 18:19:27 +0000
committerJuergen Ributzka <juergen@apple.com>2014-03-26 18:19:27 +0000
commit50c385683ce74a2ae7f348659844e3a03cc8e7c8 (patch)
tree0b9b83540c9f46898045c1cc60ef4d1b2bd4dc06 /lib
parent65a3ced86f2504215f83d35ed1530eb5072cc5ec (diff)
downloadllvm-50c385683ce74a2ae7f348659844e3a03cc8e7c8.tar.gz
llvm-50c385683ce74a2ae7f348659844e3a03cc8e7c8.tar.bz2
llvm-50c385683ce74a2ae7f348659844e3a03cc8e7c8.tar.xz
[MCJIT] Check if there have been errors during RuntimeDyld execution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204837 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/ExecutionEngine/MCJIT/MCJIT.cpp2
-rw-r--r--lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/ExecutionEngine/MCJIT/MCJIT.cpp b/lib/ExecutionEngine/MCJIT/MCJIT.cpp
index aa5f724024..49b6727561 100644
--- a/lib/ExecutionEngine/MCJIT/MCJIT.cpp
+++ b/lib/ExecutionEngine/MCJIT/MCJIT.cpp
@@ -115,7 +115,7 @@ bool MCJIT::removeModule(Module *M) {
void MCJIT::addObjectFile(object::ObjectFile *Obj) {
ObjectImage *LoadedObject = Dyld.loadObject(Obj);
- if (!LoadedObject)
+ if (!LoadedObject || Dyld.hasError())
report_fatal_error(Dyld.getErrorString());
LoadedObjects.push_back(LoadedObject);
diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
index 7f35083748..12cd81931f 100644
--- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
+++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
@@ -761,6 +761,8 @@ void RuntimeDyld::mapSectionAddress(const void *LocalAddress,
Dyld->mapSectionAddress(LocalAddress, TargetAddress);
}
+bool RuntimeDyld::hasError() { return Dyld->hasError(); }
+
StringRef RuntimeDyld::getErrorString() { return Dyld->getErrorString(); }
void RuntimeDyld::registerEHFrames() {