https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109835
--- Comment #1 from Florian Weimer <fw at gcc dot gnu.org> --- Presumably the idea is to enable -Werror=incompatible-function-pointer-types (in spirit) because it is more severe than -Wincompatible-pointer-types? I'm not sure this is actually true. Your first example will not have ABI problems or strict-aliasing issues. It seems rather harmless. Your second example (even with “int x;” instead, which we do not warn about by default) is likely to introduce strict-aliasing issues (obviously not in this minimal fragment, but still). If we want to error on incompatible-function-pointer-types by default, I think we need to make some effort to refine what such incompatible function pointers should be.