diff options
author | Maxim Ostapenko <chefmax7@gmail.com> | 2017-04-11 14:58:26 +0000 |
---|---|---|
committer | Maxim Ostapenko <chefmax7@gmail.com> | 2017-04-11 14:58:26 +0000 |
commit | 8d8e5f3b6c3f6c74c0ddcdbdd169ffe3fefadfe3 (patch) | |
tree | 1d7b57f83768f06bbdc6cfcf5833b16fc4ede564 /test/lsan | |
parent | 056881d0b45d6148ab00fa12cb58cd75e4f64e48 (diff) |
Reapply "Enable LSan for arm Linux"
This patch reapplies r299923 with typo fixed in BLX macros.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@299948 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/lsan')
-rw-r--r-- | test/lsan/TestCases/large_allocation_leak.cc | 2 | ||||
-rw-r--r-- | test/lsan/TestCases/swapcontext.cc | 8 | ||||
-rw-r--r-- | test/lsan/TestCases/use_registers.cc | 5 | ||||
-rw-r--r-- | test/lsan/TestCases/use_tls_dynamic.cc | 2 | ||||
-rw-r--r-- | test/lsan/lit.common.cfg | 9 |
5 files changed, 19 insertions, 7 deletions
diff --git a/test/lsan/TestCases/large_allocation_leak.cc b/test/lsan/TestCases/large_allocation_leak.cc index 7254f9cbe..c3da932a4 100644 --- a/test/lsan/TestCases/large_allocation_leak.cc +++ b/test/lsan/TestCases/large_allocation_leak.cc @@ -5,7 +5,7 @@ // For 32 bit LSan it's pretty likely that large chunks are "reachable" from some // internal data structures (e.g. Glibc global data). -// UNSUPPORTED: x86 +// UNSUPPORTED: x86, arm #include <stdio.h> #include <stdlib.h> diff --git a/test/lsan/TestCases/swapcontext.cc b/test/lsan/TestCases/swapcontext.cc index f7e95ed2c..f990526cf 100644 --- a/test/lsan/TestCases/swapcontext.cc +++ b/test/lsan/TestCases/swapcontext.cc @@ -2,8 +2,10 @@ // memory. Make sure we don't report these leaks. // RUN: %clangxx_lsan %s -o %t -// RUN: %run %t 2>&1 -// RUN: not %run %t foo 2>&1 | FileCheck %s +// RUN: LSAN_BASE="detect_leaks=1" +// RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 2>&1 +// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s +// UNSUPPORTED: arm #include <stdio.h> #if defined(__APPLE__) @@ -23,7 +25,7 @@ void Child() { } int main(int argc, char *argv[]) { - char stack_memory[kStackSize + 1]; + char stack_memory[kStackSize + 1] __attribute__((aligned(16))); char *heap_memory = new char[kStackSize + 1]; char *child_stack = (argc > 1) ? stack_memory : heap_memory; diff --git a/test/lsan/TestCases/use_registers.cc b/test/lsan/TestCases/use_registers.cc index 789687401..2fe13318e 100644 --- a/test/lsan/TestCases/use_registers.cc +++ b/test/lsan/TestCases/use_registers.cc @@ -33,6 +33,11 @@ void *registers_thread_func(void *arg) { : : "r" (p) ); +#elif defined(__arm__) + asm ( "mov r5, %0" + : + : "r" (p) + ); #else #error "Test is not supported on this architecture." #endif diff --git a/test/lsan/TestCases/use_tls_dynamic.cc b/test/lsan/TestCases/use_tls_dynamic.cc index c20232dc3..6af82d59e 100644 --- a/test/lsan/TestCases/use_tls_dynamic.cc +++ b/test/lsan/TestCases/use_tls_dynamic.cc @@ -5,7 +5,7 @@ // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=1" %run %t 2>&1 // RUN: LSAN_OPTIONS="" %run %t 2>&1 -// UNSUPPORTED: i386-linux,i686-linux +// UNSUPPORTED: i386-linux,i686-linux,arm #ifndef BUILD_DSO #include <assert.h> diff --git a/test/lsan/lit.common.cfg b/test/lsan/lit.common.cfg index 8580eec33..b0e5e7e0e 100644 --- a/test/lsan/lit.common.cfg +++ b/test/lsan/lit.common.cfg @@ -3,6 +3,7 @@ # Common configuration for running leak detection tests under LSan/ASan. import os +import re import lit.util @@ -51,8 +52,12 @@ config.substitutions.append( ("%clangxx ", build_invocation(clang_cxxflags)) ) config.substitutions.append( ("%clang_lsan ", build_invocation(clang_lsan_cflags)) ) config.substitutions.append( ("%clangxx_lsan ", build_invocation(clang_lsan_cxxflags)) ) -# LeakSanitizer tests are currently supported on x86-64 Linux and mips64 Linux only. -if config.host_os not in ['Linux'] or config.host_arch not in ['x86_64', 'mips64']: +# LeakSanitizer tests are currently supported on x86-64 Linux, arm Linux and mips64 Linux only. +if config.host_os not in ['Linux'] or config.host_arch not in ['x86_64', 'mips64', 'arm', 'armhf', armv7l]: + config.unsupported = True + +# Don't support Thumb due to broken fast unwinder +if re.match('-mthumb', config.target_cflags): config.unsupported = True config.suffixes = ['.c', '.cc', '.cpp'] |