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 @@ -1,18 +1,22 @@ // Test that SIGSEGV during leak checking does not crash the process. // RUN: %clangxx_lsan -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s // UNSUPPORTED: ppc -#include +#include #include +#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"); }