summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2015-12-14 14:15:32 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2015-12-14 14:15:32 +0000
commitac764fabb8fd3e0af3e2e2b6faddacdc6a698ae3 (patch)
tree07808ab18396b59d0ed0c8b1aee714756020962d
parentd2b10c5e9a1490555e19e3f956ae970c3e1125b9 (diff)
downloadbcm5719-llvm-ac764fabb8fd3e0af3e2e2b6faddacdc6a698ae3.tar.gz
bcm5719-llvm-ac764fabb8fd3e0af3e2e2b6faddacdc6a698ae3.zip
[compiler-rt] [msan] Variadic support for AArch64
Now with variadic support for msan on aarch6 there is no need for XFAIL signal_stress_test anymore. Also to garantee aligned stores for the FP/SIMD arguments enforce the '__msan_va_arg_tls' alignment to sizeof the SIMD register (16). llvm-svn: 255496
-rw-r--r--compiler-rt/lib/msan/msan.cc2
-rw-r--r--compiler-rt/test/msan/signal_stress_test.cc3
2 files changed, 1 insertions, 4 deletions
diff --git a/compiler-rt/lib/msan/msan.cc b/compiler-rt/lib/msan/msan.cc
index b64dcb6ffeb..9949db4c13a 100644
--- a/compiler-rt/lib/msan/msan.cc
+++ b/compiler-rt/lib/msan/msan.cc
@@ -55,7 +55,7 @@ SANITIZER_INTERFACE_ATTRIBUTE
THREADLOCAL u32 __msan_retval_origin_tls;
SANITIZER_INTERFACE_ATTRIBUTE
-THREADLOCAL u64 __msan_va_arg_tls[kMsanParamTlsSize / sizeof(u64)];
+ALIGNED(16) THREADLOCAL u64 __msan_va_arg_tls[kMsanParamTlsSize / sizeof(u64)];
SANITIZER_INTERFACE_ATTRIBUTE
THREADLOCAL u64 __msan_va_arg_overflow_size_tls;
diff --git a/compiler-rt/test/msan/signal_stress_test.cc b/compiler-rt/test/msan/signal_stress_test.cc
index d25bf820ffa..5bc6f59213b 100644
--- a/compiler-rt/test/msan/signal_stress_test.cc
+++ b/compiler-rt/test/msan/signal_stress_test.cc
@@ -1,8 +1,5 @@
// RUN: %clangxx_msan -std=c++11 -O0 %s -o %t && %run %t
//
-// AArch64 lacks var args instrumentation.
-// XFAIL: aarch64
-
// Test that va_arg shadow from a signal handler does not leak outside.
#include <signal.h>
OpenPOWER on IntegriCloud