https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108694
--- Comment #4 from Bruno Haible <bruno at clisp dot org> --- (In reply to Aaron Ballman from comment #3) OK. So, except for this unlucky (*) choice of attribution in case of a conflict between function declaration and function definition, the '-Wdeprecated-non-prototype' warning is actually usable. What we need is thus: * -Wdeprecated-non-prototype, * combined with a kind of -Wfuture-incompatible-function-pointer-types, that considers the interpretation according to C23 instead of the interpretation according to the currently chosen standard. (*) Reported as a clang bug at https://github.com/llvm/llvm-project/issues/60592 .