summaryrefslogtreecommitdiff
path: root/lib/asan/asan_mapping.h
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2014-04-23 17:14:45 +0000
committerAlexander Potapenko <glider@google.com>2014-04-23 17:14:45 +0000
commit40d9edc87e3cdf8d093e38edd5cf0b4994aba6e6 (patch)
tree4957b9564428e331ba0342b74a2001fe53b37d1f /lib/asan/asan_mapping.h
parentf88f611450c6808f815ec12290658f74acb9d324 (diff)
[ASan] Move the shadow range on 32-bit iOS (and iOS Simulator)
to 0x40000000-0x60000000 to avoid address space clash with system libraries. The solution has been proposed by tahabekireren@gmail.com in https://code.google.com/p/address-sanitizer/issues/detail?id=210 This is also known to fix some Chromium iOS tests. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@207002 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/asan/asan_mapping.h')
-rw-r--r--lib/asan/asan_mapping.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/asan/asan_mapping.h b/lib/asan/asan_mapping.h
index feebb156c..8941475a9 100644
--- a/lib/asan/asan_mapping.h
+++ b/lib/asan/asan_mapping.h
@@ -67,7 +67,8 @@
// || `[0x00000000, 0x0aaa7fff]` || LowMem ||
static const u64 kDefaultShadowScale = 3;
-static const u64 kDefaultShadowOffset32 = 1ULL << 29;
+static const u64 kDefaultShadowOffset32 = 1ULL << 29; // 0x20000000
+static const u64 kIosShadowOffset32 = 1ULL << 30; // 0x40000000
static const u64 kDefaultShadowOffset64 = 1ULL << 44;
static const u64 kDefaultShort64bitShadowOffset = 0x7FFF8000; // < 2G.
static const u64 kAArch64_ShadowOffset64 = 1ULL << 36;
@@ -81,7 +82,11 @@ static const u64 kMIPS32_ShadowOffset32 = 0x0aaa8000;
# if defined(__mips__)
# define SHADOW_OFFSET kMIPS32_ShadowOffset32
# else
-# define SHADOW_OFFSET kDefaultShadowOffset32
+# if SANITIZER_IOS
+# define SHADOW_OFFSET kIosShadowOffset32
+# else
+# define SHADOW_OFFSET kDefaultShadowOffset32
+# endif
# endif
# else
# if defined(__aarch64__)