Skip to content

Commit 84dbfe1

Browse files
committed
[ASan] Replaced constants for SHADOW_OFFSET with defines.
Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D115214
1 parent 8aee783 commit 84dbfe1

File tree

1 file changed

+20
-32
lines changed

1 file changed

+20
-32
lines changed

compiler-rt/lib/asan/asan_mapping.h

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -157,22 +157,6 @@ static const u64 kDefaultShadowScale = ASAN_SHADOW_SCALE;
157157
static const u64 kDefaultShadowScale = 3;
158158
#endif
159159
static const u64 kDefaultShadowSentinel = ~(uptr)0;
160-
static const u64 kDefaultShadowOffset32 = 1ULL << 29; // 0x20000000
161-
static const u64 kDefaultShadowOffset64 = 1ULL << 44; // 0x100000000000
162-
static const u64 kDefaultShort64bitShadowOffset =
163-
0x7FFFFFFF & (~0xFFFULL << kDefaultShadowScale); // < 2G.
164-
static const u64 kAArch64_ShadowOffset64 = 1ULL << 36; // 0x1000000000
165-
static const u64 kRiscv64_ShadowOffset64 = 0xd55550000;
166-
static const u64 kMIPS32_ShadowOffset32 = 0x0aaa0000;
167-
static const u64 kMIPS64_ShadowOffset64 = 1ULL << 37; // 0x2000000000
168-
static const u64 kPPC64_ShadowOffset64 = 1ULL << 44; // 0x100000000000
169-
static const u64 kSystemZ_ShadowOffset64 = 1ULL << 52; // 0x10000000000000
170-
static const u64 kSPARC64_ShadowOffset64 = 1ULL << 43; // 0x80000000000
171-
static const u64 kFreeBSD_ShadowOffset32 = 1ULL << 30; // 0x40000000
172-
static const u64 kFreeBSD_ShadowOffset64 = 1ULL << 46; // 0x400000000000
173-
static const u64 kNetBSD_ShadowOffset32 = 1ULL << 30; // 0x40000000
174-
static const u64 kNetBSD_ShadowOffset64 = 1ULL << 46; // 0x400000000000
175-
static const u64 kWindowsShadowOffset32 = 3ULL << 28; // 0x30000000
176160

177161
#define SHADOW_SCALE kDefaultShadowScale
178162

@@ -182,52 +166,56 @@ static const u64 kWindowsShadowOffset32 = 3ULL << 28; // 0x30000000
182166
# if SANITIZER_ANDROID
183167
# define SHADOW_OFFSET_DYNAMIC
184168
# elif defined(__mips__)
185-
# define SHADOW_OFFSET_CONST kMIPS32_ShadowOffset32
169+
# define SHADOW_OFFSET_CONST 0x0aaa0000
186170
# elif SANITIZER_FREEBSD
187-
# define SHADOW_OFFSET_CONST kFreeBSD_ShadowOffset32
171+
# define SHADOW_OFFSET_CONST 0x40000000
188172
# elif SANITIZER_NETBSD
189-
# define SHADOW_OFFSET_CONST kNetBSD_ShadowOffset32
173+
# define SHADOW_OFFSET_CONST 0x40000000
190174
# elif SANITIZER_WINDOWS
191-
# define SHADOW_OFFSET_CONST kWindowsShadowOffset32
175+
# define SHADOW_OFFSET_CONST 0x30000000
192176
# elif SANITIZER_IOS
193177
# define SHADOW_OFFSET_DYNAMIC
194178
# else
195-
# define SHADOW_OFFSET_CONST kDefaultShadowOffset32
179+
# define SHADOW_OFFSET_CONST 0x20000000
196180
# endif
197181
#else
198182
# if SANITIZER_IOS
199183
# define SHADOW_OFFSET_DYNAMIC
200184
# elif SANITIZER_MAC && defined(__aarch64__)
201185
# define SHADOW_OFFSET_DYNAMIC
202186
# elif SANITIZER_RISCV64
203-
# define SHADOW_OFFSET_CONST kRiscv64_ShadowOffset64
187+
# define SHADOW_OFFSET_CONST 0x0000000d55550000
204188
# elif defined(__aarch64__)
205-
# define SHADOW_OFFSET_CONST kAArch64_ShadowOffset64
189+
# define SHADOW_OFFSET_CONST 0x0000001000000000
206190
# elif defined(__powerpc64__)
207-
# define SHADOW_OFFSET_CONST kPPC64_ShadowOffset64
191+
# define SHADOW_OFFSET_CONST 0x0000100000000000
208192
# elif defined(__s390x__)
209-
# define SHADOW_OFFSET_CONST kSystemZ_ShadowOffset64
193+
# define SHADOW_OFFSET_CONST 0x0010000000000000
210194
# elif SANITIZER_FREEBSD
211-
# define SHADOW_OFFSET_CONST kFreeBSD_ShadowOffset64
195+
# define SHADOW_OFFSET_CONST 0x0000400000000000
212196
# elif SANITIZER_NETBSD
213-
# define SHADOW_OFFSET_CONST kNetBSD_ShadowOffset64
197+
# define SHADOW_OFFSET_CONST 0x0000400000000000
214198
# elif SANITIZER_MAC
215-
# define SHADOW_OFFSET_CONST kDefaultShadowOffset64
199+
# define SHADOW_OFFSET_CONST 0x0000100000000000
216200
# elif defined(__mips64)
217-
# define SHADOW_OFFSET_CONST kMIPS64_ShadowOffset64
201+
# define SHADOW_OFFSET_CONST 0x0000002000000000
218202
# elif defined(__sparc__)
219-
# define SHADOW_OFFSET_CONST kSPARC64_ShadowOffset64
203+
# define SHADOW_OFFSET_CONST 0x0000080000000000
220204
# elif SANITIZER_WINDOWS64
221205
# define SHADOW_OFFSET_DYNAMIC
222206
# else
223-
# define SHADOW_OFFSET_CONST kDefaultShort64bitShadowOffset
207+
# define SHADOW_OFFSET_CONST \
208+
0x000000007FFFFFFF & (~0xFFFULL << kDefaultShadowScale)
224209
# endif
225210
#endif
226211

227212
#if defined(SHADOW_OFFSET_CONST)
228-
# define SHADOW_OFFSET SHADOW_OFFSET_CONST
213+
static const u64 kConstShadowOffset = SHADOW_OFFSET_CONST;
214+
# define SHADOW_OFFSET kConstShadowOffset
229215
#elif defined(SHADOW_OFFSET_DYNAMIC)
230216
# define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
217+
#else
218+
# error "SHADOW_OFFSET can't be determined."
231219
#endif
232220

233221
#if SANITIZER_ANDROID && defined(__arm__)

0 commit comments

Comments
 (0)