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 | 37d757039dc5fa3843cda5b4c1c86d842ae9443d (patch) | |
| tree | ca5ceb45425716ca90c2bd11e9fe3f9cf8c66667 | |
| parent | 58c5a7f55af4a5601d453f2c09ee3d0d9b4cc59d (diff) | |
| download | bcm5719-llvm-37d757039dc5fa3843cda5b4c1c86d842ae9443d.tar.gz bcm5719-llvm-37d757039dc5fa3843cda5b4c1c86d842ae9443d.zip | |
[lsan] [aarch64] Fix calculating TLS area
This patch fixes calculating begin of TLS area on AARCH64.
Differential Revision: https://reviews.llvm.org/D24454
llvm-svn: 282571
| -rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc index 000bcfeb9f3..eb14c970a7f 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc +++ b/compiler-rt/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) |

