diff --git a/compiler-rt/test/lsan/TestCases/Linux/leak_check_segv.cpp b/compiler-rt/test/lsan/TestCases/Linux/leak_check_segv.cpp --- a/compiler-rt/test/lsan/TestCases/Linux/leak_check_segv.cpp +++ b/compiler-rt/test/lsan/TestCases/Linux/leak_check_segv.cpp @@ -5,14 +5,16 @@ #include #include #include +#include char data[10 * 1024 * 1024]; int main() { + long pagesize_mask = sysconf(_SC_PAGESIZE) - 1; void *p = malloc(10 * 1024 * 1024); // surprise-surprise! - mprotect((void*)(((unsigned long)p + 4095) & ~4095), 16 * 1024, PROT_NONE); - mprotect((void*)(((unsigned long)data + 4095) & ~4095), 16 * 1024, PROT_NONE); + mprotect((void*)(((unsigned long)p + pagesize_mask) & ~pagesize_mask), 16 * 1024, PROT_NONE); + mprotect((void*)(((unsigned long)data + pagesize_mask) & ~pagesize_mask), 16 * 1024, PROT_NONE); __lsan_do_leak_check(); fprintf(stderr, "DONE\n"); }