diff options
author | Lang Hames <lhames@gmail.com> | 2016-04-25 19:56:45 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2016-04-25 19:56:45 +0000 |
commit | ef5a0ee2c3dad1c0e2fc51cf260a76d2acadf063 (patch) | |
tree | b64ecf2ee46a302e33d6348b66917baf1bec1f2d /llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp | |
parent | 074ea2851c4a4c5afeba2390d905eca062d66096 (diff) | |
download | bcm5719-llvm-ef5a0ee2c3dad1c0e2fc51cf260a76d2acadf063.tar.gz bcm5719-llvm-ef5a0ee2c3dad1c0e2fc51cf260a76d2acadf063.zip |
[ORC] Thread Error/Expected through the RPC library.
This replaces use of std::error_code and ErrorOr in the ORC RPC support library
with Error and Expected. This required updating the OrcRemoteTarget API, Client,
and server code, as well as updating the Orc C API.
This patch also fixes several instances where Errors were dropped.
llvm-svn: 267457
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp b/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp index d2379cd441d..565a9d03ec9 100644 --- a/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp +++ b/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp @@ -28,6 +28,11 @@ LLVMOrcJITStackRef LLVMOrcCreateInstance(LLVMTargetMachineRef TM) { return wrap(JITStack); } +const char *LLVMOrcGetErrorMsg(LLVMOrcJITStackRef JITStack) { + OrcCBindingsStack &J = *unwrap(JITStack); + return J.getErrorMessage().c_str(); +} + void LLVMOrcGetMangledSymbol(LLVMOrcJITStackRef JITStack, char **MangledName, const char *SymbolName) { OrcCBindingsStack &J = *unwrap(JITStack); @@ -48,18 +53,18 @@ LLVMOrcCreateLazyCompileCallback(LLVMOrcJITStackRef JITStack, return J.createLazyCompileCallback(Callback, CallbackCtx); } -void LLVMOrcCreateIndirectStub(LLVMOrcJITStackRef JITStack, - const char *StubName, - LLVMOrcTargetAddress InitAddr) { +LLVMOrcErrorCode LLVMOrcCreateIndirectStub(LLVMOrcJITStackRef JITStack, + const char *StubName, + LLVMOrcTargetAddress InitAddr) { OrcCBindingsStack &J = *unwrap(JITStack); - J.createIndirectStub(StubName, InitAddr); + return J.createIndirectStub(StubName, InitAddr); } -void LLVMOrcSetIndirectStubPointer(LLVMOrcJITStackRef JITStack, - const char *StubName, - LLVMOrcTargetAddress NewAddr) { +LLVMOrcErrorCode LLVMOrcSetIndirectStubPointer(LLVMOrcJITStackRef JITStack, + const char *StubName, + LLVMOrcTargetAddress NewAddr) { OrcCBindingsStack &J = *unwrap(JITStack); - J.setIndirectStubPointer(StubName, NewAddr); + return J.setIndirectStubPointer(StubName, NewAddr); } LLVMOrcModuleHandle |