diff --git a/compiler-rt/lib/sanitizer_common/CMakeLists.txt b/compiler-rt/lib/sanitizer_common/CMakeLists.txt --- a/compiler-rt/lib/sanitizer_common/CMakeLists.txt +++ b/compiler-rt/lib/sanitizer_common/CMakeLists.txt @@ -219,6 +219,10 @@ append_list_if(COMPILER_RT_HAS_WGLOBAL_CONSTRUCTORS_FLAG -Wglobal-constructors SANITIZER_CFLAGS) +set(LIBC_INDEPENDENT_SANITIZER_CFLAGS ${SANITIZER_CFLAGS}) +# This may call memset, which we wish to avoid for the libc-independent libraries +list(FILTER LIBC_INDEPENDENT_SANITIZER_CFLAGS EXCLUDE REGEX ^-ftrivial-auto-var-init=) + if(APPLE) set(OS_OPTION OS ${SANITIZER_COMMON_SUPPORTED_OS}) endif() @@ -228,7 +232,7 @@ ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} SOURCES ${SANITIZER_SOURCES} ADDITIONAL_HEADERS ${SANITIZER_IMPL_HEADERS} - CFLAGS ${SANITIZER_CFLAGS} + CFLAGS ${LIBC_INDEPENDENT_SANITIZER_CFLAGS} DEFS ${SANITIZER_COMMON_DEFINITIONS}) add_compiler_rt_object_libraries(RTSanitizerCommonNoTermination ${OS_OPTION} @@ -242,7 +246,7 @@ ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} SOURCES ${SANITIZER_NOLIBC_SOURCES} ADDITIONAL_HEADERS ${SANITIZER_IMPL_HEADERS} - CFLAGS ${SANITIZER_CFLAGS} + CFLAGS ${LIBC_INDEPENDENT_SANITIZER_CFLAGS} DEFS ${SANITIZER_COMMON_DEFINITIONS}) add_compiler_rt_object_libraries(RTSanitizerCommonLibc ${OS_OPTION}