diff mbox series

c++: improve dumping of templated decls

Message ID 20210922155657.3279594-1-ppalka@redhat.com
State New
Headers show
Series c++: improve dumping of templated decls | expand

Commit Message

Patrick Palka Sept. 22, 2021, 3:56 p.m. UTC
This makes the dumping routines output more information for templated
decls, to help streamline debugging.

Tested on x86_64-pc-linux-gnu, does this look OK for trunk?

gcc/cp/ChangeLog:

	* ptree.c (cxx_print_decl): Dump the DECL_TEMPLATE_RESULT of
	a TEMPLATE_DECL.  Dump the DECL_TEMPLATE_INFO rather than just
	printing its pointer.
---
 gcc/cp/ptree.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

Comments

Jason Merrill Sept. 22, 2021, 8:05 p.m. UTC | #1
On 9/22/21 11:56, Patrick Palka wrote:
> This makes the dumping routines output more information for templated
> decls, to help streamline debugging.
> 
> Tested on x86_64-pc-linux-gnu, does this look OK for trunk?

OK.

> gcc/cp/ChangeLog:
> 
> 	* ptree.c (cxx_print_decl): Dump the DECL_TEMPLATE_RESULT of
> 	a TEMPLATE_DECL.  Dump the DECL_TEMPLATE_INFO rather than just
> 	printing its pointer.
> ---
>   gcc/cp/ptree.c | 10 +++-------
>   1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c
> index 7f140f5f06b..1dcd764af01 100644
> --- a/gcc/cp/ptree.c
> +++ b/gcc/cp/ptree.c
> @@ -51,6 +51,7 @@ cxx_print_decl (FILE *file, tree node, int indent)
>       }
>     else if (TREE_CODE (node) == TEMPLATE_DECL)
>       {
> +      print_node (file, "result", DECL_TEMPLATE_RESULT (node), indent + 4);
>         print_node (file, "parms", DECL_TEMPLATE_PARMS (node), indent + 4);
>         indent_to (file, indent + 3);
>         fprintf (file, " full-name \"%s\"",
> @@ -115,13 +116,8 @@ cxx_print_decl (FILE *file, tree node, int indent)
>     
>     if (VAR_OR_FUNCTION_DECL_P (node)
>         && DECL_TEMPLATE_INFO (node))
> -    {
> -      if (need_indent)
> -	indent_to (file, indent + 3);
> -      fprintf (file, " template-info %p",
> -	       (void *) DECL_TEMPLATE_INFO (node));
> -      need_indent = false;
> -    }
> +    print_node (file, "template-info", DECL_TEMPLATE_INFO (node),
> +		indent + 4);
>   }
>   
>   void
>
diff mbox series

Patch

diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c
index 7f140f5f06b..1dcd764af01 100644
--- a/gcc/cp/ptree.c
+++ b/gcc/cp/ptree.c
@@ -51,6 +51,7 @@  cxx_print_decl (FILE *file, tree node, int indent)
     }
   else if (TREE_CODE (node) == TEMPLATE_DECL)
     {
+      print_node (file, "result", DECL_TEMPLATE_RESULT (node), indent + 4);
       print_node (file, "parms", DECL_TEMPLATE_PARMS (node), indent + 4);
       indent_to (file, indent + 3);
       fprintf (file, " full-name \"%s\"",
@@ -115,13 +116,8 @@  cxx_print_decl (FILE *file, tree node, int indent)
   
   if (VAR_OR_FUNCTION_DECL_P (node)
       && DECL_TEMPLATE_INFO (node))
-    {
-      if (need_indent)
-	indent_to (file, indent + 3);
-      fprintf (file, " template-info %p",
-	       (void *) DECL_TEMPLATE_INFO (node));
-      need_indent = false;
-    }
+    print_node (file, "template-info", DECL_TEMPLATE_INFO (node),
+		indent + 4);
 }
 
 void