Hi Sam, On Wed, Feb 04, 2026 at 04:50:38PM +0000, Sam James wrote: > Mark Wielaard <[email protected]> writes: > > > clang 21 doesn't like ommitting a parameter name when not in C23 mode. > > One of the things you and I discussed a little while ago ;) > > You can use -Wmissing-parameter-name to catch this in GCC, btw.
Thanks, I forgot about that. The attached patch contains a configure check to make sure -Wmissing-parameter-name is available. Adding it did catch the same issue with gcc.
>From 713426053e829d552806e57abe9cd00c33a5cd3b Mon Sep 17 00:00:00 2001 From: Mark Wielaard <[email protected]> Date: Sat, 7 Feb 2026 01:48:26 +0100 Subject: [PATCH] configure: Add -Wmissing-parameter-name if available Before C23 omitting parameter names in function definitions isn't supported. Add -Wmissing-parameter-name (available since GCC 15) to catch this. * configure.ac: Add HAVE_MISSING_PARAMETER_NAME_WARNING check. * config/eu.am: Set MISSING_PARAMETER_NAME_WARNING based on HAVE_MISSING_PARAMETER_NAME_WARNING. (AM_CFLAGS): Add MISSING_PARAMETER_NAME_WARNING. Signed-off-by: Mark Wielaard <[email protected]> --- config/eu.am | 8 +++++++- configure.ac | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/config/eu.am b/config/eu.am index 0f4aa9f0364c..756e7058e9c2 100644 --- a/config/eu.am +++ b/config/eu.am @@ -111,11 +111,17 @@ else USE_AFTER_FREE3_WARNING= endif +if HAVE_MISSING_PARAMETER_NAME_WARNING +MISSING_PARAMETER_NAME_WARNING=-Wmissing-parameter-name +else +MISSING_PARAMETER_NAME_WARNING= +endif + AM_CFLAGS = -Wall -Wshadow -Wformat=2 \ -Wold-style-definition -Wstrict-prototypes $(TRAMPOLINES_WARNING) \ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ - $(USE_AFTER_FREE3_WARNING) \ + $(USE_AFTER_FREE3_WARNING) $(MISSING_PARAMETER_NAME_WARNING) \ $(if $($(*F)_no_Werror),,-Werror) \ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ diff --git a/configure.ac b/configure.ac index 58e58af2c58c..c9287039955d 100644 --- a/configure.ac +++ b/configure.ac @@ -665,6 +665,16 @@ CFLAGS="$old_CFLAGS"]) AM_CONDITIONAL(HAVE_USE_AFTER_FREE3_WARNING, [test "x$ac_cv_use_after_free3" != "xno"]) +AC_CACHE_CHECK([whether the compiler accepts -Wmissing-parameter-name], ac_cv_missing_parameter_name, [dnl +old_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Wmissing-parameter-name -Werror" +AC_COMPILE_IFELSE([AC_LANG_SOURCE([])], + ac_cv_missing_parameter_name=yes, + ac_cv_missing_parameter_name=no) +CFLAGS="$old_CFLAGS"]) +AM_CONDITIONAL(HAVE_MISSING_PARAMETER_NAME_WARNING, + [test "x$ac_cv_missing_parameter_name" != "xno"]) + AC_CACHE_CHECK([whether the compiler accepts -fno-addrsig], ac_cv_fno_addrsig, [dnl old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-addrsig -Werror" -- 2.52.0
