From beb3fa2d2efbdc1fbedee2d5c587eae1364652d3 Mon Sep 17 00:00:00 2001 From: Haowei Wu Date: Tue, 13 Dec 2022 16:38:12 -0800 Subject: [PATCH] Revert "Reland "[compiler-rt][test] Heed COMPILER_RT_DEBUG when compiling unittests"" This reverts commit 255c3e3dcb06299aa2365f70817322a8a381c351, which breaks Msan-x86_64-Test. --- compiler-rt/CMakeLists.txt | 11 +---------- compiler-rt/lib/asan/tests/CMakeLists.txt | 11 +++++++++++ compiler-rt/lib/fuzzer/tests/CMakeLists.txt | 3 ++- compiler-rt/lib/gwp_asan/tests/CMakeLists.txt | 1 + compiler-rt/lib/interception/tests/CMakeLists.txt | 8 ++++++++ compiler-rt/lib/msan/tests/CMakeLists.txt | 1 + .../lib/sanitizer_common/sanitizer_type_traits.h | 5 ----- .../lib/sanitizer_common/tests/CMakeLists.txt | 11 +++++++++++ .../tests/sanitizer_type_traits_test.cpp | 2 +- .../lib/tsan/tests/unit/tsan_trace_test.cpp | 15 ++++----------- compiler-rt/test/tsan/Linux/check_memcpy.c | 2 -- 11 files changed, 40 insertions(+), 30 deletions(-) diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt index b95cc4bf53d6..77ba6d07b4f8 100644 --- a/compiler-rt/CMakeLists.txt +++ b/compiler-rt/CMakeLists.txt @@ -436,12 +436,9 @@ if (NOT MSVC) # Build with optimization, unless we're in debug mode. if(COMPILER_RT_DEBUG) - list(APPEND SANITIZER_COMMON_CFLAGS -O0) - string(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS " -O0") + list(APPEND SANITIZER_COMMON_CFLAGS -O1) else() list(APPEND SANITIZER_COMMON_CFLAGS -O3) - # FIXME: Omit for now, causes testsuite failures. - #string(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS " -O3") endif() endif() @@ -476,7 +473,6 @@ if(MSVC) string(REGEX REPLACE "(^| )/Z[i7I]($| )" " /Z7 " "${var_to_update}" "${${var_to_update}}") endforeach() - list(APPEND COMPILER_RT_UNITTEST_CFLAGS -gcodeview) elseif(APPLE) # On Apple platforms use full debug info (i.e. not `-gline-tables-only`) # for all build types so that the runtime can be debugged. @@ -486,13 +482,8 @@ elseif(APPLE) list(APPEND SANITIZER_COMMON_CFLAGS -g) elseif(COMPILER_RT_HAS_GLINE_TABLES_ONLY_FLAG AND NOT COMPILER_RT_DEBUG) list(APPEND SANITIZER_COMMON_CFLAGS -gline-tables-only) - # -gline-tables-only must be enough for these tests, so use it if possible. - string(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS " -gline-tables-only") - list(APPEND COMPILER_RT_UNITTEST_CFLAGS -gline-tables-only) elseif(COMPILER_RT_HAS_G_FLAG) list(APPEND SANITIZER_COMMON_CFLAGS -g) - string(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS " -g") - list(APPEND COMPILER_RT_UNITTEST_CFLAGS -g) endif() if(LLVM_ENABLE_MODULES) diff --git a/compiler-rt/lib/asan/tests/CMakeLists.txt b/compiler-rt/lib/asan/tests/CMakeLists.txt index 22e99dfad622..a0c6d2910d6f 100644 --- a/compiler-rt/lib/asan/tests/CMakeLists.txt +++ b/compiler-rt/lib/asan/tests/CMakeLists.txt @@ -29,6 +29,7 @@ set(ASAN_UNITTEST_COMMON_CFLAGS -I${COMPILER_RT_SOURCE_DIR}/lib/asan -I${COMPILER_RT_SOURCE_DIR}/lib/sanitizer_common/tests -fno-rtti + -O2 -Wno-format -Werror=sign-compare) append_list_if(COMPILER_RT_HAS_WVARIADIC_MACROS_FLAG -Wno-variadic-macros ASAN_UNITTEST_COMMON_CFLAGS) @@ -39,6 +40,16 @@ set(ASAN_UNITTEST_COMMON_LINK_FLAGS ${COMPILER_RT_UNITTEST_LINK_FLAGS} ${COMPILER_RT_UNWINDER_LINK_LIBS} ${SANITIZER_TEST_CXX_LIBRARIES}) + +# -gline-tables-only must be enough for ASan, so use it if possible. +if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang") + list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -gline-tables-only) +else() + list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -g) +endif() +if(MSVC) + list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -gcodeview) +endif() list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS -g) # Use -D instead of definitions to please custom compile command. diff --git a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt index 3c70730654c3..10fcfbaa083e 100644 --- a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt +++ b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt @@ -4,7 +4,8 @@ set(LIBFUZZER_UNITTEST_CFLAGS ${COMPILER_RT_UNITTEST_CFLAGS} ${COMPILER_RT_GTEST_CFLAGS} -I${COMPILER_RT_SOURCE_DIR}/lib/fuzzer - -fno-rtti) + -fno-rtti + -O2) if (APPLE) set(FUZZER_SUPPORTED_OS osx) diff --git a/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt b/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt index 7a5dcc40f834..ef7ea28b3983 100644 --- a/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt +++ b/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt @@ -6,6 +6,7 @@ set(GWP_ASAN_UNITTEST_CFLAGS ${SANITIZER_TEST_CXX_CFLAGS} -std=c++17 -I${COMPILER_RT_SOURCE_DIR}/lib/ + -O2 -g -fno-omit-frame-pointer) diff --git a/compiler-rt/lib/interception/tests/CMakeLists.txt b/compiler-rt/lib/interception/tests/CMakeLists.txt index 5b41e4c6b567..37bf99edaf06 100644 --- a/compiler-rt/lib/interception/tests/CMakeLists.txt +++ b/compiler-rt/lib/interception/tests/CMakeLists.txt @@ -18,6 +18,7 @@ set(INTERCEPTION_TEST_CFLAGS_COMMON -I${COMPILER_RT_SOURCE_DIR}/lib -I${COMPILER_RT_SOURCE_DIR}/lib/interception -fno-rtti + -O2 -Werror=sign-compare) set(INTERCEPTION_TEST_LINK_FLAGS_COMMON @@ -25,7 +26,14 @@ set(INTERCEPTION_TEST_LINK_FLAGS_COMMON ${COMPILER_RT_UNWINDER_LINK_LIBS} ${SANITIZER_TEST_CXX_LIBRARIES}) +# -gline-tables-only must be enough for these tests, so use it if possible. +if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang") + list(APPEND INTERCEPTION_TEST_CFLAGS_COMMON -gline-tables-only) +else() + list(APPEND INTERCEPTION_TEST_CFLAGS_COMMON -g) +endif() if(MSVC) + list(APPEND INTERCEPTION_TEST_CFLAGS_COMMON -gcodeview) list(APPEND INTERCEPTION_TEST_LINK_FLAGS_COMMON -Wl,-largeaddressaware -Wl,-nodefaultlib:libcmt,-defaultlib:msvcrt,-defaultlib:oldnames diff --git a/compiler-rt/lib/msan/tests/CMakeLists.txt b/compiler-rt/lib/msan/tests/CMakeLists.txt index ba78ec50cd26..6c0520d98426 100644 --- a/compiler-rt/lib/msan/tests/CMakeLists.txt +++ b/compiler-rt/lib/msan/tests/CMakeLists.txt @@ -33,6 +33,7 @@ set(MSAN_UNITTEST_COMMON_CFLAGS -I${COMPILER_RT_SOURCE_DIR}/lib -I${COMPILER_RT_SOURCE_DIR}/lib/msan -g + -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wno-deprecated-declarations diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h b/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h index eb843bd31529..06a44d1b5c7a 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h @@ -98,11 +98,6 @@ struct integral_constant { constexpr value_type operator()() const { return value; } }; -#if !__cpp_inline_variables -template -constexpr T integral_constant::value; -#endif - #ifndef __has_builtin # define __has_builtin(x) 0 #endif diff --git a/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt index f6b49e8fc760..41b89aa43134 100644 --- a/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt +++ b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt @@ -67,6 +67,7 @@ set(SANITIZER_TEST_CFLAGS_COMMON -I${COMPILER_RT_SOURCE_DIR}/lib -I${COMPILER_RT_SOURCE_DIR}/lib/sanitizer_common -fno-rtti + -O2 -Werror=sign-compare -Wno-gnu-zero-variadic-macro-arguments ) @@ -75,6 +76,16 @@ set(SANITIZER_TEST_LINK_FLAGS_COMMON ${COMPILER_RT_UNITTEST_LINK_FLAGS} ${COMPILER_RT_UNWINDER_LINK_LIBS} ${SANITIZER_TEST_CXX_LIBRARIES}) + +# -gline-tables-only must be enough for these tests, so use it if possible. +if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang") + list(APPEND SANITIZER_TEST_CFLAGS_COMMON -gline-tables-only) +else() + list(APPEND SANITIZER_TEST_CFLAGS_COMMON -g) +endif() +if(MSVC) + list(APPEND SANITIZER_TEST_CFLAGS_COMMON -gcodeview) +endif() list(APPEND SANITIZER_TEST_LINK_FLAGS_COMMON -g) if(NOT MSVC) diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_type_traits_test.cpp b/compiler-rt/lib/sanitizer_common/tests/sanitizer_type_traits_test.cpp index e4c9e993fb6b..d6c3ad4b8661 100644 --- a/compiler-rt/lib/sanitizer_common/tests/sanitizer_type_traits_test.cpp +++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_type_traits_test.cpp @@ -80,4 +80,4 @@ TEST(SanitizerCommon, IsTriviallyCopyable) { ASSERT_FALSE((is_trivially_copyable>::value)); } -} // namespace __sanitizer +} // namespace __sanitizer \ No newline at end of file diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_trace_test.cpp b/compiler-rt/lib/tsan/tests/unit/tsan_trace_test.cpp index 636a5a051cba..0d354db548c4 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_trace_test.cpp +++ b/compiler-rt/lib/tsan/tests/unit/tsan_trace_test.cpp @@ -23,15 +23,8 @@ // There must be some difference in thread initialization // between normal execution and unit tests. # define TRACE_TEST(SUITE, NAME) TEST(SUITE, DISABLED_##NAME) -# define TRACE_TEST_OPTIMIZED(SUITE, NAME) TEST(SUITE, DISABLED_##NAME) #else # define TRACE_TEST(SUITE, NAME) TEST(SUITE, NAME) -// Some tests deadlock in debug builds. -# if !SANITIZER_DEBUG -# define TRACE_TEST_OPTIMIZED(SUITE, NAME) TEST(SUITE, NAME) -# else -# define TRACE_TEST_OPTIMIZED(SUITE, NAME) TEST(SUITE, DISABLED_##NAME) -# endif #endif namespace __tsan { @@ -74,7 +67,7 @@ struct ThreadArray { operator ThreadState *() { return threads[0]; } }; -TRACE_TEST_OPTIMIZED(Trace, RestoreAccess) { +TRACE_TEST(Trace, RestoreAccess) { // A basic test with some function entry/exit events, // some mutex lock/unlock events and some other distracting // memory events. @@ -119,7 +112,7 @@ TRACE_TEST_OPTIMIZED(Trace, RestoreAccess) { CHECK_EQ(tag, kExternalTagNone); } -TRACE_TEST_OPTIMIZED(Trace, MemoryAccessSize) { +TRACE_TEST(Trace, MemoryAccessSize) { // Test tracing and matching of accesses of different sizes. struct Params { uptr access_size, offset, size; @@ -174,7 +167,7 @@ TRACE_TEST_OPTIMIZED(Trace, MemoryAccessSize) { } } -TRACE_TEST_OPTIMIZED(Trace, RestoreMutexLock) { +TRACE_TEST(Trace, RestoreMutexLock) { // Check of restoration of a mutex lock event. ThreadArray<1> thr; TraceFunc(thr, 0x1000); @@ -204,7 +197,7 @@ TRACE_TEST_OPTIMIZED(Trace, RestoreMutexLock) { CHECK_EQ(mset.Get(1).write, false); } -TRACE_TEST_OPTIMIZED(Trace, MultiPart) { +TRACE_TEST(Trace, MultiPart) { // Check replay of a trace with multiple parts. ThreadArray<1> thr; FuncEntry(thr, 0x1000); diff --git a/compiler-rt/test/tsan/Linux/check_memcpy.c b/compiler-rt/test/tsan/Linux/check_memcpy.c index 899062e2ac7b..26f99612e50f 100644 --- a/compiler-rt/test/tsan/Linux/check_memcpy.c +++ b/compiler-rt/test/tsan/Linux/check_memcpy.c @@ -7,8 +7,6 @@ // tsan. // REQUIRES: shared_unwind -// XFAIL: !compiler-rt-optimized - // RUN: %clang_tsan -O1 %s -o %t // RUN: llvm-objdump -d -l %t | FileCheck %s