aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2024-07-03 17:25:53 -0400
committerJason Merrill <jason@redhat.com>2024-07-03 22:04:50 -0400
commitbaac8f710e35cfea14060e5eca49dbb49ffc294d (patch)
tree44622cf765c02d91496e6335ffebfc306185abad /gcc
parent655fe94ae4c95d7f113c62787ca382d2742fad6f (diff)
downloadgcc-baac8f710e35cfea14060e5eca49dbb49ffc294d.zip
gcc-baac8f710e35cfea14060e5eca49dbb49ffc294d.tar.gz
gcc-baac8f710e35cfea14060e5eca49dbb49ffc294d.tar.bz2
c++: OVERLOAD in diagnostics
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/error.cc6
-rw-r--r--gcc/testsuite/g++.dg/warn/pr61945.C2
2 files changed, 3 insertions, 5 deletions
diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc
index 171a352..1f36563a 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 3d40581..2252330 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\\(\\)." }
};