https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88695
--- Comment #4 from Anders Granlund <anders.granlund.0 at gmail dot com> --- (In reply to Jonathan Wakely from comment #2) > See PR 64526 and DR 317. (Forgot to reply instead of adding an additional comment) Yes, the type of f does have a prototype. That fact is however not relevant here. Note that I'm not making any calls to f here. I am only using f in a way that requires its type to be compatible with void (int) . The prototype mentioned in 6.7.3/15 refers to the prototype of the type void (int) in this case.