From 0856b5d78d26690b2411053967aee57f37486d11 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 21 Dec 2016 14:11:41 -0500 Subject: [PATCH] Improve C++ debug_tree. * 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 | 4 ++++ gcc/cp/ptree.c | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1b14e1980c8..20677fd79f3 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2016-12-21 Jason Merrill + * 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. diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c index e3e5e33f104..67a4ee85c02 100644 --- a/gcc/cp/ptree.c +++ b/gcc/cp/ptree.c @@ -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), -- 2.30.2