[Bug c++/122192] [13/14/15 Regression] Lookup for a dependent nested type as a base-specifier should be type-only
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Oct 28 14:35:51 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122192
--- Comment #15 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-15 branch has been updated by Patrick Palka
<ppalka@gcc.gnu.org>:
https://gcc.gnu.org/g:df569c064eac2f30c6f19fe5db931cdad0b2abcb
commit r15-10461-gdf569c064eac2f30c6f19fe5db931cdad0b2abcb
Author: Patrick Palka <ppalka@redhat.com>
Date: Fri Oct 10 10:25:25 2025 -0400
c++: base-specifier name lookup is type-only [PR122192]
The r13-6098 change to make TYPENAME_TYPE no longer always ignore
non-type bindings needs another exception: base-specifiers that are
represented as TYPENAME_TYPE, for which lookup must be type-only (by
[class.derived.general]/2). This patch fixes this by giving such
TYPENAME_TYPEs a tag type of class_type rather than typename_type so
that we treat them like elaborated-type-specifiers (another type-only
lookup situation).
PR c++/122192
gcc/cp/ChangeLog:
* decl.cc (make_typename_type): Document base-specifier as
another type-only lookup case.
* parser.cc (cp_parser_class_name): Propagate tag_type to
make_typename_type instead of hardcoding typename_type.
(cp_parser_base_specifier): Pass class_type instead of
typename_type as tag_type to cp_parser_class_name.
gcc/testsuite/ChangeLog:
* g++.dg/template/dependent-base6.C: New test.
Reviewed-by: Jason Merrill <jason@redhat.com>
(cherry picked from commit 49ddf362f0a7c1fdeb62f13a852a2fdec9d6fe6d)
More information about the Gcc-bugs
mailing list