[compiler-rt] a208ad5 - sanitizer_common: Use void* for madvise first argument on Solaris.
Peter Collingbourne via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 19 10:56:10 PDT 2020
Author: Peter Collingbourne
Date: 2020-08-19T10:55:55-07:00
New Revision: a208ad5ddb5bbcf773dae82d37755dc109dab483
URL: https://github.com/llvm/llvm-project/commit/a208ad5ddb5bbcf773dae82d37755dc109dab483
DIFF: https://github.com/llvm/llvm-project/commit/a208ad5ddb5bbcf773dae82d37755dc109dab483.diff
LOG: sanitizer_common: Use void* for madvise first argument on Solaris.
Differential Revision: https://reviews.llvm.org/D86166
Added:
Modified:
compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp
Removed:
################################################################################
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp
index cce179a0b177..7f9a3e936da7 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp
@@ -76,10 +76,16 @@ DECLARE__REAL_AND_INTERNAL(int, mprotect, void *addr, uptr length, int prot) {
// Illumos' declaration of madvise cannot be made visible if _XOPEN_SOURCE
// is defined as g++ does on Solaris.
-extern "C" int madvise(caddr_t, size_t, int);
+//
+// This declaration is consistent with Solaris 11.4. Both Illumos and Solaris
+// versions older than 11.4 declared madvise with a caddr_t as the first
+// argument, but we don't currently support Solaris versions older than 11.4,
+// and as mentioned above the declaration is not visible on Illumos so we can
+// use any declaration we like on Illumos.
+extern "C" int madvise(void *, size_t, int);
int internal_madvise(uptr addr, uptr length, int advice) {
- return madvise((caddr_t)addr, length, advice);
+ return madvise((void *)addr, length, advice);
}
DECLARE__REAL_AND_INTERNAL(uptr, close, fd_t fd) {
More information about the llvm-commits
mailing list