@henesy@merveilles.town @neauoire If I'm reading the standard right, (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf section 6.7.6.3. points 10 and 14) a declaration with an empty parameter type list should mean the same as void fn(...); which means unknown number and types of arguments. Presumably you then could use va_arg facility in its definition.
In any case void fn() and void fn(void) are of different types.