https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114816
--- Comment #1 from Joseph S. Myers <jsm28 at gcc dot gnu.org> --- Note that it's not possible to define a function with such parameters ("After adjustment, the parameters in a parameter type list in a function declarator that is part of a definition of that function shall not have incomplete type."). "register void" and "const void" (single unnamed parameter) are in the list of undefined behavior in Annex J ("A storage-class specifier or type qualifier modifies the keyword void as a function parameter type list") - presumably implicitly undefined for lack of definition. As for named void parameters (or more than one void parameter, etc.), the response to C99 DR#295 says "The Committee agrees that there do not appear to be any constraints forbidding constructions like void func(void parm); nor are any semantics provided for this construction." (which would also be implicitly undefined behavior). Given the desire to reduce undefined behavior in C2y it would be reasonable to submit a paper tightening this up by making all the problem cases (any case of a void parameter except for the special case of a single unnamed parameter of type void, no storage class specifier, no ellipsis following) into constraint violations for function declarators - or indeed to raise this through the issue tracking process once we have the new issue tracker set up, with a view to inviting WG14 to consider this a defect applicable to older standard versions.