[Bug c++/81866] [7/8/9 Regression] ICE with a default template parameter which is a template class nested in a template class

2019-04-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81866

--- Comment #4 from Jason Merrill  ---
Author: jason
Date: Wed Apr  3 21:51:36 2019
New Revision: 270138

URL: https://gcc.gnu.org/viewcvs?rev=270138&root=gcc&view=rev
Log:
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.

Added:
trunk/gcc/testsuite/g++.dg/template/memtmpl6.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c

[Bug c++/81866] [7/8/9 Regression] ICE with a default template parameter which is a template class nested in a template class

2019-04-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81866

Jason Merrill  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org

[Bug c++/81866] [7/8/9 Regression] ICE with a default template parameter which is a template class nested in a template class

2019-03-21 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81866

Marek Polacek  changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #3 from Marek Polacek  ---
Started with r149188.

[Bug c++/81866] [7/8/9 Regression] ICE with a default template parameter which is a template class nested in a template class

2019-03-17 Thread reichelt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81866

Volker Reichelt  changed:

   What|Removed |Added

   Last reconfirmed|2017-09-11 00:00:00 |2019-3-17
 CC||reichelt at gcc dot gnu.org
   Target Milestone|--- |7.5
Summary|ICE with a default template |[7/8/9 Regression] ICE with
   |parameter which is a|a default template
   |template class nested in a  |parameter which is a
   |template class  |template class nested in a
   ||template class

--- Comment #2 from Volker Reichelt  ---
This is a regression that was introduced in GCC 4.5.0.