diff options
author | Jason Merrill <jason@redhat.com> | 2024-07-03 17:25:53 -0400 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2024-07-03 22:04:50 -0400 |
commit | baac8f710e35cfea14060e5eca49dbb49ffc294d (patch) | |
tree | 44622cf765c02d91496e6335ffebfc306185abad | |
parent | 655fe94ae4c95d7f113c62787ca382d2742fad6f (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/cp/error.cc | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/pr61945.C | 2 |
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\\(\\)." } }; |