diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2018-12-13 23:47:50 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2018-12-13 23:47:50 +0000 |
commit | eb238ecf0f08cfa2677dd3485a3e969f1b2b5e84 (patch) | |
tree | f42db8c28a2240f84dff40f93fe58dde7292be0b /llvm | |
parent | 6fe51ac9737064fc3b92203a39e5f0cdf0176373 (diff) | |
download | bcm5719-llvm-eb238ecf0f08cfa2677dd3485a3e969f1b2b5e84.tar.gz bcm5719-llvm-eb238ecf0f08cfa2677dd3485a3e969f1b2b5e84.zip |
Revert "[hwasan] Android: Switch from TLS_SLOT_TSAN(8) to TLS_SLOT_SANITIZER(6)"
Breaks sanitizer-android buildbot.
This reverts commit af8443a984c3b491c9ca2996b8d126ea31e5ecbe.
llvm-svn: 349092
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp | 4 | ||||
-rw-r--r-- | llvm/test/Instrumentation/HWAddressSanitizer/prologue.ll | 4 |
2 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp index 0123b28773a..91021604169 100644 --- a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp @@ -703,12 +703,10 @@ Value *HWAddressSanitizer::untagPointer(IRBuilder<> &IRB, Value *PtrLong) { Value *HWAddressSanitizer::getHwasanThreadSlotPtr(IRBuilder<> &IRB, Type *Ty) { Module *M = IRB.GetInsertBlock()->getParent()->getParent(); if (TargetTriple.isAArch64() && TargetTriple.isAndroid()) { - // Android provides a fixed TLS slot for sanitizers. See TLS_SLOT_SANITIZER - // in Bionic's libc/private/bionic_tls.h. Function *ThreadPointerFunc = Intrinsic::getDeclaration(M, Intrinsic::thread_pointer); Value *SlotPtr = IRB.CreatePointerCast( - IRB.CreateConstGEP1_32(IRB.CreateCall(ThreadPointerFunc), 0x30), + IRB.CreateConstGEP1_32(IRB.CreateCall(ThreadPointerFunc), 0x40), Ty->getPointerTo(0)); return SlotPtr; } diff --git a/llvm/test/Instrumentation/HWAddressSanitizer/prologue.ll b/llvm/test/Instrumentation/HWAddressSanitizer/prologue.ll index d8e6d581904..6b02b9863cd 100644 --- a/llvm/test/Instrumentation/HWAddressSanitizer/prologue.ll +++ b/llvm/test/Instrumentation/HWAddressSanitizer/prologue.ll @@ -29,7 +29,7 @@ define i32 @test_load(i32* %a) sanitize_hwaddress { ; CHECK-GLOBAL: load i64, i64* @__hwasan_shadow_memory_dynamic_address ; CHECK-TLS: %[[A:[^ ]*]] = call i8* @llvm.thread.pointer() -; CHECK-TLS: %[[B:[^ ]*]] = getelementptr i8, i8* %[[A]], i32 48 +; CHECK-TLS: %[[B:[^ ]*]] = getelementptr i8, i8* %[[A]], i32 64 ; CHECK-TLS: %[[C:[^ ]*]] = bitcast i8* %[[B]] to i64* ; CHECK-TLS: %[[D:[^ ]*]] = load i64, i64* %[[C]] ; CHECK-TLS: %[[E:[^ ]*]] = or i64 %[[D]], 4294967295 @@ -60,7 +60,7 @@ define void @test_alloca() sanitize_hwaddress { ; CHECK-GLOBAL: load i64, i64* @__hwasan_shadow_memory_dynamic_address ; CHECK-TLS: %[[A:[^ ]*]] = call i8* @llvm.thread.pointer() -; CHECK-TLS: %[[B:[^ ]*]] = getelementptr i8, i8* %[[A]], i32 48 +; CHECK-TLS: %[[B:[^ ]*]] = getelementptr i8, i8* %[[A]], i32 64 ; CHECK-TLS: %[[C:[^ ]*]] = bitcast i8* %[[B]] to i64* ; CHECK-TLS: %[[D:[^ ]*]] = load i64, i64* %[[C]] |