From 89f808efcb76621f5bf8696fa823bf5955612a64 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 8 Jan 2021 11:18:35 +0100 Subject: [PATCH] build: add comment for disabling "-Wmaybe-uninitialized" with LTO With LTO it's easy to get "-Wmaybe-uninitialized" false positives. But the warning is useful, we we don't want to disable it altogether. However, while investigating the problem it can be useful to patch it temporarily. Add a code comment that suggests how to do that. --- m4/compiler_options.m4 | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/m4/compiler_options.m4 b/m4/compiler_options.m4 index d390a90cf0..b4b5e78dcc 100644 --- a/m4/compiler_options.m4 +++ b/m4/compiler_options.m4 @@ -62,8 +62,13 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then if test "x$enable_lto" = xyes; then dnl With LTO and optimizations enabled, gcc 10.2.1-1.fc32 is really - dnl adamant to warn about correct uses of strncpy. Disable that warning. + dnl adamant to warn about correct uses of strncpy. Disable "-Wstringop-overflow". _CFLAGS_MORE_WARNINGS_DISABLE_LTO="-Wno-stringop-overflow" + + dnl We want to build with "-Wmaybe-uninitialized" enabled. With LTO that + dnl can easily lead to false positives. For manual testing, disable the + dnl warning here by uncommenting the following line. + dnl _CFLAGS_MORE_WARNINGS_DISABLE_LTO="$_CFLAGS_MORE_WARNINGS_DISABLE_LTO -Wno-error=maybe-uninitialized" else _CFLAGS_MORE_WARNINGS_DISABLE_LTO= fi @@ -102,7 +107,7 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then -Wno-unused-parameter \ ; do dnl GCC 4.4 does not warn when checking for -Wno-* flags (https://gcc.gnu.org/wiki/FAQ#wnowarning) - _NM_COMPILER_FLAG([-Wall $(printf '%s' "$option" | sed 's/^-Wno-/-W/')], [], + _NM_COMPILER_FLAG([-Wall $(printf '%s' "$option" | sed -e 's/^-W\(no-\|no-error=\)/-W/')], [], [CFLAGS_MORE_WARNINGS="$CFLAGS_MORE_WARNINGS $option"], []) done unset option