summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/sanitizer_platform.h
diff options
context:
space:
mode:
authorKuba Mracek <mracek@apple.com>2017-12-14 00:04:30 +0000
committerKuba Mracek <mracek@apple.com>2017-12-14 00:04:30 +0000
commitf097a8484d5a2c0732108351440984b93fdaa13d (patch)
tree585938fa9ff6992cdab723e0a88336dcbd7e51f3 /lib/sanitizer_common/sanitizer_platform.h
parent589f4670016442ce76b8e8ff65c2ab690cb6d511 (diff)
[sanitizer] Use MADV_FREE on Darwin/BSD to release pages to the OS
MADV_DONTNEED on Linux actually mark the pages as free to be overwritten with zeroes, but on Darwin and BSD, it's just an advisory flag (the OS cannot discard the content). We should use MADV_FREE on Darwin and BSD. Differential Revision: https://reviews.llvm.org/D40666 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@320659 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_platform.h')
-rw-r--r--lib/sanitizer_common/sanitizer_platform.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/sanitizer_common/sanitizer_platform.h b/lib/sanitizer_common/sanitizer_platform.h
index d549827b4..e4e00bdfc 100644
--- a/lib/sanitizer_common/sanitizer_platform.h
+++ b/lib/sanitizer_common/sanitizer_platform.h
@@ -282,5 +282,10 @@
# define SANITIZER_SUPPRESS_LEAK_ON_PTHREAD_EXIT 0
#endif
+#if SANITIZER_FREEBSD || SANITIZER_MAC || SANITIZER_NETBSD
+# define SANITIZER_MADVISE_DONTNEED MADV_FREE
+#else
+# define SANITIZER_MADVISE_DONTNEED MADV_DONTNEED
+#endif
#endif // SANITIZER_PLATFORM_H