c++: alias template and typename [PR103057]
authorJason Merrill <jason@redhat.com>
Tue, 25 Jan 2022 20:12:16 +0000 (15:12 -0500)
committerJason Merrill <jason@redhat.com>
Wed, 26 Jan 2022 04:22:57 +0000 (23:22 -0500)
commitf3e6ef7d873885ffaa0db7f4185364bbd7a70505
treef0ed112041054c189f899b4a18f06434c0c299f6
parente0b8716f53ed6455e9f18931940141692793068d
c++: alias template and typename [PR103057]

Usually we handle DR1558 substitution near the top of tsubst, but in this
case while substituting TYPENAME_TYPE we were passing an alias
specialization to tsubst_aggr_type, which ignored its aliasness.

PR c++/103057

gcc/cp/ChangeLog:

* pt.cc (tsubst_aggr_type): Call tsubst for alias template
specialization.

gcc/testsuite/ChangeLog:

* g++.dg/cpp0x/alias-decl-void1.C: New test.
gcc/cp/pt.cc
gcc/testsuite/g++.dg/cpp0x/alias-decl-void1.C [new file with mode: 0644]