c++: Fix ICE with variadic concepts and aliases [PR93907]
authorPatrick Palka <ppalka@redhat.com>
Mon, 9 Nov 2020 23:12:42 +0000 (18:12 -0500)
committerPatrick Palka <ppalka@redhat.com>
Mon, 9 Nov 2020 23:12:42 +0000 (18:12 -0500)
commit71a8040716c1342547a19c25bd0203ac29258ef3
treeedadddaaefefcc9e7f9be09b28e6b71849d1dee3
parent32ff3309ae5a17b3a504aef3361a8c1c30e49f2c
c++: Fix ICE with variadic concepts and aliases [PR93907]

This patch (naively) extends the PR93907 fix to also apply to variadic
concepts invoked with a type argument pack.  Without this, we ICE on
the below testcase (a variadic version of concepts-using2.C) in the same
manner as we used to on concepts-using2.C before r10-7133.

gcc/cp/ChangeLog:

PR c++/93907
* constraint.cc (tsubst_parameter_mapping): Also canonicalize
the type arguments of a TYPE_ARGUMENT_PACk.

gcc/testsuite/ChangeLog:

PR c++/93907
* g++.dg/cpp2a/concepts-using3.C: New test, based off of
concepts-using2.C.
gcc/cp/constraint.cc
gcc/testsuite/g++.dg/cpp2a/concepts-using3.C [new file with mode: 0644]