On 10/08/2016 17:33, Joseph Myers wrote: > On Wed, 10 Aug 2016, Paolo Bonzini wrote: > >> - stuff that is not enabled by anything should use OPT_Wpedantic, and > > No, lots of pedwarns are for usages that are (a) dubious enough we want to > diagnose them by default, and (b) required to be diagnosed by ISO C so > must become errors with -pedantic-errors. (You could argue about whether > we should have -fpermissive for C like for C++ and make some of those into > errors by default.)
There are indeed many pedwarn(loc, 0, ...) occurrences in C++ (most, but not all, are "foo only available with -std=bar" which in the C front-end would use OPT_Wpedantic, OPT_W*compat be enabled by specific flags such as -Wvariadic-macros). In C I only see three: - overflowing floating-point constants: if (!MODE_HAS_INFINITIES (TYPE_MODE (type))) pedwarn (input_location, 0, "floating constant exceeds range of %qT", type); else warning (OPT_Woverflow, "floating constant exceeds range of %qT", type); - __FUNCTION__ outside function scope if (!ix && !current_function_decl) pedwarn (loc, 0, "%qD is not defined outside of function scope", decl); - macro redefinition For the first two it would not feel wrong at all to use permerror. The last one indeed is a very good example of a pedwarn. Paolo