On Thu, 21 Jun 2018, Eric Gallager wrote: > On 6/21/18, Jeff Law <l...@redhat.com> wrote: > > On 06/12/2018 11:21 AM, Joseph Myers wrote: > >> On Tue, 12 Jun 2018, Martin Sebor wrote: > >> > >>> The proposal to enable -Wstrict-prototypes discussed below > >>> was considered too late for GCC 8. I'd like to revive it > >>> now for GCC 9. > >>> > >>> https://gcc.gnu.org/ml/gcc-patches/2018-01/msg00935.html > >> > >> My point from that discussion stands that () for no arguments should be > >> considered separately from warning for all the other cases. > > There's a lot of legacy code out there... What's the proposal for > > handling the no argument () case? Are we thinking multiple levels? And > > if so what's the default? > > -Wstrict-prototypes and -Wstricter-prototypes for the prototypes case? > And then split > -Wold-style-definition into -Wold-style-definition and > -Wc++-style-definition for the equivalent use of () in function > definitions?
I think the existing options, when explicitly used, should keep warning for all the cases they currently warn for, including (), even if you also have new warning options available that correspond to a subset of the existing options. It's the possible enabled-by-default warnings that I think should be a subset, as I don't think using () for no-argument functions is such an obsolescent practice as using old-style definitions, or () declarations, for functions with arguments (especially since () for no-argument functions is perfectly idiomatic in C++, and if C obsoletes non-prototype functions I'd expect it to end up with () having the same meaning as in C++, rather than being disallowed). The vast bulk of the places where that previous patch changes testcases are for (), which would not need changing under my proposal. (No doubt there *is* a lot of legacy code that uses old-style definitions together with function prototypes in separate declarations; I eliminated old-style definitions from glibc only in 2015. Hopefully code with old-style definitions and no prototype declarations is rarer.) -- Joseph S. Myers jos...@codesourcery.com