diff --git a/compiler-rt/lib/asan/asan_allocator.h b/compiler-rt/lib/asan/asan_allocator.h --- a/compiler-rt/lib/asan/asan_allocator.h +++ b/compiler-rt/lib/asan/asan_allocator.h @@ -17,6 +17,7 @@ #include "asan_flags.h" #include "asan_interceptors.h" #include "asan_internal.h" +#include "lsan/lsan_allocator.h" #include "sanitizer_common/sanitizer_allocator.h" #include "sanitizer_common/sanitizer_list.h" #include "sanitizer_common/sanitizer_platform.h" @@ -118,12 +119,9 @@ }; #if SANITIZER_CAN_USE_ALLOCATOR64 -# if SANITIZER_FUCHSIA -const uptr kAllocatorSpace = ~(uptr)0; -const uptr kAllocatorSize = 0x40000000000ULL; // 4T. -typedef DefaultSizeClassMap SizeClassMap; -# elif defined(__powerpc64__) +# if defined(__powerpc64__) const uptr kAllocatorSpace = ~(uptr)0; +// NOTE: This differs slightly from the LSan allocator size which is 4T. const uptr kAllocatorSize = 0x20000000000ULL; // 2T. typedef DefaultSizeClassMap SizeClassMap; # elif defined(__aarch64__) && SANITIZER_ANDROID @@ -150,8 +148,9 @@ const uptr kAllocatorSize = 0x8000000000ULL; // 500G typedef DefaultSizeClassMap SizeClassMap; # else -const uptr kAllocatorSpace = 0x600000000000ULL; -const uptr kAllocatorSize = 0x40000000000ULL; // 4T. +// Use LSan's allocator configs. +const uptr kAllocatorSpace = __lsan::kAllocatorSpace; +const uptr kAllocatorSize = __lsan::kAllocatorSize; typedef DefaultSizeClassMap SizeClassMap; # endif template