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