diff mbox series

[pushed] c++: OVERLOAD in diagnostics

Message ID 20240704020422.764925-1-jason@redhat.com
State New
Headers show
Series [pushed] c++: OVERLOAD in diagnostics | expand

Commit Message

Jason Merrill July 4, 2024, 2:04 a.m. UTC
Tested x86_64-pc-linux-gnu, applying to trunk.

-- 8< --

In modules we can get an OVERLOAD around a non-function, so let's tail
recurse instead of falling through.  As a result we start printing the
template header in this testcase.

gcc/cp/ChangeLog:

	* error.cc (dump_decl) [OVERLOAD]: Recurse on single case.

gcc/testsuite/ChangeLog:

	* g++.dg/warn/pr61945.C: Adjust diagnostic.
---
 gcc/cp/error.cc                     | 6 ++----
 gcc/testsuite/g++.dg/warn/pr61945.C | 2 +-
 2 files changed, 3 insertions(+), 5 deletions(-)


base-commit: 03a810da10d8dfb5aec9261372cad7bf090e6986
prerequisite-patch-id: bc2e5a849f285a95d7446f7675a79a4a6733df14
diff mbox series

Patch

diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc
index 171a352c85f..1f36563ae2c 100644
--- a/gcc/cp/error.cc
+++ b/gcc/cp/error.cc
@@ -1407,10 +1407,8 @@  dump_decl (cxx_pretty_printer *pp, tree t, int flags)
 	  break;
 	}
 
-      /* If there's only one function, just treat it like an ordinary
-	 FUNCTION_DECL.  */
-      t = OVL_FIRST (t);
-      /* Fall through.  */
+      /* If there's only one function, dump that.  */
+      return dump_decl (pp, OVL_FIRST (t), flags);
 
     case FUNCTION_DECL:
       if (! DECL_LANG_SPECIFIC (t))
diff --git a/gcc/testsuite/g++.dg/warn/pr61945.C b/gcc/testsuite/g++.dg/warn/pr61945.C
index 3d40581e5e3..2252330835f 100644
--- a/gcc/testsuite/g++.dg/warn/pr61945.C
+++ b/gcc/testsuite/g++.dg/warn/pr61945.C
@@ -7,5 +7,5 @@  class A {
 };
 class B : A {
   template <typename>
-  void foo ();		// { dg-message "by .B::foo\\(\\)." }
+  void foo ();		// { dg-message "by .*B::foo\\(\\)." }
 };