From 6d51a27fb17d9dc4e583c119fd976d39e575180f Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Thu, 20 Jan 2022 09:30:01 +0100 Subject: [PATCH] Fix Werror=format-diag with --disable-nls. PR c++/104134 gcc/cp/ChangeLog: * error.cc (dump_aggr_type): Partially disable the warning. --- gcc/cp/error.cc | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc index 1ab0c25..e76842e 100644 --- a/gcc/cp/error.cc +++ b/gcc/cp/error.cc @@ -768,6 +768,14 @@ class_key_or_enum_as_string (tree t) return "struct"; } +/* Disable warnings about missing quoting in GCC diagnostics for + the pp_verbatim call. Their format strings deliberately don't + follow GCC diagnostic conventions. */ +#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 +859,10 @@ dump_aggr_type (cxx_pretty_printer *pp, tree t, int flags) flags & ~TFF_TEMPLATE_HEADER); } +#if __GNUC__ >= 10 +#pragma GCC diagnostic pop +#endif + /* Dump into the obstack the initial part of the output for a given type. This is necessary when dealing with things like functions returning functions. Examples: @@ -3618,8 +3630,8 @@ function_category (tree fn) 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" +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-diag" #endif /* Report the full context of a current template instantiation, @@ -4230,7 +4242,7 @@ add_quotes (const char *content, bool show_color) } #if __GNUC__ >= 10 -# pragma GCC diagnostic pop +#pragma GCC diagnostic pop #endif /* If we had %H and %I, and hence deferred printing them, -- 2.7.4