Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -353,7 +353,7 @@ # support only subset of these (e.g. TSan works on x86_64 only). filter_available_targets(SANITIZER_COMMON_SUPPORTED_ARCH x86_64 i386 powerpc64 arm) -filter_available_targets(ASAN_SUPPORTED_ARCH x86_64 i386 powerpc64) +filter_available_targets(ASAN_SUPPORTED_ARCH x86_64 i386 powerpc64 arm) filter_available_targets(DFSAN_SUPPORTED_ARCH x86_64) filter_available_targets(LSAN_SUPPORTED_ARCH x86_64) filter_available_targets(MSAN_SUPPORTED_ARCH x86_64) Index: test/asan/TestCases/Linux/clone_test.cc =================================================================== --- test/asan/TestCases/Linux/clone_test.cc +++ test/asan/TestCases/Linux/clone_test.cc @@ -5,6 +5,7 @@ // RUN: %clangxx_asan -O1 %s -o %t && %run %t | FileCheck %s // RUN: %clangxx_asan -O2 %s -o %t && %run %t | FileCheck %s // RUN: %clangxx_asan -O3 %s -o %t && %run %t | FileCheck %s +// XFAIL: arm #include #include Index: test/asan/TestCases/Linux/glob.cc =================================================================== --- test/asan/TestCases/Linux/glob.cc +++ test/asan/TestCases/Linux/glob.cc @@ -1,5 +1,6 @@ // RUN: %clangxx_asan -O0 %s -o %t && %run %t %p 2>&1 | FileCheck %s // RUN: %clangxx_asan -O3 %s -o %t && %run %t %p 2>&1 | FileCheck %s +// XFAIL: arm #include #include Index: test/asan/TestCases/Linux/heavy_uar_test.cc =================================================================== --- test/asan/TestCases/Linux/heavy_uar_test.cc +++ test/asan/TestCases/Linux/heavy_uar_test.cc @@ -3,6 +3,7 @@ // RUN: not %run %t 2>&1 | FileCheck %s // RUN: %clangxx_asan -O2 %s -o %t && \ // RUN: not %run %t 2>&1 | FileCheck %s +// XFAIL: arm // FIXME: Fix this test under GCC. // REQUIRES: Clang Index: test/asan/TestCases/Linux/malloc_delete_mismatch.cc =================================================================== --- test/asan/TestCases/Linux/malloc_delete_mismatch.cc +++ test/asan/TestCases/Linux/malloc_delete_mismatch.cc @@ -12,6 +12,7 @@ // Also works if no malloc context is available. // RUN: ASAN_OPTIONS=alloc_dealloc_mismatch=1:malloc_context_size=0:fast_unwind_on_malloc=0 not %run %t 2>&1 | FileCheck %s // RUN: ASAN_OPTIONS=alloc_dealloc_mismatch=1:malloc_context_size=0:fast_unwind_on_malloc=1 not %run %t 2>&1 | FileCheck %s +// XFAIL: arm #include static volatile char *x; Index: test/asan/TestCases/Linux/ptrace.cc =================================================================== --- test/asan/TestCases/Linux/ptrace.cc +++ test/asan/TestCases/Linux/ptrace.cc @@ -1,5 +1,6 @@ // RUN: %clangxx_asan -O0 %s -o %t && %run %t // RUN: %clangxx_asan -DPOSITIVE -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s +// XFAIL: arm #include #include Index: test/asan/TestCases/Linux/uar_signals.cc =================================================================== --- test/asan/TestCases/Linux/uar_signals.cc +++ test/asan/TestCases/Linux/uar_signals.cc @@ -1,6 +1,7 @@ // This test checks that the implementation of use-after-return // is async-signal-safe. // RUN: %clangxx_asan -O1 %s -o %t -lpthread && %run %t +// REQUIRES: stable-runtime #include #include #include Index: test/asan/TestCases/Posix/shared-lib-test.cc =================================================================== --- test/asan/TestCases/Posix/shared-lib-test.cc +++ test/asan/TestCases/Posix/shared-lib-test.cc @@ -6,6 +6,7 @@ // RUN: %clangxx_asan -O2 %s -ldl -o %t && not %run %t 2>&1 | FileCheck %s // RUN: %clangxx_asan -O3 -DSHARED_LIB %s -fPIC -shared -o %t-so.so // RUN: %clangxx_asan -O3 %s -ldl -o %t && not %run %t 2>&1 | FileCheck %s +// XFAIL: arm #if !defined(SHARED_LIB) #include Index: test/asan/TestCases/Posix/start-deactivated.cc =================================================================== --- test/asan/TestCases/Posix/start-deactivated.cc +++ test/asan/TestCases/Posix/start-deactivated.cc @@ -6,6 +6,7 @@ // RUN: %clangxx -O0 %s -c -o %t.o // RUN: %clangxx_asan -O0 %t.o -ldl -o %t // RUN: ASAN_OPTIONS=start_deactivated=1 not %run %t 2>&1 | FileCheck %s +// XFAIL: arm #if !defined(SHARED_LIB) #include Index: test/asan/TestCases/asan-symbolize-sanity-test.cc =================================================================== --- test/asan/TestCases/asan-symbolize-sanity-test.cc +++ test/asan/TestCases/asan-symbolize-sanity-test.cc @@ -4,6 +4,7 @@ // RUN: %clangxx_asan -O0 -DSHARED_LIB %s -fPIC -shared -o %t-so.so // RUN: %clangxx_asan -O0 %s -ldl -o %t // RUN: ASAN_OPTIONS=symbolize=0 not %run %t 2>&1 | %asan_symbolize | FileCheck %s +// XFAIL: arm #if !defined(SHARED_LIB) #include Index: test/asan/TestCases/current_allocated_bytes.cc =================================================================== --- test/asan/TestCases/current_allocated_bytes.cc +++ test/asan/TestCases/current_allocated_bytes.cc @@ -1,5 +1,6 @@ // RUN: %clangxx_asan -O0 %s -lpthread -o %t && %run %t // RUN: %clangxx_asan -O2 %s -lpthread -o %t && %run %t +// REQUIRES: stable-runtime #include #include Index: test/asan/TestCases/deep_stack_uaf.cc =================================================================== --- test/asan/TestCases/deep_stack_uaf.cc +++ test/asan/TestCases/deep_stack_uaf.cc @@ -2,6 +2,7 @@ // RUN: %clangxx_asan -O0 %s -o %t 2>&1 // RUN: ASAN_OPTIONS=malloc_context_size=120:redzone=512 not %run %t 2>&1 | FileCheck %s +// XFAIL: arm #include #include Index: test/asan/TestCases/deep_thread_stack.cc =================================================================== --- test/asan/TestCases/deep_thread_stack.cc +++ test/asan/TestCases/deep_thread_stack.cc @@ -2,6 +2,7 @@ // RUN: %clangxx_asan -O1 %s -lpthread -o %t && not %run %t 2>&1 | FileCheck %s // RUN: %clangxx_asan -O2 %s -lpthread -o %t && not %run %t 2>&1 | FileCheck %s // RUN: %clangxx_asan -O3 %s -lpthread -o %t && not %run %t 2>&1 | FileCheck %s +// REQUIRES: stable-runtime #include Index: test/asan/TestCases/double-free.cc =================================================================== --- test/asan/TestCases/double-free.cc +++ test/asan/TestCases/double-free.cc @@ -4,6 +4,7 @@ // Also works if no malloc context is available. // RUN: ASAN_OPTIONS=malloc_context_size=0:fast_unwind_on_malloc=0 not %run %t 2>&1 | FileCheck %s // RUN: ASAN_OPTIONS=malloc_context_size=0:fast_unwind_on_malloc=1 not %run %t 2>&1 | FileCheck %s +// XFAIL: arm #include #include Index: test/asan/TestCases/gc-test.cc =================================================================== --- test/asan/TestCases/gc-test.cc +++ test/asan/TestCases/gc-test.cc @@ -1,6 +1,7 @@ // RUN: %clangxx_asan %s -lpthread -o %t // RUN: ASAN_OPTIONS=detect_stack_use_after_return=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK1 // RUN: ASAN_OPTIONS=detect_stack_use_after_return=0 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK0 +// XFAIL: arm #include #include Index: test/asan/TestCases/invalid-free.cc =================================================================== --- test/asan/TestCases/invalid-free.cc +++ test/asan/TestCases/invalid-free.cc @@ -4,6 +4,7 @@ // Also works if no malloc context is available. // RUN: ASAN_OPTIONS=malloc_context_size=0:fast_unwind_on_malloc=0 not %run %t 2>&1 | FileCheck %s // RUN: ASAN_OPTIONS=malloc_context_size=0:fast_unwind_on_malloc=1 not %run %t 2>&1 | FileCheck %s +// XFAIL: arm #include #include Index: test/asan/TestCases/large_func_test.cc =================================================================== --- test/asan/TestCases/large_func_test.cc +++ test/asan/TestCases/large_func_test.cc @@ -2,6 +2,7 @@ // RUN: %clangxx_asan -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK // RUN: %clangxx_asan -O2 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK // RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK +// XFAIL: arm #include __attribute__((noinline)) Index: test/asan/TestCases/mmap_limit_mb.cc =================================================================== --- test/asan/TestCases/mmap_limit_mb.cc +++ test/asan/TestCases/mmap_limit_mb.cc @@ -7,6 +7,7 @@ // RUN: ASAN_OPTIONS=mmap_limit_mb=500 %run %t 50 1000000 // RUN: ASAN_OPTIONS=mmap_limit_mb=500 not %run %t 500 16 2>&1 | FileCheck %s // RUN: ASAN_OPTIONS=mmap_limit_mb=500 not %run %t 500 1000000 2>&1 | FileCheck %s +// XFAIL: arm #include #include Index: test/asan/TestCases/sanity_check_pure_c.c =================================================================== --- test/asan/TestCases/sanity_check_pure_c.c +++ test/asan/TestCases/sanity_check_pure_c.c @@ -5,6 +5,7 @@ // Sanity checking a test in pure C with -pie. // RUN: %clang_asan -O2 %s -pie -fPIE -o %t // RUN: not %run %t 2>&1 | FileCheck %s +// XFAIL: arm #include int main() { Index: test/asan/TestCases/strdup_oob_test.cc =================================================================== --- test/asan/TestCases/strdup_oob_test.cc +++ test/asan/TestCases/strdup_oob_test.cc @@ -2,6 +2,7 @@ // RUN: %clangxx_asan -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s // RUN: %clangxx_asan -O2 %s -o %t && not %run %t 2>&1 | FileCheck %s // RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s +// XFAIL: arm #include Index: test/asan/TestCases/strncpy-overflow.cc =================================================================== --- test/asan/TestCases/strncpy-overflow.cc +++ test/asan/TestCases/strncpy-overflow.cc @@ -4,6 +4,7 @@ // RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK // REQUIRES: compiler-rt-optimized +// XFAIL: arm #include #include Index: test/asan/TestCases/use-after-delete.cc =================================================================== --- test/asan/TestCases/use-after-delete.cc +++ test/asan/TestCases/use-after-delete.cc @@ -2,6 +2,7 @@ // RUN: %clangxx_asan -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK // RUN: %clangxx_asan -O2 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK // RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK +// XFAIL: arm #include int main() { Index: test/asan/TestCases/use-after-free-right.cc =================================================================== --- test/asan/TestCases/use-after-free-right.cc +++ test/asan/TestCases/use-after-free-right.cc @@ -2,6 +2,7 @@ // RUN: %clangxx_asan -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK // RUN: %clangxx_asan -O2 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK // RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK +// XFAIL: arm // Test use-after-free report in the case when access is at the right border of // the allocation. Index: test/asan/TestCases/use-after-free.cc =================================================================== --- test/asan/TestCases/use-after-free.cc +++ test/asan/TestCases/use-after-free.cc @@ -2,6 +2,7 @@ // RUN: %clangxx_asan -O1 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK // RUN: %clangxx_asan -O2 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK // RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%os --check-prefix=CHECK +// XFAIL: arm #include int main() { Index: test/asan/lit.cfg =================================================================== --- test/asan/lit.cfg +++ test/asan/lit.cfg @@ -106,6 +106,11 @@ config.available_features.add("asan-" + config.bits + "-bits") +# Allow tests to use REQUIRES=stable-runtime. For use when you cannot use XFAIL +# because the test hangs. +if config.target_arch != 'arm': + config.available_features.add('stable-runtime') + # Turn on leak detection on 64-bit Linux. if config.host_os == 'Linux' and config.bits == '64': config.environment['ASAN_OPTIONS'] = 'detect_leaks=1'