diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt --- a/compiler-rt/CMakeLists.txt +++ b/compiler-rt/CMakeLists.txt @@ -364,8 +364,10 @@ # Build with optimization, unless we're in debug mode. if(COMPILER_RT_DEBUG) list(APPEND SANITIZER_COMMON_CFLAGS -O0) + list(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS -O0) else() list(APPEND SANITIZER_COMMON_CFLAGS -O3) + list(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS -O2) endif() endif() @@ -402,8 +404,10 @@ endforeach() elseif(COMPILER_RT_HAS_GLINE_TABLES_ONLY_FLAG AND NOT COMPILER_RT_DEBUG) list(APPEND SANITIZER_COMMON_CFLAGS -gline-tables-only) + list(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS -gline-tables-only) elseif(COMPILER_RT_HAS_G_FLAG) list(APPEND SANITIZER_COMMON_CFLAGS -g) + list(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS -g3) endif() if(LLVM_ENABLE_MODULES) diff --git a/compiler-rt/lib/asan/tests/CMakeLists.txt b/compiler-rt/lib/asan/tests/CMakeLists.txt --- a/compiler-rt/lib/asan/tests/CMakeLists.txt +++ b/compiler-rt/lib/asan/tests/CMakeLists.txt @@ -29,7 +29,6 @@ -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) @@ -40,8 +39,10 @@ ${COMPILER_RT_UNITTEST_LINK_FLAGS}) # -gline-tables-only must be enough for ASan, so use it if possible. -if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang") +if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang" AND NOT COMPILER_RT_DEBUG) list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -gline-tables-only) +elseif(COMPILER_RT_DEBUG) + # -g3 already in COMPILER_RT_UNITEST_CFLAGS. else() list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -g) endif() diff --git a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt --- a/compiler-rt/lib/fuzzer/tests/CMakeLists.txt +++ b/compiler-rt/lib/fuzzer/tests/CMakeLists.txt @@ -4,8 +4,7 @@ ${COMPILER_RT_UNITTEST_CFLAGS} ${COMPILER_RT_GTEST_CFLAGS} -I${COMPILER_RT_SOURCE_DIR}/lib/fuzzer - -fno-rtti - -O2) + -fno-rtti) 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 --- a/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt +++ b/compiler-rt/lib/gwp_asan/tests/CMakeLists.txt @@ -4,7 +4,6 @@ ${COMPILER_RT_UNITTEST_CFLAGS} ${COMPILER_RT_GTEST_CFLAGS} -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 --- a/compiler-rt/lib/interception/tests/CMakeLists.txt +++ b/compiler-rt/lib/interception/tests/CMakeLists.txt @@ -17,15 +17,16 @@ -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 ${COMPILER_RT_UNITTEST_LINK_FLAGS}) # -gline-tables-only must be enough for these tests, so use it if possible. -if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang") +if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang" AND NOT COMPILER_RT_DEBUG) list(APPEND INTERCEPTION_TEST_CFLAGS_COMMON -gline-tables-only) +elseif(COMPILER_RT_DEBUG) + # -g3 already in COMPILER_RT_UNITEST_CFLAGS. else() list(APPEND INTERCEPTION_TEST_CFLAGS_COMMON -g) endif() diff --git a/compiler-rt/lib/msan/tests/CMakeLists.txt b/compiler-rt/lib/msan/tests/CMakeLists.txt --- a/compiler-rt/lib/msan/tests/CMakeLists.txt +++ b/compiler-rt/lib/msan/tests/CMakeLists.txt @@ -32,7 +32,6 @@ -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/tests/CMakeLists.txt b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt --- a/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt +++ b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt @@ -57,7 +57,6 @@ -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 ) @@ -65,8 +64,10 @@ set(SANITIZER_TEST_LINK_FLAGS_COMMON ${COMPILER_RT_UNITTEST_LINK_FLAGS}) # -gline-tables-only must be enough for these tests, so use it if possible. -if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang") +if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang" AND NOT COMPILER_RT_DEBUG) list(APPEND SANITIZER_TEST_CFLAGS_COMMON -gline-tables-only) +elseif(COMPILER_RT_DEBUG) + # -g3 already in COMPILER_RT_UNITEST_CFLAGS. else() list(APPEND SANITIZER_TEST_CFLAGS_COMMON -g) endif() diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cpp b/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cpp --- a/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cpp +++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cpp @@ -68,6 +68,9 @@ UnmapOrDie(mapping, 2 * ps); } +void BufferedStackTrace::UnwindImpl(uptr, uptr, void *, bool, u32) { +} + #if SANITIZER_CAN_FAST_UNWIND && !defined(__sparc__) // Fake stacks don't meet SPARC UnwindFast requirements.