From b753ef8f0c1d9cedd0ca688b68be10dc8f9c32bb Mon Sep 17 00:00:00 2001
From: David Malcolm <dmalcolm@redhat.com>
Date: Mon, 12 Feb 2024 21:02:09 -0500
Subject: [PATCH] diagnostics: unbreak 'make gcc.pot'

As noted by Joseph, I broke "make gcc.pot" in r14-6057-g12b67d1e13b3cf
by adding an overloaded format API with the format string in a different
position, leading to this failure:

emit_diagnostic_valist used incompatibly as both --keyword=emit_diagnostic_valist:4
--flag=emit_diagnostic_valist:4:gcc-internal-format and --keyword=emit_diagnostic_valist:5
--flag=emit_diagnostic_valist:5:gcc-internal-format

Fix by replacing the overloaded function with one with a different name.

See also r10-6297-g6c8e584430bc5d for previous fixes for this involving
the same function, or r5-6946-g40fecdd62f7d29 and
r5-6959-gdb30e21cbff7b9 for older fixes for similar issues.

gcc/analyzer/ChangeLog:
	* pending-diagnostic.cc (diagnostic_emission_context::warn):
	Update for renaming of emit_diagnostic_valist overload to
	emit_diagnostic_valist_meta.
	(diagnostic_emission_context::inform): Likewise.

gcc/ChangeLog:
	* diagnostic-core.h (emit_diagnostic_valist): Rename overload
	to...
	(emit_diagnostic_valist_meta): ...this.
	* diagnostic.cc (emit_diagnostic_valist): Likewise, to...
	(emit_diagnostic_valist_meta): ...this.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
---
 gcc/analyzer/pending-diagnostic.cc | 16 ++++++++--------
 gcc/diagnostic-core.h              | 12 ++++++------
 gcc/diagnostic.cc                  | 10 +++++-----
 3 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/gcc/analyzer/pending-diagnostic.cc b/gcc/analyzer/pending-diagnostic.cc
index e49aaa5a6d9e..b2961c21bfc8 100644
--- a/gcc/analyzer/pending-diagnostic.cc
+++ b/gcc/analyzer/pending-diagnostic.cc
@@ -129,10 +129,10 @@ diagnostic_emission_context::warn (const char *gmsgid, ...)
   auto_diagnostic_group d;
   va_list ap;
   va_start (ap, gmsgid);
-  const bool result = emit_diagnostic_valist (DK_WARNING,
-					      &m_rich_loc, &m_metadata,
-					      pd.get_controlling_option (),
-					      gmsgid, &ap);
+  const bool result = emit_diagnostic_valist_meta (DK_WARNING,
+						   &m_rich_loc, &m_metadata,
+						   pd.get_controlling_option (),
+						   gmsgid, &ap);
   va_end (ap);
   return result;
 }
@@ -147,10 +147,10 @@ diagnostic_emission_context::inform (const char *gmsgid, ...)
   auto_diagnostic_group d;
   va_list ap;
   va_start (ap, gmsgid);
-  emit_diagnostic_valist (DK_NOTE,
-			  &m_rich_loc, &m_metadata,
-			  pd.get_controlling_option (),
-			  gmsgid, &ap);
+  emit_diagnostic_valist_meta (DK_NOTE,
+			       &m_rich_loc, &m_metadata,
+			       pd.get_controlling_option (),
+			       gmsgid, &ap);
   va_end (ap);
 }
 
diff --git a/gcc/diagnostic-core.h b/gcc/diagnostic-core.h
index 7918bd7d4a20..f5e1e500dc34 100644
--- a/gcc/diagnostic-core.h
+++ b/gcc/diagnostic-core.h
@@ -123,12 +123,12 @@ extern bool emit_diagnostic (diagnostic_t, rich_location *, int,
 			     const char *, ...) ATTRIBUTE_GCC_DIAG(4,5);
 extern bool emit_diagnostic_valist (diagnostic_t, location_t, int, const char *,
 				    va_list *) ATTRIBUTE_GCC_DIAG (4,0);
-extern bool emit_diagnostic_valist (diagnostic_t,
-				    rich_location *,
-				    const diagnostic_metadata *,
-				    int,
-				    const char *,
-				    va_list *) ATTRIBUTE_GCC_DIAG (5,0);
+extern bool emit_diagnostic_valist_meta (diagnostic_t,
+					 rich_location *,
+					 const diagnostic_metadata *,
+					 int,
+					 const char *,
+					 va_list *) ATTRIBUTE_GCC_DIAG (5,0);
 extern bool seen_error (void);
 
 #ifdef BUFSIZ
diff --git a/gcc/diagnostic.cc b/gcc/diagnostic.cc
index f5411b1ede0d..1d143fa74980 100644
--- a/gcc/diagnostic.cc
+++ b/gcc/diagnostic.cc
@@ -1837,11 +1837,11 @@ emit_diagnostic_valist (diagnostic_t kind, location_t location, int opt,
 /* As above, but with rich_location and metadata.  */
 
 bool
-emit_diagnostic_valist (diagnostic_t kind,
-			rich_location *richloc,
-			const diagnostic_metadata *metadata,
-			int opt,
-			const char *gmsgid, va_list *ap)
+emit_diagnostic_valist_meta (diagnostic_t kind,
+			     rich_location *richloc,
+			     const diagnostic_metadata *metadata,
+			     int opt,
+			     const char *gmsgid, va_list *ap)
 {
   return diagnostic_impl (richloc, metadata, opt, gmsgid, ap, kind);
 }
-- 
GitLab