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

--- Comment #2 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:5681668765e233735b4c5e6a305e73ae1f80a328

commit r11-4544-g5681668765e233735b4c5e6a305e73ae1f80a328
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.

Reply via email to