On Mon, Nov 20, 2023 at 10:56:26AM +0100, Florian Weimer wrote: > Most -Wimplicit-int warnings were unconditionally disabled for system > headers. Only missing types for parameters in old-style function > definitions resulted in warnings. This is inconsistent with the > treatment of other permerrors, which are active in system headers.
LGTM. > gcc/c/ > > * c-decl.cc (grokdeclarator): Do not skip -Wimplicit-int > warnings or errors in system headers. > > gcc/testsuite/ > > * gcc.dg/permerror-system.c: Expect all -Wimplicit-int > permerrors. > --- > gcc/c/c-decl.cc | 2 +- > gcc/testsuite/gcc.dg/permerror-system.c | 5 +++++ > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc > index 893e24f7dc6..d16958113a8 100644 > --- a/gcc/c/c-decl.cc > +++ b/gcc/c/c-decl.cc > @@ -6845,7 +6845,7 @@ grokdeclarator (const struct c_declarator *declarator, > > /* Diagnose defaulting to "int". */ > > - if (declspecs->default_int_p && !in_system_header_at (input_location)) > + if (declspecs->default_int_p) > { > /* Issue a warning if this is an ISO C 99 program or if > -Wreturn-type and this is a function, or if -Wimplicit; > diff --git a/gcc/testsuite/gcc.dg/permerror-system.c > b/gcc/testsuite/gcc.dg/permerror-system.c > index 60c65ffc1d4..cad48c93f90 100644 > --- a/gcc/testsuite/gcc.dg/permerror-system.c > +++ b/gcc/testsuite/gcc.dg/permerror-system.c > @@ -10,7 +10,12 @@ > > /* { dg-error "'f1' \\\[-Wimplicit-function-declaration\\\]" "" { target > *-*-* } 10 } */ > > +/* { dg-error "'implicit_int_1' \\\[-Wimplicit-int\\\]" "" { target *-*-* } > 13 } */ > +/* { dg-error "'implicit_int_2' \\\[-Wimplicit-int\\\]" "" { target *-*-* } > 14 } */ > +/* { dg-error "'implicit_int_3' \\\[-Wimplicit-int\\]" "" { target *-*-* } > 15 } */ > +/* { dg-error "return type defaults to 'int' \\\[-Wimplicit-int\\\]" "" { > target *-*-* } 16 } */ > /* { dg-error "type of 'i' defaults to 'int' \\\[-Wimplicit-int\\\]" "" { > target *-*-*} 16 } */ > +/* { dg-error "type defaults to 'int' in type name \\\[-Wimplicit-int\\\]" > "" { target *-*-* } 19 } */ > > /* { dg-error "pointer/integer type mismatch in conditional expression > \\\[-Wint-conversion\\\]" "" { target *-*-* } 29 } */ > /* { dg-error "pointer/integer type mismatch in conditional expression > \\\[-Wint-conversion\\\]" "" { target *-*-* } 30 } */ > -- > 2.42.0 > > Marek