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

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

https://gcc.gnu.org/g:5ab7959ee18980d676892fa6579f1ca09c5ecc08

commit r10-8957-g5ab7959ee18980d676892fa6579f1ca09c5ecc08
Author: Patrick Palka <ppa...@redhat.com>
Date:   Thu Oct 29 14:02:59 2020 -0400

    c++: Tolerate empty initial args during normalization [PR97412]

    When normalizing the constraint-expression of a nested-requirement, we
    pass NULL_TREE as the initial template arguments for normalization, but
    tsubst_argument_pack is not prepared to handle a NULL_TREE args vector.
    This causes us to ICE when normalizing a variadic concept as part of a
    nested-requirement.

    This patch fixes the ICE by guarding the call to tsubst_template_args in
    normalize_concept_check appropriately.  This will also enable us to
    simplify many of the normalization routines to just pass NULL_TREE
    (instead of a set of generic template arguments) as the initial template
    arguments.

    gcc/cp/ChangeLog:

            PR c++/97412
            * constraint.cc (normalize_concept_check): Don't call
            tsubst_template_args when 'args' is NULL.

    gcc/testsuite/ChangeLog:

            PR c++/97412
            * g++.dg/cpp2a/concepts-variadic2.C: New test.

    (cherry picked from commit 5681668765e233735b4c5e6a305e73ae1f80a328)

Reply via email to