[Bug c++/93248] [8/9/10 Regression] ICE in decltype of template constructor with default argument within a class template since r8-2712

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Mar 15 22:09:16 GMT 2020


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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Jason Merrill
<jason@gcc.gnu.org>:

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

commit r9-8377-gcb05d702a17476fb658a59a6661d1f69394da786
Author: Jason Merrill <jason@redhat.com>
Date:   Sat Mar 14 17:10:39 2020 -0400

    c++: Fix CTAD with multiple-arg ctor template [93248].

    When cp_unevaluated_operand is set, tsubst_decl thinks that if it sees a
    PARM_DECL that isn't already in local_specializations, we're in a decltype
    in a trailing return type or some such, and so we only want a substitution
    for a single PARM_DECL.  In this case, we want the whole chain, so make
sure
    cp_unevaluated_operand is cleared.

    gcc/cp/ChangeLog
    2020-03-14  Jason Merrill  <jason@redhat.com>

            PR c++/93248
            * pt.c (build_deduction_guide): Clear cp_unevaluated_operand for
            substituting DECL_ARGUMENTS.


More information about the Gcc-bugs mailing list