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