From: Lang Hames Date: Tue, 4 Oct 2022 03:02:05 +0000 (-0700) Subject: [ORC] Attempt to fix Windows bots after d3d9f7caf966. X-Git-Tag: upstream/17.0.6~31700 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=543790add86a59377536903381256e5eface88eb;p=platform%2Fupstream%2Fllvm.git [ORC] Attempt to fix Windows bots after d3d9f7caf966. That patch failed to include an update to the Windows side of ExecutorSharedMemoryMapperService. --- diff --git a/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp b/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp index d876c71..671722d 100644 --- a/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp +++ b/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp @@ -22,26 +22,21 @@ #endif #if defined(_WIN32) -static DWORD getWindowsProtectionFlags(unsigned Flags) { - switch (Flags & llvm::sys::Memory::MF_RWE_MASK) { - case llvm::sys::Memory::MF_READ: +static DWORD getWindowsProtectionFlags(MemProt MP) { + if (MP == MemProt::Read) return PAGE_READONLY; - case llvm::sys::Memory::MF_WRITE: + if (MP == MemProt::Write || + MP == (MemProt::Write | MemProt::Read)) { // Note: PAGE_WRITE is not supported by VirtualProtect return PAGE_READWRITE; - case llvm::sys::Memory::MF_READ | llvm::sys::Memory::MF_WRITE: - return PAGE_READWRITE; - case llvm::sys::Memory::MF_READ | llvm::sys::Memory::MF_EXEC: + } + if (MP == (MemProt::Read | MemProt::Exec)) return PAGE_EXECUTE_READ; - case llvm::sys::Memory::MF_READ | llvm::sys::Memory::MF_WRITE | - llvm::sys::Memory::MF_EXEC: + if (MP == (MemProt::Read | MemProt::Write | MemProt::Exec)) return PAGE_EXECUTE_READWRITE; - case llvm::sys::Memory::MF_EXEC: + if (MP == MpmProt::Exec) return PAGE_EXECUTE; - default: - llvm_unreachable("Illegal memory protection flag specified!"); - } - // Provide a default return value as required by some compilers. + return PAGE_NOACCESS; } #endif @@ -150,7 +145,7 @@ Expected ExecutorSharedMemoryMapperService::initialize( #elif defined(_WIN32) DWORD NativeProt = - getWindowsProtectionFlags(fromWireProtectionFlags(Segment.Prot)); + getWindowsProtectionFlags(Segment.AG.getMemProt()); if (!VirtualProtect(Segment.Addr.toPtr(), Segment.Size, NativeProt, &NativeProt))