On Thu, Jan 20, 2022 at 10:43:55AM +0100, Martin Liška wrote: > The patch disables "-Wformat-diag" for dump_aggr_type. > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > > Ready to be installed? > Thanks, > Martin > > PR c++/104134 > > gcc/cp/ChangeLog: > > * error.cc (dump_aggr_type): Partially disable the warning. > --- > gcc/cp/error.cc | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc > index 1ab0c25a477..c031c75cc5e 100644 > --- a/gcc/cp/error.cc > +++ b/gcc/cp/error.cc > @@ -768,6 +768,11 @@ class_key_or_enum_as_string (tree t) > return "struct"; > } > +#if __GNUC__ >= 10 > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Wformat-diag" > +#endif > + > /* Print out a class declaration T under the control of FLAGS, > in the form `class foo'. */ > @@ -851,6 +856,10 @@ dump_aggr_type (cxx_pretty_printer *pp, tree t, int > flags) > flags & ~TFF_TEMPLATE_HEADER); > } > +#if __GNUC__ >= 10 > +#pragma GCC diagnostic pop > +#endif > +
Please add an empty line above #if lines. Also, it would be nice to use the same style of these at least in the same file. The others are: /* Disable warnings about missing quoting in GCC diagnostics for the pp_verbatim calls. Their format strings deliberately don't follow GCC diagnostic conventions. */ #if __GNUC__ >= 10 # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wformat-diag" #endif and #if __GNUC__ >= 10 # pragma GCC diagnostic pop #endif The 2 spaces between # and pragma look just weird, so either use in all the 4 spaces 1 space between # and pragma, or 0 spaces. And also the copy the comment from above the other diagnostic push, perhaps with small tweak (pp_verbatim -> pp_printf)? Otherwise LGTM. Jakub