mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-15 00:38:42 +00:00
MemoryBuffer.cpp: Don't peek the next page if file is multiple of *physical* pagesize(4k) but is not multiple of AllocationGranularity(64k), when a null terminator is required, on cygwin and win32.
For example, r189780's SparcISelLowering.cpp has the size 98304. It crashed clang to touch a null terminator on cygwin. FIXME: It's not good to hardcode 4096 here. dwPageSize shows 4096. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189939 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a53ee67e5e
commit
81b135cc1e
@ -302,6 +302,15 @@ static bool shouldUseMmap(int FD,
|
|||||||
if (End != FileSize)
|
if (End != FileSize)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||||
|
// Don't peek the next page if file is multiple of *physical* pagesize(4k)
|
||||||
|
// but is not multiple of AllocationGranularity(64k),
|
||||||
|
// when a null terminator is required.
|
||||||
|
// FIXME: It's not good to hardcode 4096 here. dwPageSize shows 4096.
|
||||||
|
if ((FileSize & (4096 - 1)) == 0)
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Don't try to map files that are exactly a multiple of the system page size
|
// Don't try to map files that are exactly a multiple of the system page size
|
||||||
// if we need a null terminator.
|
// if we need a null terminator.
|
||||||
if ((FileSize & (PageSize -1)) == 0)
|
if ((FileSize & (PageSize -1)) == 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user