]> gcc.gnu.org Git - gcc.git/commitdiff
error.c (dump_decl): Fix type default template args.
authorJason Merrill <jason@yorick.cygnus.com>
Sat, 24 Jan 1998 12:26:46 +0000 (12:26 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Sat, 24 Jan 1998 12:26:46 +0000 (07:26 -0500)
* error.c (dump_decl): Fix type default template args.
(dump_type): Hand TEMPLATE_DECL off to dump_decl.

From-SVN: r17470

gcc/cp/ChangeLog
gcc/cp/error.c

index 38b4afd361da829413a8afa3fb2167ce63fbef7d..7fb9c4d701229448a8207b811bbabadd9df13241 100644 (file)
@@ -1,3 +1,8 @@
+Sat Jan 24 12:13:54 1998  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * error.c (dump_decl): Fix type default template args.
+       (dump_type): Hand TEMPLATE_DECL off to dump_decl.
+
 Fri Jan 23 18:34:37 1998  Mumit Khan <khan@xraylith.wisc.edu>
 
        * lex.c (DIR_SEPARATOR): Define to be '/' if not already defined.
index 2cc5c84d765e01991944f45058296b111574f501..2465440c0284b4be7a13fcd2314d94f3537da6ca 100644 (file)
@@ -207,6 +207,7 @@ dump_type (t, v)
       break;
 
     case TYPE_DECL:
+    case TEMPLATE_DECL:
       dump_decl (t, v);
       break;
 
@@ -229,58 +230,6 @@ dump_type (t, v)
       OB_PUTID (TYPE_IDENTIFIER (t));
       break;
 
-      /* A substituted template template parameter.  Default template 
-        argument handling are different from dump_decl.  */
-    case TEMPLATE_DECL:
-      {
-       tree orig_args = DECL_TEMPLATE_PARMS (t);
-       tree args;
-       int i; 
-       for (args = orig_args = nreverse (orig_args); 
-            args;
-            args = TREE_CHAIN (args))
-         {
-           int len = TREE_VEC_LENGTH (TREE_VALUE (args));
-
-           OB_PUTS ("template <");
-           for (i = 0; i < len; i++)
-             {
-               tree arg = TREE_VEC_ELT (TREE_VALUE (args), i);
-               tree defval = TREE_PURPOSE (arg);
-               arg = TREE_VALUE (arg);
-               if (TREE_CODE (arg) == TYPE_DECL)
-                 {
-                   if (DECL_NAME (arg))
-                     {
-                       OB_PUTS ("class ");
-                       OB_PUTID (DECL_NAME (arg));
-                     }
-                   else
-                     OB_PUTS ("class");
-                 }
-               else
-                 dump_decl (arg, 1);
-               
-               if (defval)
-                 {
-                   OB_PUTS (" = ");
-                   if (TREE_CODE (arg) == TYPE_DECL)
-                     dump_type (defval, 1);
-                   else
-                     dump_expr (defval, 1);
-                 }
-               
-               OB_PUTC2 (',', ' ');
-             }
-           if (len != 0)
-             OB_UNPUT (2);
-           OB_PUTC2 ('>', ' ');
-         }
-       nreverse(orig_args);
-       dump_type (TREE_TYPE (t), v);
-      }
-      break;
-
     case TEMPLATE_TEMPLATE_PARM:
       if (!CLASSTYPE_TEMPLATE_INFO (t))
        {
@@ -837,7 +786,10 @@ dump_decl (t, v)
                if (defval)
                  {
                    OB_PUTS (" = ");
-                   dump_decl (defval, 1);
+                   if (TREE_CODE (arg) == TYPE_DECL)
+                     dump_type (defval, 1);
+                   else
+                     dump_decl (defval, 1);
                  }
                
                OB_PUTC2 (',', ' ');
This page took 0.080343 seconds and 5 git commands to generate.