https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67829

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>:

https://gcc.gnu.org/g:edec2660ff4890ecf8cc191f7c92cf527de51fe2

commit r12-1374-gedec2660ff4890ecf8cc191f7c92cf527de51fe2
Author: Patrick Palka <ppa...@redhat.com>
Date:   Thu Jun 10 18:31:21 2021 -0400

    c++: matching deduced template template parameters [PR67829]

    During deduction, when the template of the argument for a bound ttp
    is a template template parameter, we need to consider the
    TEMPLATE_TEMPLATE_PARAMETER for matching rather than the TEMPLATE_DECL
    thereof, because the canonical form of a template template parameter as
    a template argument is the former tree, not the latter.

            PR c++/67829

    gcc/cp/ChangeLog:

            * pt.c (unify) <case BOUND_TEMPLATE_TEMPLATE_PARM>: When
            the TEMPLATE_DECL of a BOUND_TEMPLATE_TEMPLATE_PARM argument is
            a template template parameter, adjust to the
            TEMPLATE_TEMPLATE_PARAMETER before falling through.

    gcc/testsuite/ChangeLog:

            * g++.dg/template/ttp34.C: New test.
            * g++.dg/template/ttp34a.C: New test.
            * g++.dg/template/ttp34b.C: New test.

Reply via email to