aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/ptree.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2009-03-31 15:13:15 -0400
committerJason Merrill <jason@gcc.gnu.org>2009-03-31 15:13:15 -0400
commitfba1b95f239ccead8ac1373c61a77e660efaa650 (patch)
tree81a23c2f80d7841967bf4c71933d2c225ff5457f /gcc/cp/ptree.c
parent2553fb66d9d37fd930230be595f37460fde6cd0a (diff)
downloadgcc-fba1b95f239ccead8ac1373c61a77e660efaa650.zip
gcc-fba1b95f239ccead8ac1373c61a77e660efaa650.tar.gz
gcc-fba1b95f239ccead8ac1373c61a77e660efaa650.tar.bz2
ptree.c (cxx_print_decl): Pretty-print full name of function/template.
* ptree.c (cxx_print_decl): Pretty-print full name of function/template. (cxx_print_type): Pretty-print full name of class. From-SVN: r145368
Diffstat (limited to 'gcc/cp/ptree.c')
-rw-r--r--gcc/cp/ptree.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c
index c91cb15..2452abc 100644
--- a/gcc/cp/ptree.c
+++ b/gcc/cp/ptree.c
@@ -44,7 +44,23 @@ cxx_print_decl (FILE *file, tree node, int indent)
if (!CODE_CONTAINS_STRUCT (TREE_CODE (node), TS_DECL_COMMON)
|| !DECL_LANG_SPECIFIC (node))
return;
+ if (TREE_CODE (node) == FUNCTION_DECL)
+ {
+ int flags = TFF_DECL_SPECIFIERS|TFF_RETURN_TYPE
+ |TFF_FUNCTION_DEFAULT_ARGUMENTS|TFF_EXCEPTION_SPECIFICATION ;
+ indent_to (file, indent + 3);
+ fprintf (file, " full-name \"%s\"", decl_as_string (node, flags));
+ }
+ else if (TREE_CODE (node) == TEMPLATE_DECL)
+ {
+ indent_to (file, indent + 3);
+ fprintf (file, " full-name \"%s\"",
+ decl_as_string (node, TFF_TEMPLATE_HEADER));
+ }
+
indent_to (file, indent + 3);
+ if (DECL_EXTERNAL (node) && DECL_NOT_REALLY_EXTERN (node))
+ fprintf (file, " not-really-extern");
if (TREE_CODE (node) == FUNCTION_DECL
&& DECL_PENDING_INLINE_INFO (node))
fprintf (file, " pending-inline-info %p",
@@ -81,6 +97,9 @@ cxx_print_type (FILE *file, tree node, int indent)
case RECORD_TYPE:
case UNION_TYPE:
+ indent_to (file, indent + 4);
+ fprintf (file, "full-name \"%s\"",
+ type_as_string (node, TFF_CLASS_KEY_OR_ENUM));
break;
default:
@@ -97,7 +116,7 @@ cxx_print_type (FILE *file, tree node, int indent)
indent_to (file, indent + 3);
if (TYPE_NEEDS_CONSTRUCTING (node))
- fputs ( "needs-constructor", file);
+ fputs ( " needs-constructor", file);
if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (node))
fputs (" needs-destructor", file);
if (TYPE_HAS_DEFAULT_CONSTRUCTOR (node))