Commit fd452cef by Jason Merrill Committed by Jason Merrill

re PR c++/33342 (ICE in dependent_type_p, at cp/pt.c:15081)

        PR c++/33342
        * pt.c (most_specialized_class): Set processing_template_decl
        while tsubsting partial spec args.

From-SVN: r128285
parent ba4807a0
2007-09-08 Jason Merrill <jason@redhat.com>
PR c++/33342
* pt.c (most_specialized_class): Set processing_template_decl
while tsubsting partial spec args.
2007-09-06 Jason Merrill <jason@redhat.com> 2007-09-06 Jason Merrill <jason@redhat.com>
* decl2.c (get_guard): Copy visibility from the guarded variable. * decl2.c (get_guard): Copy visibility from the guarded variable.
......
...@@ -13646,6 +13646,8 @@ most_specialized_class (tree type, tree tmpl) ...@@ -13646,6 +13646,8 @@ most_specialized_class (tree type, tree tmpl)
{ {
int i; int i;
++processing_template_decl;
/* Discard the outer levels of args, and then substitute in the /* Discard the outer levels of args, and then substitute in the
template args from the enclosing class. */ template args from the enclosing class. */
partial_spec_args = INNERMOST_TEMPLATE_ARGS (partial_spec_args); partial_spec_args = INNERMOST_TEMPLATE_ARGS (partial_spec_args);
...@@ -13661,6 +13663,8 @@ most_specialized_class (tree type, tree tmpl) ...@@ -13661,6 +13663,8 @@ most_specialized_class (tree type, tree tmpl)
for (i = TREE_VEC_LENGTH (parms) - 1; i >= 0; --i) for (i = TREE_VEC_LENGTH (parms) - 1; i >= 0; --i)
TREE_VEC_ELT (parms, i) = TREE_VEC_ELT (parms, i) =
tsubst (TREE_VEC_ELT (parms, i), outer_args, tf_none, NULL_TREE); tsubst (TREE_VEC_ELT (parms, i), outer_args, tf_none, NULL_TREE);
--processing_template_decl;
} }
spec_args = get_class_bindings (parms, spec_args = get_class_bindings (parms,
partial_spec_args, partial_spec_args,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment