diff options
author | Kostya Serebryany <kcc@google.com> | 2013-01-23 13:27:43 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2013-01-23 13:27:43 +0000 |
commit | 8f267137c21cb984c84268f64a5782eb9699004c (patch) | |
tree | 3f5406e63ee7ed43d70bd14959f855fbfd8acf2d /compiler-rt/lib/asan/asan_mapping.h | |
parent | 420d7d333e593320613889eadb66bfe16b591908 (diff) | |
download | bcm5719-llvm-8f267137c21cb984c84268f64a5782eb9699004c.tar.gz bcm5719-llvm-8f267137c21cb984c84268f64a5782eb9699004c.zip |
[asan] initialize kHighMemEnd at startup (instead of at compile time) to simplify further changes for various address space layouts. Fix asan_allocator2 for PowerPC (tested on 44-bit address space)
llvm-svn: 173260
Diffstat (limited to 'compiler-rt/lib/asan/asan_mapping.h')
-rw-r--r-- | compiler-rt/lib/asan/asan_mapping.h | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/compiler-rt/lib/asan/asan_mapping.h b/compiler-rt/lib/asan/asan_mapping.h index 2b77e24e5c7..06efabee624 100644 --- a/compiler-rt/lib/asan/asan_mapping.h +++ b/compiler-rt/lib/asan/asan_mapping.h @@ -43,20 +43,9 @@ extern SANITIZER_INTERFACE_ATTRIBUTE uptr __asan_mapping_offset; #endif // ASAN_FLEXIBLE_MAPPING_AND_OFFSET #define SHADOW_GRANULARITY (1ULL << SHADOW_SCALE) -#define MEM_TO_SHADOW(mem) (((mem) >> SHADOW_SCALE) | (SHADOW_OFFSET)) +#define MEM_TO_SHADOW(mem) (((mem) >> SHADOW_SCALE) + (SHADOW_OFFSET)) #define SHADOW_TO_MEM(shadow) (((shadow) - SHADOW_OFFSET) << SHADOW_SCALE) -#if SANITIZER_WORDSIZE == 64 -# if defined(__powerpc64__) - static const uptr kHighMemEnd = 0x00000fffffffffffUL; -# else - static const uptr kHighMemEnd = 0x00007fffffffffffUL; -# endif -#else // SANITIZER_WORDSIZE == 32 - static const uptr kHighMemEnd = 0xffffffff; -#endif // SANITIZER_WORDSIZE - - #define kLowMemBeg 0 #define kLowMemEnd (SHADOW_OFFSET ? SHADOW_OFFSET - 1 : 0) @@ -78,6 +67,8 @@ extern SANITIZER_INTERFACE_ATTRIBUTE uptr __asan_mapping_offset; namespace __asan { +extern uptr kHighMemEnd; // Initialized in __asan_init. + static inline bool AddrIsInLowMem(uptr a) { return a < kLowMemEnd; } |