diff options
author | Strahinja Petrovic <strahinja.petrovic@rt-rk.com> | 2016-09-28 10:15:15 +0000 |
---|---|---|
committer | Strahinja Petrovic <strahinja.petrovic@rt-rk.com> | 2016-09-28 10:15:15 +0000 |
commit | 6eef723e08d4d943cbe9221c0709404e194e20f9 (patch) | |
tree | 4190efbeb1b90eda9a414707eb9e21e2cc11820d /lib/sanitizer_common/sanitizer_linux_libcdep.cc | |
parent | 9eb9daae69171e9795f128ef5fb9980ce55fe4d8 (diff) |
[lsan] [aarch64] Fix calculating TLS area
This patch fixes calculating begin of TLS area on AARCH64.
Differential Revision: https://reviews.llvm.org/D24454
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282571 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_linux_libcdep.cc')
-rw-r--r-- | lib/sanitizer_common/sanitizer_linux_libcdep.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/lib/sanitizer_common/sanitizer_linux_libcdep.cc index 000bcfeb9..eb14c970a 100644 --- a/lib/sanitizer_common/sanitizer_linux_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_linux_libcdep.cc @@ -298,7 +298,10 @@ uptr ThreadSelf() { rdhwr %0,$29;\ .set pop" : "=r" (thread_pointer)); descr_addr = thread_pointer - kTlsTcbOffset - TlsPreTcbSize(); -# elif defined(__aarch64__) || defined(__s390__) +# elif defined(__aarch64__) + descr_addr = reinterpret_cast<uptr>(__builtin_thread_pointer()) - + ThreadDescriptorSize(); +# elif defined(__s390__) descr_addr = reinterpret_cast<uptr>(__builtin_thread_pointer()); # elif defined(__powerpc64__) // PPC64LE uses TLS variant I. The thread pointer (in GPR 13) |