* error.c (dump_template_decl): Output template parameters
authorlerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Aug 2001 17:46:06 +0000 (17:46 +0000)
committerlerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Aug 2001 17:46:06 +0000 (17:46 +0000)
together with their specifiers.
Output `class' prefix for template template parameter.
(dump_decl): Fix formatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45329 138bc75d-0d04-0410-961f-82ee72b054a4

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

index c44c809..8dc0b86 100644 (file)
@@ -1,3 +1,10 @@
+2001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       * error.c (dump_template_decl): Output template parameters
+       together with their specifiers.
+       Output `class' prefix for template template parameter.
+       (dump_decl): Fix formatting.
+
 2001-08-30  Kurt Garloff  <garloff@suse.de>
  
        * optimize.c (inlinable_function_p): Allow only smaller single
index 05352c2..8907858 100644 (file)
@@ -1034,7 +1034,7 @@ dump_decl (t, flags)
       break;
 
     case TEMPLATE_DECL:
-        dump_template_decl (t, flags);
+      dump_template_decl (t, flags);
       break;
 
     case TEMPLATE_ID_EXPR:
@@ -1115,6 +1115,11 @@ dump_template_decl (t, flags)
           int len = TREE_VEC_LENGTH (inner_parms);
 
           output_add_string (scratch_buffer, "template<");
+
+         /* If we've shown the template prefix, we'd better show the
+            parameters' and decl's type too.  */
+           flags |= TFF_DECL_SPECIFIERS;
+
           for (i = 0; i < len; i++)
             {
               if (i)
@@ -1125,10 +1130,12 @@ dump_template_decl (t, flags)
           output_add_space (scratch_buffer);
         }
       nreverse(orig_parms);
-      /* If we've shown the template<args> prefix, we'd better show the
-        decl's type too.  */
-      flags |= TFF_DECL_SPECIFIERS;
+
+      if (DECL_TEMPLATE_TEMPLATE_PARM_P (t))
+       /* Say `template<arg> class TT' not just `template<arg> TT'. */
+       output_add_string (scratch_buffer, "class ");
     }
+
   if (TREE_CODE (DECL_TEMPLATE_RESULT (t)) == TYPE_DECL)
     dump_type (TREE_TYPE (t),
                ((flags & ~TFF_CLASS_KEY_OR_ENUM) | TFF_TEMPLATE_NAME