diff options
author | Lang Hames <lhames@gmail.com> | 2024-05-09 23:20:31 +1000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2024-05-09 23:24:45 +1000 |
commit | cbf1535cc813b2f226498d974c43675832abc233 (patch) | |
tree | 8e8fa787e4e397e5451392f3016b990aeae1fba3 /llvm/lib/ExecutionEngine | |
parent | c73516af10f800d0d5641651eefce128b866a155 (diff) | |
download | llvm-cbf1535cc813b2f226498d974c43675832abc233.zip llvm-cbf1535cc813b2f226498d974c43675832abc233.tar.gz llvm-cbf1535cc813b2f226498d974c43675832abc233.tar.bz2 |
[ORC] Fix fall-through in error case in EPCGenericDylibManager::lookupAsync.
In the event of a serialization error (e.g. due to a network dropout) we should
only run the Complete handler once, passing the serialization error value.
No test-case: This would require a deliberately injected failure in a
remote-JIT test and we don't have the infrastructure for that at the moment.
rdar://126772381
Diffstat (limited to 'llvm/lib/ExecutionEngine')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/EPCGenericDylibManager.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/EPCGenericDylibManager.cpp b/llvm/lib/ExecutionEngine/Orc/EPCGenericDylibManager.cpp index 6a7cab4..7c0d890 100644 --- a/llvm/lib/ExecutionEngine/Orc/EPCGenericDylibManager.cpp +++ b/llvm/lib/ExecutionEngine/Orc/EPCGenericDylibManager.cpp @@ -109,6 +109,7 @@ void EPCGenericDylibManager::lookupAsync(tpctypes::DylibHandle H, if (SerializationErr) { cantFail(Result.takeError()); Complete(std::move(SerializationErr)); + return; } Complete(std::move(Result)); }, |