diff options
author | Etienne Bergeron <etienneb@google.com> | 2016-09-21 16:32:14 +0000 |
---|---|---|
committer | Etienne Bergeron <etienneb@google.com> | 2016-09-21 16:32:14 +0000 |
commit | d34ee76993e0a38de4a178e8ce9587367a9114c0 (patch) | |
tree | e479fc20e7489db760158004edcaba35e8963235 /llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | |
parent | 160fbc3f9544d8223733fa05f23a64558099ffdf (diff) | |
download | bcm5719-llvm-d34ee76993e0a38de4a178e8ce9587367a9114c0.tar.gz bcm5719-llvm-d34ee76993e0a38de4a178e8ce9587367a9114c0.zip |
[compiler-rt] Fix Asan build on Android
Summary:
The dynamic shadow code is not detected correctly on Android.
The android shadow seems to start at address zero.
The bug is introduced here:
https://reviews.llvm.org/D23363
Started here: https://build.chromium.org/p/chromium.fyi/builders/ClangToTAndroidASan/builds/4029
Likely due to an asan runtime change, filed https://llvm.org/bugs/show_bug.cgi?id=30462
From asan_mapping.h:
```
#if SANITIZER_WORDSIZE == 32
# if SANITIZER_ANDROID
# define SHADOW_OFFSET (0) <<---- HERE
# elif defined(__mips__)
```
Shadow address on android is 0.
From asan_rtl.c:
```
if (shadow_start == 0) {
[...]
shadow_start = FindAvailableMemoryRange(space_size, alignment, granularity);
}
```
We assumed that 0 is dynamic address.
On windows, the address was determined with:
```
# elif SANITIZER_WINDOWS64
# define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
# else
```
and __asan_shadow_memory_dynamic_address is initially zero.
Reviewers: rnk, eugenis, vitalybuka
Subscribers: kcc, tberghammer, danalbert, kubabrecka, dberris, llvm-commits, chrisha
Differential Revision: https://reviews.llvm.org/D24768
llvm-svn: 282085
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/LoopVectorize.cpp')
0 files changed, 0 insertions, 0 deletions