From: Jason Merrill Date: Thu, 10 May 2018 18:41:00 +0000 (-0400) Subject: * parser.c (cp_parser_class_head): Use num_template_headers_for_class. X-Git-Tag: upstream/12.2.0~31911 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2c9c6adac944e2705131400a24570ae884388c71;p=platform%2Fupstream%2Fgcc.git * parser.c (cp_parser_class_head): Use num_template_headers_for_class. From-SVN: r260125 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 02d35cb..76a7087 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,7 @@ 2018-05-09 Jason Merrill + * parser.c (cp_parser_class_head): Use num_template_headers_for_class. + * pt.c (instantiate_decl): Make sure we aren't trying to do a nested instantiation in template context. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 88db998..82b8ef8 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -22930,20 +22930,7 @@ cp_parser_class_head (cp_parser* parser, /* Otherwise, count the number of templates used in TYPE and its containing scopes. */ else - { - tree scope; - - for (scope = TREE_TYPE (type); - scope && TREE_CODE (scope) != NAMESPACE_DECL; - scope = get_containing_scope (scope)) - if (TYPE_P (scope) - && CLASS_TYPE_P (scope) - && CLASSTYPE_TEMPLATE_INFO (scope) - && PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (scope)) - && (!CLASSTYPE_TEMPLATE_SPECIALIZATION (scope) - || uses_template_parms (CLASSTYPE_TI_ARGS (scope)))) - ++num_templates; - } + num_templates = num_template_headers_for_class (TREE_TYPE (type)); } /* Otherwise, the identifier is optional. */ else