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

--- Comment #4 from GCC 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:465b9c51f5c79ce3fbb36f1abc7194b39ad9cae7

commit r14-8886-g465b9c51f5c79ce3fbb36f1abc7194b39ad9cae7
Author: Patrick Palka <ppa...@redhat.com>
Date:   Thu Feb 8 09:10:44 2024 -0500

    c++: NTTP type CTAD w/ tmpl from current inst [PR113649]

    Since template argument coercion happens relative to the most general
    template (for a class template at least), during NTTP type CTAD we might
    need to consider outer arguments particularly if the CTAD template is from
    the current instantiation (and so depends on outer template parameters).

    This patch makes do_class_deduction substitute as many levels of outer
    template arguments into a CTAD template (from the current instantiation)
    as it can take.

            PR c++/113649

    gcc/cp/ChangeLog:

            * pt.cc (do_class_deduction): Add outer_targs parameter.
            Substitute outer arguments into the CTAD template.
            (do_auto_deduction): Pass outer_targs to do_class_deduction.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp2a/nontype-class65.C: New test.

    Reviewed-by: Jason Merrill <ja...@redhat.com>

Reply via email to