diff --git a/compiler-rt/lib/asan/tests/CMakeLists.txt b/compiler-rt/lib/asan/tests/CMakeLists.txt index b489bb99aeff3a..491ed53d5671f2 100644 --- a/compiler-rt/lib/asan/tests/CMakeLists.txt +++ b/compiler-rt/lib/asan/tests/CMakeLists.txt @@ -243,7 +243,7 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS AND NOT ANDROID) if(APPLE) darwin_filter_host_archs(ASAN_SUPPORTED_ARCH ASAN_TEST_ARCH) endif() - list(REMOVE_ITEM ASAN_TEST_ARCH sparc sparcv9) + list(REMOVE_ITEM ASAN_TEST_ARCH sparcv9) if(OS_NAME MATCHES "SunOS") list(REMOVE_ITEM ASAN_TEST_ARCH x86_64) endif() diff --git a/compiler-rt/lib/asan/tests/asan_oob_test.cpp b/compiler-rt/lib/asan/tests/asan_oob_test.cpp index 56f573c1fc4820..ce4c90c23e84b6 100644 --- a/compiler-rt/lib/asan/tests/asan_oob_test.cpp +++ b/compiler-rt/lib/asan/tests/asan_oob_test.cpp @@ -11,6 +11,13 @@ //===----------------------------------------------------------------------===// #include "asan_test_utils.h" +#ifdef __sparc__ +// Tests using unaligned accesses cannot work on strict-alignment targets. +#define SKIP_ON_STRICT_ALIGNMENT(x) DISABLED_##x +#else +#define SKIP_ON_STRICT_ALIGNMENT(x) x +#endif + NOINLINE void asan_write_sized_aligned(uint8_t *p, size_t size) { EXPECT_EQ(0U, ((uintptr_t)p % size)); if (size == 1) asan_write((uint8_t*)p); @@ -79,7 +86,7 @@ TEST(AddressSanitizer, OOB_char) { OOBTest(); } -TEST(AddressSanitizer, OOB_int) { +TEST(AddressSanitizer, SKIP_ON_STRICT_ALIGNMENT(OOB_int)) { OOBTest(); } diff --git a/compiler-rt/lib/asan/tests/asan_test.cpp b/compiler-rt/lib/asan/tests/asan_test.cpp index 827c2ae3a9cdc8..09d71569f89bba 100644 --- a/compiler-rt/lib/asan/tests/asan_test.cpp +++ b/compiler-rt/lib/asan/tests/asan_test.cpp @@ -631,7 +631,7 @@ NOINLINE void SigLongJmpFunc1(sigjmp_buf buf) { #if !defined(__ANDROID__) && !defined(__arm__) && !defined(__aarch64__) && \ !defined(__mips__) && !defined(__mips64) && !defined(__s390__) && \ - !defined(__riscv) && !defined(__loongarch__) + !defined(__riscv) && !defined(__loongarch__) && !defined(__sparc__) NOINLINE void BuiltinLongJmpFunc1(jmp_buf buf) { // create three red zones for these two stack objects. int a; diff --git a/compiler-rt/test/asan/CMakeLists.txt b/compiler-rt/test/asan/CMakeLists.txt index fb9e81bbe8082d..414a6cc9496edb 100644 --- a/compiler-rt/test/asan/CMakeLists.txt +++ b/compiler-rt/test/asan/CMakeLists.txt @@ -36,7 +36,7 @@ set(ASAN_TEST_ARCH ${ASAN_SUPPORTED_ARCH}) if(APPLE) darwin_filter_host_archs(ASAN_SUPPORTED_ARCH ASAN_TEST_ARCH) endif() -list(REMOVE_ITEM ASAN_TEST_ARCH sparc sparcv9) +list(REMOVE_ITEM ASAN_TEST_ARCH sparcv9) if(OS_NAME MATCHES "SunOS") list(REMOVE_ITEM ASAN_TEST_ARCH x86_64) endif() diff --git a/compiler-rt/test/asan/TestCases/zero_page_pc.cpp b/compiler-rt/test/asan/TestCases/zero_page_pc.cpp index 9a395ecdf37c82..a7d00ce9b69886 100644 --- a/compiler-rt/test/asan/TestCases/zero_page_pc.cpp +++ b/compiler-rt/test/asan/TestCases/zero_page_pc.cpp @@ -19,6 +19,6 @@ int main() { // the compiler is free to choose the order. As a result, the address is // either 0x4, 0xc or 0x14. The pc is still in main() because it has not // actually made the call when the faulting access occurs. - // CHECK: {{AddressSanitizer: (SEGV|access-violation).*(address|pc) 0x0*[4c]}} + // CHECK: {{AddressSanitizer: (SEGV|access-violation).*(address|pc) 0x0*[45c]}} return 0; } diff --git a/compiler-rt/test/sanitizer_common/CMakeLists.txt b/compiler-rt/test/sanitizer_common/CMakeLists.txt index fa06b82acebd94..615666676f57ac 100644 --- a/compiler-rt/test/sanitizer_common/CMakeLists.txt +++ b/compiler-rt/test/sanitizer_common/CMakeLists.txt @@ -59,7 +59,7 @@ foreach(tool ${SUPPORTED_TOOLS}) darwin_filter_host_archs(${tool_toupper}_SUPPORTED_ARCH TEST_ARCH) endif() if(${tool} STREQUAL "asan") - list(REMOVE_ITEM TEST_ARCH sparc sparcv9) + list(REMOVE_ITEM TEST_ARCH sparcv9) endif() if(OS_NAME MATCHES "SunOS" AND ${tool} STREQUAL "asan") list(REMOVE_ITEM TEST_ARCH x86_64) diff --git a/compiler-rt/test/ubsan/CMakeLists.txt b/compiler-rt/test/ubsan/CMakeLists.txt index d95f9ad649ebf8..9b7fbe3c8f9260 100644 --- a/compiler-rt/test/ubsan/CMakeLists.txt +++ b/compiler-rt/test/ubsan/CMakeLists.txt @@ -51,10 +51,10 @@ foreach(arch ${UBSAN_TEST_ARCH}) if(COMPILER_RT_HAS_ASAN AND ";${ASAN_SUPPORTED_ARCH};" MATCHES ";${arch};") # TODO(wwchrome): Re-enable ubsan for asan win 64-bit when ready. # Disable ubsan with AddressSanitizer tests for Windows 64-bit, - # 64-bit Solaris/x86, and SPARC. + # 64-bit Solaris/x86 and 64-bit SPARC. if((NOT (OS_NAME MATCHES "Windows" AND CMAKE_SIZEOF_VOID_P EQUAL 8)) AND (NOT (OS_NAME MATCHES "SunOS" AND ${arch} MATCHES x86_64)) AND - (NOT ${arch} MATCHES sparc)) + (NOT ${arch} MATCHES sparcv9)) add_ubsan_testsuites("AddressSanitizer" asan ${arch}) endif() endif()