[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