diff --git a/llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp b/llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp index 0e5ed8e3d1ce3..4fb349255f75c 100644 --- a/llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp +++ b/llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp @@ -40,8 +40,9 @@ Error toError(CWrapperFunctionResult R) { char *Content = Large ? R.Data.ValuePtr : R.Data.Value; if (Content[0]) { HasError = true; - ErrMsg.resize(R.Size - 1); - memcpy(&ErrMsg[0], Content + 1, R.Size - 1); + constexpr unsigned StrStart = 1 + sizeof(uint64_t); + ErrMsg.resize(R.Size - StrStart); + memcpy(&ErrMsg[0], Content + StrStart, R.Size - StrStart); } if (Large) free(R.Data.ValuePtr);