diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-11-16 02:52:19 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-11-16 02:52:19 +0000 |
commit | 396ed67950ce8559da1c7ea896a1cfe86fd3b27a (patch) | |
tree | a7e719809d4f5b0ae29e9c1ae3ac9544967af65f /llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp | |
parent | e6601fd30e0dd263af466a58bc6b09bfff1eed31 (diff) | |
download | bcm5719-llvm-396ed67950ce8559da1c7ea896a1cfe86fd3b27a.tar.gz bcm5719-llvm-396ed67950ce8559da1c7ea896a1cfe86fd3b27a.zip |
[asan] Fallback to non-ifunc dynamic shadow on android<22.
Summary: Android < 22 does not support ifunc.
Reviewers: pcc
Subscribers: srhines, kubamracek, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D40116
llvm-svn: 318369
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp index 9681de4e885..967464f989f 100644 --- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp @@ -565,7 +565,9 @@ static ShadowMapping getShadowMapping(Triple &TargetTriple, int LongSize, Mapping.OrShadowOffset = !IsAArch64 && !IsPPC64 && !IsSystemZ && !IsPS4CPU && !(Mapping.Offset & (Mapping.Offset - 1)) && Mapping.Offset != kDynamicShadowSentinel; - Mapping.InGlobal = ClWithIfunc && IsAndroid && IsArmOrThumb; + bool IsAndroidWithIfuncSupport = + IsAndroid && !TargetTriple.isAndroidVersionLT(21); + Mapping.InGlobal = ClWithIfunc && IsAndroidWithIfuncSupport && IsArmOrThumb; return Mapping; } |