https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121563
--- Comment #6 from Christopher Bazley <Chris.Bazley at arm dot com> --- I found the relevant parts of the C standard after looking into GCC's source code: "The following identifiers have no linkage: an identifier declared to be anything other than an object or a function; an identifier declared to be a function parameter..." (6.2.2 Linkages of identifiers) "If an identifier has no linkage, there shall be no more than one declaration of the identifier (in a declarator or type specifier) with the same scope and in the same name space..." (6.7.1 Declarations: General) But according to that constraint, forward parameter declarations shouldn't exist at all, so I'm not sure that helps.