pt.c (complete_template_args): Don't look at the context unless we have to.
authorJason Merrill <jason@yorick.cygnus.com>
Wed, 15 Jul 1998 14:21:35 +0000 (14:21 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 15 Jul 1998 14:21:35 +0000 (10:21 -0400)
* pt.c (complete_template_args): Don't look at the context unless
we have to.

From-SVN: r21195

gcc/cp/ChangeLog
gcc/cp/pt.c

index 9b4b7af..dbbe414 100644 (file)
@@ -1,5 +1,8 @@
 1998-07-15  Jason Merrill  <jason@yorick.cygnus.com>
 
+       * pt.c (complete_template_args): Don't look at the context unless
+       we have too.
+
        * method.c (build_decl_overload_real): Fix namespace handling.
 
        * typeck.c (build_unary_op): Extract a lone function from an
index ec53238..5d1d581 100644 (file)
@@ -484,18 +484,21 @@ complete_template_args (tmpl, extra_args, unbound_only)
         template class, so skip over it.  */
       skip = (! is_member_template (tmpl));
 
-      type = DECL_REAL_CONTEXT (tmpl);
-      for (i = depth; i; type = TYPE_CONTEXT (type))
-       if (PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (type)))
-         {
-           if (skip)
-             skip = 0;
-           else
+      if (depth > skip)
+       {
+         type = DECL_REAL_CONTEXT (tmpl);
+         for (i = depth; i; type = TYPE_CONTEXT (type))
+           if (PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (type)))
              {
-               --i;
-               TREE_VEC_ELT (new_args, i) = CLASSTYPE_TI_ARGS (type);
+               if (skip)
+                 skip = 0;
+               else
+                 {
+                   --i;
+                   TREE_VEC_ELT (new_args, i) = CLASSTYPE_TI_ARGS (type);
+                 }
              }
-         }
+       }
     }
 
   if (extra_arg_depth == 1)