PR c++/81866 - ICE with member template and default targ.
authorJason Merrill <jason@redhat.com>
Wed, 3 Apr 2019 21:51:36 +0000 (17:51 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 3 Apr 2019 21:51:36 +0000 (17:51 -0400)
commite53ec543e66382d2552e89077e05fe70e2a75c78
treee07810196903d37d30a63e7b9caacb49b8c556d6
parentc17bad5326d5f1f79207409e13e80ec61934ebfe
PR c++/81866 - ICE with member template and default targ.

This testcase manages to find a way to look up the partial instantiation of
B for the default argument of C before we've created the partial
instantiation of B as part of the normal instantiation of the members of A.
Which we can deal with, but we were getting confused because the partial
instantiation was stored with a RECORD_TYPE specialization rather than
TEMPLATE_DECL.

* pt.c (tsubst_template_decl): Handle getting a type from
retrieve_specialization.

From-SVN: r270138
gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/g++.dg/template/memtmpl6.C [new file with mode: 0644]