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 <[email protected]>: https://gcc.gnu.org/g:df569c064eac2f30c6f19fe5db931cdad0b2abcb commit r15-10461-gdf569c064eac2f30c6f19fe5db931cdad0b2abcb Author: Patrick Palka <[email protected]> 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 <[email protected]> (cherry picked from commit 49ddf362f0a7c1fdeb62f13a852a2fdec9d6fe6d)
