Disable -Wimplicit-fallthrough when clang is in use

Clang's -Wimplicit-fallthrough warning, which flags unannotated
fall-through in switch statements, does not recognize specific comments
like /* FALLTHROUGH */ for suppressing the warning, unlike GCC.  Since
fall through comments are used extensively in glibc, disable
-Wimplicit-fallthrough when clang is in use.

This fixes BZ #33312.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Collin Funk <collin.funk1@gmail.com>
This commit is contained in:
H.J. Lu 2025-08-22 15:55:24 -07:00
parent b4ab549ae5
commit e377a7a8ec
2 changed files with 11 additions and 0 deletions

3
configure vendored
View File

@ -8021,6 +8021,9 @@ CC="$saved_CC"
fi
if test $libc_cv_test_clang = yes; then
libc_cv_test_cc_wimplicit_fallthrough=
fi
config_vars="$config_vars
cc-option-wimplicit-fallthrough = $libc_cv_cc_wimplicit_fallthrough"

View File

@ -1590,6 +1590,14 @@ LIBC_TRY_CC_AND_TEST_CC_OPTION([for -Wimplicit-fallthrough],
libc_cv_test_cc_wimplicit_fallthrough,
[libc_cv_test_cc_wimplicit_fallthrough=-Wimplicit-fallthrough],
[libc_cv_test_cc_wimplicit_fallthrough=])
dnl Clang's -Wimplicit-fallthrough warning, which flags unannotated
dnl fall-through in switch statements, does not recognize specific
dnl comments like /* FALLTHROUGH */ for suppressing the warning, unlike
dnl GCC. Since fall through comments are used extensively in glibc,
dnl disable -Wimplicit-fallthrough when clang is in use.
if test $libc_cv_test_clang = yes; then
libc_cv_test_cc_wimplicit_fallthrough=
fi
LIBC_CONFIG_VAR([cc-option-wimplicit-fallthrough],
[$libc_cv_cc_wimplicit_fallthrough])
AC_SUBST(libc_cv_test_cc_wimplicit_fallthrough)