c++: tree dump indentation
authorNathan Sidwell <nathan@acm.org>
Tue, 28 Jul 2020 15:33:48 +0000 (08:33 -0700)
committerNathan Sidwell <nathan@acm.org>
Tue, 28 Jul 2020 16:01:31 +0000 (09:01 -0700)
We were always forcing an indent, even if there was nothing to indent.
Fixed thusly.

gcc/cp/
* ptree.c (cxx_print_decl): Better indentation.

gcc/cp/ptree.c

index 224cf14..dfc244f 100644 (file)
@@ -57,17 +57,35 @@ cxx_print_decl (FILE *file, tree node, int indent)
               decl_as_string (node, TFF_TEMPLATE_HEADER));
     }
 
-  indent_to (file, indent + 3);
+  bool need_indent = true;
+
   if (DECL_EXTERNAL (node) && DECL_NOT_REALLY_EXTERN (node))
-    fprintf (file, " not-really-extern");
+    {
+      if (need_indent)
+       indent_to (file, indent + 3);
+      fprintf (file, " not-really-extern");
+      need_indent = false;
+    }
+
   if (TREE_CODE (node) == FUNCTION_DECL
       && DECL_PENDING_INLINE_INFO (node))
-    fprintf (file, " pending-inline-info %p",
-            (void *) DECL_PENDING_INLINE_INFO (node));
+    {
+      if (need_indent)
+       indent_to (file, indent + 3);
+      fprintf (file, " pending-inline-info %p",
+              (void *) DECL_PENDING_INLINE_INFO (node));
+      need_indent = false;
+    }
+  
   if (VAR_OR_FUNCTION_DECL_P (node)
       && DECL_TEMPLATE_INFO (node))
-    fprintf (file, " template-info %p",
-            (void *) 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;
+    }
 }
 
 void