summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/asan/asan_mapping.h
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2013-09-16 15:45:06 +0000
committerAlexey Samsonov <samsonov@google.com>2013-09-16 15:45:06 +0000
commit48e256466a8e521df3998a458120bf5608527b72 (patch)
tree5fcd358ad2b3301de8965dce22bb632dd3946616 /compiler-rt/lib/asan/asan_mapping.h
parentad7925e0c10622c25f22060967ae5967e7cbb950 (diff)
downloadbcm5719-llvm-48e256466a8e521df3998a458120bf5608527b72.tar.gz
bcm5719-llvm-48e256466a8e521df3998a458120bf5608527b72.zip
[ASan] Check that getSymbolizer() is defined. Turn magic mapping constants into named variables
llvm-svn: 190787
Diffstat (limited to 'compiler-rt/lib/asan/asan_mapping.h')
-rw-r--r--compiler-rt/lib/asan/asan_mapping.h24
1 files changed, 14 insertions, 10 deletions
diff --git a/compiler-rt/lib/asan/asan_mapping.h b/compiler-rt/lib/asan/asan_mapping.h
index acbed469255..d858e5e37ea 100644
--- a/compiler-rt/lib/asan/asan_mapping.h
+++ b/compiler-rt/lib/asan/asan_mapping.h
@@ -57,32 +57,36 @@
// || `[0x0aaa8000, 0x0bffcfff]` || LowShadow ||
// || `[0x00000000, 0x0aaa7fff]` || LowMem ||
+static const u64 kDefaultShadowScale = 3;
+static const u64 kDefaultShadowOffset32 = 1ULL << 29;
+static const u64 kDefaultShadowOffset64 = 1ULL << 44;
+static const u64 kDefaultShort64bitShadowOffset = 0x7FFF8000; // < 2G.
+static const u64 kPPC64_ShadowOffset64 = 1ULL << 41;
+static const u64 kMIPS32_ShadowOffset32 = 0x0aaa8000;
+
#if ASAN_FLEXIBLE_MAPPING_AND_OFFSET == 1
extern SANITIZER_INTERFACE_ATTRIBUTE uptr __asan_mapping_scale;
extern SANITIZER_INTERFACE_ATTRIBUTE uptr __asan_mapping_offset;
# define SHADOW_SCALE (__asan_mapping_scale)
# define SHADOW_OFFSET (__asan_mapping_offset)
#else
+# define SHADOW_SCALE kDefaultShadowScale
# if SANITIZER_ANDROID
-# define SHADOW_SCALE (3)
# define SHADOW_OFFSET (0)
# else
-# define SHADOW_SCALE (3)
# if SANITIZER_WORDSIZE == 32
# if defined(__mips__)
-# define SHADOW_OFFSET 0x0aaa8000
+# define SHADOW_OFFSET kMIPS32_ShadowOffset32
# else
-# define SHADOW_OFFSET (1 << 29)
+# define SHADOW_OFFSET kDefaultShadowOffset32
# endif
# else
# if defined(__powerpc64__)
-# define SHADOW_OFFSET (1ULL << 41)
+# define SHADOW_OFFSET kPPC64_ShadowOffset64
+# elif SANITIZER_MAC
+# define SHADOW_OFFSET kDefaultShadowOffset64
# else
-# if SANITIZER_MAC
-# define SHADOW_OFFSET (1ULL << 44)
-# else
-# define SHADOW_OFFSET 0x7fff8000ULL
-# endif
+# define SHADOW_OFFSET kDefaultShort64bitShadowOffset
# endif
# endif
# endif
OpenPOWER on IntegriCloud