https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60241
--- Comment #9 from Jason Merrill <jason at gcc dot gnu.org> --- 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