Code intended to work as both C and C++ may well use () for no arguments. Maybe what's enabled by -Wextra should be a subset of the warning that allows function definitions with ()? Especially since if C does remove unprototyped functions at some point (and as I recall, people were happy with the idea for C11, but no paper was put forward with concrete wording changes, so nothing happened), there's the question of what () should then mean, and the obvious answer would be that C versions without unprototyped functions should define () as meaning the same as (void), like C++.
-- Joseph S. Myers jos...@codesourcery.com