Improve C++ debug_tree.
authorJason Merrill <jason@redhat.com>
Wed, 21 Dec 2016 19:11:41 +0000 (14:11 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 21 Dec 2016 19:11:41 +0000 (14:11 -0500)
* ptree.c (cxx_print_type): Print args of
BOUND_TEMPLATE_TEMPLATE_PARM.
(cxx_print_decl): Print DECL_TEMPLATE_PARMS.

From-SVN: r243865

gcc/cp/ChangeLog
gcc/cp/ptree.c

index 1b14e1980c8a0db1369bf56ae33f55ff6f777b0f..20677fd79f39730e5b3a8aa0262d9efeb73c9589 100644 (file)
@@ -1,5 +1,9 @@
 2016-12-21  Jason Merrill  <jason@redhat.com>
 
+       * ptree.c (cxx_print_type): Print args of
+       BOUND_TEMPLATE_TEMPLATE_PARM.
+       (cxx_print_decl): Print DECL_TEMPLATE_PARMS.
+
        PR c++/78767 - ICE with inherited constructor default argument
        * method.c (strip_inheriting_ctors): Strip template as appropriate.
 
index e3e5e33f104c679a3b9afd440819623e2af2cf51..67a4ee85c02356b317ad3f8dc72afb8b11eb85d1 100644 (file)
@@ -50,6 +50,7 @@ cxx_print_decl (FILE *file, tree node, int indent)
     }
   else if (TREE_CODE (node) == TEMPLATE_DECL)
     {
+      print_node (file, "parms", DECL_TEMPLATE_PARMS (node), indent + 4);
       indent_to (file, indent + 3);
       fprintf (file, " full-name \"%s\"",
               decl_as_string (node, TFF_TEMPLATE_HEADER));
@@ -73,9 +74,12 @@ cxx_print_type (FILE *file, tree node, int indent)
 {
   switch (TREE_CODE (node))
     {
+    case BOUND_TEMPLATE_TEMPLATE_PARM:
+      print_node (file, "args", TYPE_TI_ARGS (node), indent + 4);
+      gcc_fallthrough ();
+
     case TEMPLATE_TYPE_PARM:
     case TEMPLATE_TEMPLATE_PARM:
-    case BOUND_TEMPLATE_TEMPLATE_PARM:
       indent_to (file, indent + 3);
       fprintf (file, "index %d level %d orig_level %d",
               TEMPLATE_TYPE_IDX (node), TEMPLATE_TYPE_LEVEL (node),