mirror of https://github.com/postgres/postgres
Disable clang 16's -Wcast-function-type-strict.
Clang 16 is still in development, but seawasp reveals that it has
started warning about many of our casts of function pointers (those
introduced by commit 1c27d16e
, and some older ones). Disable the new
warning for now, since otherwise buildfarm animal seawasp fails, and we
have no current plans to change our strategy for these callback function
types.
May be back-patched with other Clang/LLVM 16 changes around release
time.
Discussion: https://postgr.es/m/CA%2BhUKGJvX%2BL3aMN84ksT-cGy08VHErRNip3nV-WmTx7f6Pqhyw%40mail.gmail.com
This commit is contained in:
parent
a8500750ca
commit
101c37cd34
|
@ -6611,6 +6611,50 @@ fi
|
|||
if test -n "$NOT_THE_CFLAGS"; then
|
||||
CFLAGS="$CFLAGS -Wno-stringop-truncation"
|
||||
fi
|
||||
# Suppress clang 16's strict warnings about function casts
|
||||
NOT_THE_CFLAGS=""
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} supports -Wcast-function-type-strict, for NOT_THE_CFLAGS" >&5
|
||||
$as_echo_n "checking whether ${CC} supports -Wcast-function-type-strict, for NOT_THE_CFLAGS... " >&6; }
|
||||
if ${pgac_cv_prog_CC_cflags__Wcast_function_type_strict+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
pgac_save_CFLAGS=$CFLAGS
|
||||
pgac_save_CC=$CC
|
||||
CC=${CC}
|
||||
CFLAGS="${NOT_THE_CFLAGS} -Wcast-function-type-strict"
|
||||
ac_save_c_werror_flag=$ac_c_werror_flag
|
||||
ac_c_werror_flag=yes
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
pgac_cv_prog_CC_cflags__Wcast_function_type_strict=yes
|
||||
else
|
||||
pgac_cv_prog_CC_cflags__Wcast_function_type_strict=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
ac_c_werror_flag=$ac_save_c_werror_flag
|
||||
CFLAGS="$pgac_save_CFLAGS"
|
||||
CC="$pgac_save_CC"
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CC_cflags__Wcast_function_type_strict" >&5
|
||||
$as_echo "$pgac_cv_prog_CC_cflags__Wcast_function_type_strict" >&6; }
|
||||
if test x"$pgac_cv_prog_CC_cflags__Wcast_function_type_strict" = x"yes"; then
|
||||
NOT_THE_CFLAGS="${NOT_THE_CFLAGS} -Wcast-function-type-strict"
|
||||
fi
|
||||
|
||||
|
||||
if test -n "$NOT_THE_CFLAGS"; then
|
||||
CFLAGS="$CFLAGS -Wno-cast-function-type-strict"
|
||||
fi
|
||||
elif test "$ICC" = yes; then
|
||||
# Intel's compiler has a bug/misoptimization in checking for
|
||||
# division by NAN (NaN == 0), -mp1 fixes it, so add it to the CFLAGS.
|
||||
|
|
|
@ -573,6 +573,12 @@ if test "$GCC" = yes -a "$ICC" = no; then
|
|||
if test -n "$NOT_THE_CFLAGS"; then
|
||||
CFLAGS="$CFLAGS -Wno-stringop-truncation"
|
||||
fi
|
||||
# Suppress clang 16's strict warnings about function casts
|
||||
NOT_THE_CFLAGS=""
|
||||
PGAC_PROG_CC_VAR_OPT(NOT_THE_CFLAGS, [-Wcast-function-type-strict])
|
||||
if test -n "$NOT_THE_CFLAGS"; then
|
||||
CFLAGS="$CFLAGS -Wno-cast-function-type-strict"
|
||||
fi
|
||||
elif test "$ICC" = yes; then
|
||||
# Intel's compiler has a bug/misoptimization in checking for
|
||||
# division by NAN (NaN == 0), -mp1 fixes it, so add it to the CFLAGS.
|
||||
|
|
|
@ -1773,6 +1773,9 @@ negative_warning_flags = [
|
|||
'format-truncation',
|
||||
'stringop-truncation',
|
||||
|
||||
# Suppress clang 16's strict warnings about function casts
|
||||
'cast-function-type-strict',
|
||||
|
||||
# To make warning_level=2 / -Wextra work, we'd need at least the following
|
||||
# 'clobbered',
|
||||
# 'missing-field-initializers',
|
||||
|
|
Loading…
Reference in New Issue