From 9b837af463dc81f849fe99a0ad4f3b477d87c1e3 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Tue, 28 Jul 2020 08:33:48 -0700 Subject: [PATCH] c++: tree dump indentation 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 | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c index 224cf14edb5..dfc244fdceb 100644 --- a/gcc/cp/ptree.c +++ b/gcc/cp/ptree.c @@ -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