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)

Reply via email to