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 @@ -118,12 +118,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,9 +147,10 @@ const uptr kAllocatorSize = 0x8000000000ULL; // 500G typedef DefaultSizeClassMap SizeClassMap; # else -const uptr kAllocatorSpace = 0x600000000000ULL; -const uptr kAllocatorSize = 0x40000000000ULL; // 4T. -typedef DefaultSizeClassMap SizeClassMap; +// Use LSan's allocator configs. +static const uptr kSpaceBeg = __lsan::kAllocatorSpace; +static const uptr kSpaceSize = __lsan::kAllocatorSize; +typedef __lsan::SizeClassMap SizeClassMap; # endif template struct AP64 { // Allocator64 parameters. Deliberately using a short name.