On Mon, Nov 20, 2023 at 10:56:03AM +0100, Florian Weimer wrote: > The dg-error directives for gcc.dg/permerror-system.c can be generated > using (for the most part at least): > > perl -ne 'print if s,.*(/\* \{ dg-error .*) } \*/$,$1 "" { target *-*-* } $. > } */,' \ > < gcc/testsuite/gcc.dg/permerror-default.c > > gcc/testsuite/ > > * gcc.dg/permerror-default.c: New test. > * gcc.dg/permerror-fpermissive.c: Likewise. > * gcc.dg/permerror-fpermissive-nowarning.c: Likewise. > * gcc.dg/permerror-gnu89-nopermissive.c: Likewise. > No permerrors yet, so this matches gcc.dg/permerror-gnu89.c > for now. > * gcc.dg/permerror-gnu89-pedantic.c: New test. > * gcc.dg/permerror-gnu89.c: Likewise. > * gcc.dg/permerror-noerror.c: Likewise. > * gcc.dg/permerror-nowarning.c: Likewise. > * gcc.dg/permerror-pedantic.c: Likewise. > * gcc.dg/permerror-system.c: Likewise. > --- > gcc/testsuite/gcc.dg/permerror-default.c | 85 +++++++++++++++++++ > .../gcc.dg/permerror-fpermissive-nowarning.c | 11 +++ > gcc/testsuite/gcc.dg/permerror-fpermissive.c | 85 +++++++++++++++++++ > .../gcc.dg/permerror-gnu89-nopermissive.c | 85 +++++++++++++++++++ > .../gcc.dg/permerror-gnu89-pedantic.c | 85 +++++++++++++++++++ > gcc/testsuite/gcc.dg/permerror-gnu89.c | 85 +++++++++++++++++++ > gcc/testsuite/gcc.dg/permerror-noerror.c | 85 +++++++++++++++++++ > gcc/testsuite/gcc.dg/permerror-nowarning.c | 10 +++ > gcc/testsuite/gcc.dg/permerror-pedantic.c | 85 +++++++++++++++++++ > gcc/testsuite/gcc.dg/permerror-system.c | 9 ++ > 10 files changed, 625 insertions(+) > create mode 100644 gcc/testsuite/gcc.dg/permerror-default.c > create mode 100644 gcc/testsuite/gcc.dg/permerror-fpermissive-nowarning.c > create mode 100644 gcc/testsuite/gcc.dg/permerror-fpermissive.c > create mode 100644 gcc/testsuite/gcc.dg/permerror-gnu89-nopermissive.c > create mode 100644 gcc/testsuite/gcc.dg/permerror-gnu89-pedantic.c > create mode 100644 gcc/testsuite/gcc.dg/permerror-gnu89.c > create mode 100644 gcc/testsuite/gcc.dg/permerror-noerror.c > create mode 100644 gcc/testsuite/gcc.dg/permerror-nowarning.c > create mode 100644 gcc/testsuite/gcc.dg/permerror-pedantic.c > create mode 100644 gcc/testsuite/gcc.dg/permerror-system.c > > diff --git a/gcc/testsuite/gcc.dg/permerror-default.c > b/gcc/testsuite/gcc.dg/permerror-default.c > new file mode 100644 > index 00000000000..ea0be1dc89f > --- /dev/null > +++ b/gcc/testsuite/gcc.dg/permerror-default.c > @@ -0,0 +1,85 @@ > +/* { dg-options "" } */ > + > +/* Overview test for C permerrors. This test should be kept in sync with the > + other permerror-* tests. If new permerrors are added, test cases should > be > + added to this and the other files. */ > + > +void > +implicit_function_declaration (void) > +{ > + f1 (); /* { dg-warning "'f1' \\\[-Wimplicit-function-declaration\\\]" } */ > +} > + > +extern implicit_int_1; /* { dg-warning "'implicit_int_1' > \\\[-Wimplicit-int\\\]" } */
Oy, these \ tend to get unwieldy. You could probably just say { dg-warning {-Wimplicit-int} } > + return incompatible_pointer_types; /* { dg-error "returning 'int \\\* > \\\(\\\*\\\)\\\(int\\\)' from a function with incompatible return type 'int > \\\*' \\\[-Wincompatible-pointer-types\\\]" } */ And here maybe { dg-error {returning 'int \* \(\*\)\(int\)' from a function with incompatible return type 'int \*' \[-Wincompatible-pointer-types\]} } could work the same. But you don't have to go and change it; I don't want to make more work for you. > --- /dev/null > +++ b/gcc/testsuite/gcc.dg/permerror-system.c > @@ -0,0 +1,9 @@ > +/* { dg-options "-isystem ${srcdir}" } */ > + > +/* Test that permerrors appear in system headers. */ > + > +/* The dg-* directives in the header file are ignored. No warnings are > + expected. */ > +#include <gcc.dg/permerror-default.c> Why not just #include "permerror-default.c"? I think this patch is OK. Marek