[compiler-rt] lsan: fix allocator on arm64 Android (PR #165656)

via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 29 23:33:49 PDT 2025


https://github.com/quic-likaid updated https://github.com/llvm/llvm-project/pull/165656

>From 44c366589ec399d6fe25bda599f643107d5ef4bb Mon Sep 17 00:00:00 2001
From: Kevin Ding <likaid at qti.qualcomm.com>
Date: Wed, 29 Oct 2025 15:19:54 +0800
Subject: [PATCH 1/2] lsan: fix allocator on arm64 Android

The default config is too large for arm64 Android devices, which are
typically configured with 39-bit address space. This change brings it
inline with sanitizer_allocator_test.cpp.
---
 compiler-rt/lib/lsan/lsan_allocator.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/compiler-rt/lib/lsan/lsan_allocator.h b/compiler-rt/lib/lsan/lsan_allocator.h
index 556b9f56a4a4a..3a358cb4505c1 100644
--- a/compiler-rt/lib/lsan/lsan_allocator.h
+++ b/compiler-rt/lib/lsan/lsan_allocator.h
@@ -93,6 +93,10 @@ using LSanSizeClassMap = DefaultSizeClassMap;
 const uptr kAllocatorSpace = 0x600000000000ULL;
 const uptr kAllocatorSize  = 0x40000000000ULL;  // 4T.
 using LSanSizeClassMap = DefaultSizeClassMap;
+#  elif SANITIZER_ANDROID && defined(__aarch64__)
+const uptr kAllocatorSpace = 0x3000000000ULL;
+const uptr kAllocatorSize  = 0x2000000000ULL;
+using LSanSizeClassMap = VeryCompactSizeClassMap;
 #  else
 const uptr kAllocatorSpace = 0x500000000000ULL;
 const uptr kAllocatorSize = 0x40000000000ULL;  // 4T.

>From 75755311d5189c9ddc22420ff155c048bc5bd274 Mon Sep 17 00:00:00 2001
From: Kevin Ding <likaid at qti.qualcomm.com>
Date: Thu, 30 Oct 2025 14:33:01 +0800
Subject: [PATCH 2/2] fix code formatter failure

---
 compiler-rt/lib/lsan/lsan_allocator.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler-rt/lib/lsan/lsan_allocator.h b/compiler-rt/lib/lsan/lsan_allocator.h
index 3a358cb4505c1..2d0ea0b46fe0e 100644
--- a/compiler-rt/lib/lsan/lsan_allocator.h
+++ b/compiler-rt/lib/lsan/lsan_allocator.h
@@ -95,7 +95,7 @@ const uptr kAllocatorSize  = 0x40000000000ULL;  // 4T.
 using LSanSizeClassMap = DefaultSizeClassMap;
 #  elif SANITIZER_ANDROID && defined(__aarch64__)
 const uptr kAllocatorSpace = 0x3000000000ULL;
-const uptr kAllocatorSize  = 0x2000000000ULL;
+const uptr kAllocatorSize = 0x2000000000ULL;
 using LSanSizeClassMap = VeryCompactSizeClassMap;
 #  else
 const uptr kAllocatorSpace = 0x500000000000ULL;



More information about the llvm-commits mailing list