From 8ad735a538bda0ca42a18d4e6917d54e6dedb290 Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Wed, 29 Jul 2015 18:22:25 +0000 Subject: [PATCH] [asan] Remove special case mapping on Android/AArch64. ASan shadow on Android starts at address 0 for both historic and performance reasons. This is possible because the platform mandates -pie, which makes lower memory region always available. This is not such a good idea on 64-bit platforms because of MAP_32BIT incompatibility. This patch changes Android/AArch64 mapping to be the same as that of Linux/AAarch64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243548 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Instrumentation/AddressSanitizer.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/lib/Transforms/Instrumentation/AddressSanitizer.cpp index 5dde5fed0d2..47b736f3cd1 100644 --- a/lib/Transforms/Instrumentation/AddressSanitizer.cpp +++ b/lib/Transforms/Instrumentation/AddressSanitizer.cpp @@ -340,12 +340,12 @@ static ShadowMapping getShadowMapping(Triple &TargetTriple, int LongSize, ShadowMapping Mapping; - if (IsAndroid) { + if (LongSize == 32) { // Android is always PIE, which means that the beginning of the address // space is always available. - Mapping.Offset = 0; - } else if (LongSize == 32) { - if (IsMIPS32) + if (IsAndroid) + Mapping.Offset = 0; + else if (IsMIPS32) Mapping.Offset = kMIPS32_ShadowOffset32; else if (IsFreeBSD) Mapping.Offset = kFreeBSD_ShadowOffset32; -- 2.34.1