diff options
author | Lang Hames <lhames@gmail.com> | 2018-03-28 03:41:45 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2018-03-28 03:41:45 +0000 |
commit | a95b0df5eddbe7fa1e9f8fe0b1ff62427e1c0318 (patch) | |
tree | f51738f9e554267507fd5b0f1c0bfc2ac6ec042a /llvm/lib | |
parent | 816127ea17edae0c7e2d5224d86e98181a1c602c (diff) | |
download | bcm5719-llvm-a95b0df5eddbe7fa1e9f8fe0b1ff62427e1c0318.tar.gz bcm5719-llvm-a95b0df5eddbe7fa1e9f8fe0b1ff62427e1c0318.zip |
[ORC] Fix ORC on platforms without indirection support.
Previously this crashed because a nullptr (returned by
createLocalIndirectStubsManagerBuilder() on platforms without
indirection support) functor was unconditionally invoked.
Patch by Andres Freund. Thanks Andres!
llvm-svn: 328687
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp index 68397beae63..08aa3a8ce52 100644 --- a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp +++ b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp @@ -54,7 +54,11 @@ createLocalCompileCallbackManager(const Triple &T, std::function<std::unique_ptr<IndirectStubsManager>()> createLocalIndirectStubsManagerBuilder(const Triple &T) { switch (T.getArch()) { - default: return nullptr; + default: + return [](){ + return llvm::make_unique< + orc::LocalIndirectStubsManager<orc::OrcGenericABI>>(); + }; case Triple::aarch64: return [](){ |