[asan] Fix shadow mapping on Android/AArch64.

Instrumentation and the runtime library were in disagreement about
ASan shadow offset on Android/AArch64.

This fixes a large number of existing tests on Android/AArch64.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242595 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evgeniy Stepanov 2015-07-17 23:51:18 +00:00
parent 6f6ca40ef0
commit dc10cc86fd

View File

@ -337,10 +337,12 @@ static ShadowMapping getShadowMapping(Triple &TargetTriple, int LongSize,
ShadowMapping Mapping;
if (LongSize == 32) {
if (IsAndroid)
Mapping.Offset = 0;
else if (IsMIPS32)
if (IsAndroid) {
// Android is always PIE, which means that the beginning of the address
// space is always available.
Mapping.Offset = 0;
} else if (LongSize == 32) {
if (IsMIPS32)
Mapping.Offset = kMIPS32_ShadowOffset32;
else if (IsFreeBSD)
Mapping.Offset = kFreeBSD_ShadowOffset32;