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/include/llvm-c/OrcBindings.h | |
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/include/llvm-c/OrcBindings.h')
-rw-r--r-- | llvm/include/llvm-c/OrcBindings.h | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/llvm/include/llvm-c/OrcBindings.h b/llvm/include/llvm-c/OrcBindings.h index 92e6ca310b1..4a2fa26abd4 100644 --- a/llvm/include/llvm-c/OrcBindings.h +++ b/llvm/include/llvm-c/OrcBindings.h @@ -37,6 +37,11 @@ typedef uint64_t (*LLVMOrcSymbolResolverFn)(const char *Name, typedef uint64_t (*LLVMOrcLazyCompileCallbackFn)(LLVMOrcJITStackRef JITStack, void *CallbackCtx); +typedef enum { + LLVMOrcErrSuccess = 0, + LLVMOrcErrGeneric +} LLVMOrcErrorCode; + /** * Create an ORC JIT stack. * @@ -49,6 +54,14 @@ typedef uint64_t (*LLVMOrcLazyCompileCallbackFn)(LLVMOrcJITStackRef JITStack, LLVMOrcJITStackRef LLVMOrcCreateInstance(LLVMTargetMachineRef TM); /** + * Get the error message for the most recent error (if any). + * + * This message is owned by the ORC JIT Stack and will be freed when the stack + * is disposed of by LLVMOrcDisposeInstance. + */ +const char *LLVMOrcGetErrorMsg(LLVMOrcJITStackRef JITStack); + +/** * Mangle the given symbol. * Memory will be allocated for MangledSymbol to hold the result. The client */ @@ -58,7 +71,6 @@ void LLVMOrcGetMangledSymbol(LLVMOrcJITStackRef JITStack, char **MangledSymbol, /** * Dispose of a mangled symbol. */ - void LLVMOrcDisposeMangledSymbol(char *MangledSymbol); /** @@ -72,16 +84,16 @@ LLVMOrcCreateLazyCompileCallback(LLVMOrcJITStackRef JITStack, /** * Create a named indirect call stub. */ -void LLVMOrcCreateIndirectStub(LLVMOrcJITStackRef JITStack, - const char *StubName, - LLVMOrcTargetAddress InitAddr); +LLVMOrcErrorCode LLVMOrcCreateIndirectStub(LLVMOrcJITStackRef JITStack, + const char *StubName, + LLVMOrcTargetAddress InitAddr); /** * Set the pointer for the given indirect stub. */ -void LLVMOrcSetIndirectStubPointer(LLVMOrcJITStackRef JITStack, - const char *StubName, - LLVMOrcTargetAddress NewAddr); +LLVMOrcErrorCode LLVMOrcSetIndirectStubPointer(LLVMOrcJITStackRef JITStack, + const char *StubName, + LLVMOrcTargetAddress NewAddr); /** * Add module to be eagerly compiled. |