This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r270036 - in /trunk/gcc: cp/ChangeLog cp/cp-tre...
- From: jason at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Sat, 30 Mar 2019 15:23:37 -0000
- Subject: r270036 - in /trunk/gcc: cp/ChangeLog cp/cp-tre...
Author: jason
Date: Sat Mar 30 15:23:37 2019
New Revision: 270036
URL: https://gcc.gnu.org/viewcvs?rev=270036&root=gcc&view=rev
Log:
PR c++/89744 - ICE with specialization of member class template.
My fix five years ago for PR 60241 was incomplete: when we reassign implicit
instances of a partial instantiation of a member template to the explicit
specialization of that partial instantiation, we also need to adjust the
CLASSTYPE_TI_ARGS to match what we'd get when looking up that instance after
the explicit specialization. We also need to do this when we later look up
the instance in a way that only finds the explicit specialization halfway
through lookup_template_class_1.
* pt.c (lookup_template_class_1): If the partial instantiation is
explicitly specialized, adjust.
(maybe_process_partial_specialization): Also adjust
CLASSTYPE_TI_ARGS.
Added:
trunk/gcc/testsuite/g++.dg/template/mem-spec1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/pt.c