From ab1ade496cabd5972c5eb622e3dc7271d2654bc3 Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Thu, 16 Nov 2017 22:39:55 +0000 Subject: [PATCH] Fix some undefined beahvior in FileMapping. This was broken when building a 32-bit native toolchain, as shifting a size_t right by 32 is UB when sizeof(size_t) == 8. llvm-svn: 318462 --- llvm/lib/Support/Windows/Path.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc index f65ed5c..dd42055 100644 --- a/llvm/lib/Support/Windows/Path.inc +++ b/llvm/lib/Support/Windows/Path.inc @@ -734,8 +734,8 @@ std::error_code mapped_file_region::init(int FD, uint64_t Offset, HANDLE FileMappingHandle = ::CreateFileMappingW(FileHandle, 0, flprotect, - Size >> 32, - Size & 0xffffffff, + Hi_32(Size), + Lo_32(Size), 0); if (FileMappingHandle == NULL) { std::error_code ec = mapWindowsError(GetLastError()); -- 2.7.4