From aabc4b13e8c9c1c17cb6ee0975f54e816fc6da8a Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Wed, 20 Jul 2022 15:38:34 -0700 Subject: [PATCH] [ORC] Don't try to copy from an empty segment in SimpleExecutorMemoryManager. Since 67220c2ad72e empty SPSSequences deserialize to default-constructed ArrayRefs, which have a null data field. We need to check for this to avoid memcpy'ing from a nullptr. This should fix the bot failure in https://lab.llvm.org/buildbot/#/builders/85/builds/9323 --- .../ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp b/llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp index 7cadf3b..c848dd6 100644 --- a/llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp +++ b/llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp @@ -126,7 +126,8 @@ Error SimpleExecutorMemoryManager::finalize(tpctypes::FinalizeRequest &FR) { inconvertibleErrorCode())); char *Mem = Seg.Addr.toPtr(); - memcpy(Mem, Seg.Content.data(), Seg.Content.size()); + if (!Seg.Content.empty()) + memcpy(Mem, Seg.Content.data(), Seg.Content.size()); memset(Mem + Seg.Content.size(), 0, Seg.Size - Seg.Content.size()); assert(Seg.Size <= std::numeric_limits::max()); if (auto EC = sys::Memory::protectMappedMemory( -- 2.7.4