@@ -157,22 +157,6 @@ static const u64 kDefaultShadowScale = ASAN_SHADOW_SCALE;
157
157
static const u64 kDefaultShadowScale = 3 ;
158
158
#endif
159
159
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
176
160
177
161
#define SHADOW_SCALE kDefaultShadowScale
178
162
@@ -182,52 +166,56 @@ static const u64 kWindowsShadowOffset32 = 3ULL << 28; // 0x30000000
182
166
# if SANITIZER_ANDROID
183
167
# define SHADOW_OFFSET_DYNAMIC
184
168
# elif defined(__mips__)
185
- # define SHADOW_OFFSET_CONST kMIPS32_ShadowOffset32
169
+ # define SHADOW_OFFSET_CONST 0x0aaa0000
186
170
# elif SANITIZER_FREEBSD
187
- # define SHADOW_OFFSET_CONST kFreeBSD_ShadowOffset32
171
+ # define SHADOW_OFFSET_CONST 0x40000000
188
172
# elif SANITIZER_NETBSD
189
- # define SHADOW_OFFSET_CONST kNetBSD_ShadowOffset32
173
+ # define SHADOW_OFFSET_CONST 0x40000000
190
174
# elif SANITIZER_WINDOWS
191
- # define SHADOW_OFFSET_CONST kWindowsShadowOffset32
175
+ # define SHADOW_OFFSET_CONST 0x30000000
192
176
# elif SANITIZER_IOS
193
177
# define SHADOW_OFFSET_DYNAMIC
194
178
# else
195
- # define SHADOW_OFFSET_CONST kDefaultShadowOffset32
179
+ # define SHADOW_OFFSET_CONST 0x20000000
196
180
# endif
197
181
#else
198
182
# if SANITIZER_IOS
199
183
# define SHADOW_OFFSET_DYNAMIC
200
184
# elif SANITIZER_MAC && defined(__aarch64__)
201
185
# define SHADOW_OFFSET_DYNAMIC
202
186
# elif SANITIZER_RISCV64
203
- # define SHADOW_OFFSET_CONST kRiscv64_ShadowOffset64
187
+ # define SHADOW_OFFSET_CONST 0x0000000d55550000
204
188
# elif defined(__aarch64__)
205
- # define SHADOW_OFFSET_CONST kAArch64_ShadowOffset64
189
+ # define SHADOW_OFFSET_CONST 0x0000001000000000
206
190
# elif defined(__powerpc64__)
207
- # define SHADOW_OFFSET_CONST kPPC64_ShadowOffset64
191
+ # define SHADOW_OFFSET_CONST 0x0000100000000000
208
192
# elif defined(__s390x__)
209
- # define SHADOW_OFFSET_CONST kSystemZ_ShadowOffset64
193
+ # define SHADOW_OFFSET_CONST 0x0010000000000000
210
194
# elif SANITIZER_FREEBSD
211
- # define SHADOW_OFFSET_CONST kFreeBSD_ShadowOffset64
195
+ # define SHADOW_OFFSET_CONST 0x0000400000000000
212
196
# elif SANITIZER_NETBSD
213
- # define SHADOW_OFFSET_CONST kNetBSD_ShadowOffset64
197
+ # define SHADOW_OFFSET_CONST 0x0000400000000000
214
198
# elif SANITIZER_MAC
215
- # define SHADOW_OFFSET_CONST kDefaultShadowOffset64
199
+ # define SHADOW_OFFSET_CONST 0x0000100000000000
216
200
# elif defined(__mips64)
217
- # define SHADOW_OFFSET_CONST kMIPS64_ShadowOffset64
201
+ # define SHADOW_OFFSET_CONST 0x0000002000000000
218
202
# elif defined(__sparc__)
219
- # define SHADOW_OFFSET_CONST kSPARC64_ShadowOffset64
203
+ # define SHADOW_OFFSET_CONST 0x0000080000000000
220
204
# elif SANITIZER_WINDOWS64
221
205
# define SHADOW_OFFSET_DYNAMIC
222
206
# else
223
- # define SHADOW_OFFSET_CONST kDefaultShort64bitShadowOffset
207
+ # define SHADOW_OFFSET_CONST \
208
+ 0x000000007FFFFFFF & (~0xFFFULL << kDefaultShadowScale )
224
209
# endif
225
210
#endif
226
211
227
212
#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
229
215
#elif defined(SHADOW_OFFSET_DYNAMIC)
230
216
# define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
217
+ #else
218
+ # error "SHADOW_OFFSET can't be determined."
231
219
#endif
232
220
233
221
#if SANITIZER_ANDROID && defined(__arm__)
0 commit comments