[llvm] 543790a - [ORC] Attempt to fix Windows bots after d3d9f7caf966.

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 3 20:16:07 PDT 2022


Author: Lang Hames
Date: 2022-10-03T20:15:58-07:00
New Revision: 543790add86a59377536903381256e5eface88eb

URL: https://github.com/llvm/llvm-project/commit/543790add86a59377536903381256e5eface88eb
DIFF: https://github.com/llvm/llvm-project/commit/543790add86a59377536903381256e5eface88eb.diff

LOG: [ORC] Attempt to fix Windows bots after d3d9f7caf966.

That patch failed to include an update to the Windows side of
ExecutorSharedMemoryMapperService.

Added: 
    

Modified: 
    llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp b/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp
index d876c717881d..671722decc57 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<ExecutorAddr> ExecutorSharedMemoryMapperService::initialize(
 #elif defined(_WIN32)
 
     DWORD NativeProt =
-        getWindowsProtectionFlags(fromWireProtectionFlags(Segment.Prot));
+        getWindowsProtectionFlags(Segment.AG.getMemProt());
 
     if (!VirtualProtect(Segment.Addr.toPtr<void *>(), Segment.Size, NativeProt,
                         &NativeProt))


        


More information about the llvm-commits mailing list