summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStrahinja Petrovic <strahinja.petrovic@rt-rk.com>2016-09-28 10:15:15 +0000
committerStrahinja Petrovic <strahinja.petrovic@rt-rk.com>2016-09-28 10:15:15 +0000
commit37d757039dc5fa3843cda5b4c1c86d842ae9443d (patch)
treeca5ceb45425716ca90c2bd11e9fe3f9cf8c66667
parent58c5a7f55af4a5601d453f2c09ee3d0d9b4cc59d (diff)
downloadbcm5719-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.cc5
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)
OpenPOWER on IntegriCloud