Skip to content

Commit 96e494c

Browse files
committed
build: constrain -Wstringop-over{read,flow} suppression to GCC only
Also, move it to `NOWARN_CXXFLAGS`, which is placed *after* `WARN_CXXFLAGS`.
1 parent 6bff03b commit 96e494c

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

configure.ac

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -478,9 +478,19 @@ if test "$enable_werror" = "yes"; then
478478
int main(void) { return 0; }
479479
])])
480480

481-
dnl -Wstringop-overread and -Wstringop-overflow are broken in gcc
482-
AX_CHECK_COMPILE_FLAG([-Wstringop-overread], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wno-stringop-overread"], [], [$CXXFLAG_WERROR])
483-
AX_CHECK_COMPILE_FLAG([-Wstringop-overflow], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wno-stringop-overflow"], [], [$CXXFLAG_WERROR])
481+
dnl -Wstringop-overread and -Wstringop-overflow are broken in GCC. Suppress warnings entirely to avoid noisy output.
482+
AX_CHECK_COMPILE_FLAG([-Wstringop-overread], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-stringop-overread"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
483+
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
484+
#error Non-GCC compiler detected, not setting flag
485+
#endif
486+
int main(void) { return 0; }
487+
])])
488+
AX_CHECK_COMPILE_FLAG([-Wstringop-overflow], [NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-stringop-overflow"], [], [$CXXFLAG_WERROR], [AC_LANG_SOURCE([
489+
#if defined(__clang__) || defined(__INTEL_COMPILER) || !defined(__GNUC__)
490+
#error Non-GCC compiler detected, not setting flag
491+
#endif
492+
int main(void) { return 0; }
493+
])])
484494
fi
485495

486496
AX_CHECK_COMPILE_FLAG([-Wall], [WARN_CXXFLAGS="$WARN_CXXFLAGS -Wall"], [], [$CXXFLAG_WERROR])

0 commit comments

Comments
 (0)