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
This commit is contained in:
Jason Merrill 2009-03-31 15:13:15 -04:00 committed by Jason Merrill
parent 2553fb66d9
commit fba1b95f23
2 changed files with 24 additions and 1 deletions

View File

@ -1,5 +1,9 @@
2009-03-31 Jason Merrill <jason@redhat.com> 2009-03-31 Jason Merrill <jason@redhat.com>
* ptree.c (cxx_print_decl): Pretty-print full name of
function/template.
(cxx_print_type): Pretty-print full name of class.
* decl.c (grokdeclarator): Reject pointer to qualified function * decl.c (grokdeclarator): Reject pointer to qualified function
type. type.

View File

@ -44,7 +44,23 @@ cxx_print_decl (FILE *file, tree node, int indent)
if (!CODE_CONTAINS_STRUCT (TREE_CODE (node), TS_DECL_COMMON) if (!CODE_CONTAINS_STRUCT (TREE_CODE (node), TS_DECL_COMMON)
|| !DECL_LANG_SPECIFIC (node)) || !DECL_LANG_SPECIFIC (node))
return; 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); 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 if (TREE_CODE (node) == FUNCTION_DECL
&& DECL_PENDING_INLINE_INFO (node)) && DECL_PENDING_INLINE_INFO (node))
fprintf (file, " pending-inline-info %p", fprintf (file, " pending-inline-info %p",
@ -81,6 +97,9 @@ cxx_print_type (FILE *file, tree node, int indent)
case RECORD_TYPE: case RECORD_TYPE:
case UNION_TYPE: case UNION_TYPE:
indent_to (file, indent + 4);
fprintf (file, "full-name \"%s\"",
type_as_string (node, TFF_CLASS_KEY_OR_ENUM));
break; break;
default: default:
@ -97,7 +116,7 @@ cxx_print_type (FILE *file, tree node, int indent)
indent_to (file, indent + 3); indent_to (file, indent + 3);
if (TYPE_NEEDS_CONSTRUCTING (node)) if (TYPE_NEEDS_CONSTRUCTING (node))
fputs ( "needs-constructor", file); fputs ( " needs-constructor", file);
if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (node)) if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (node))
fputs (" needs-destructor", file); fputs (" needs-destructor", file);
if (TYPE_HAS_DEFAULT_CONSTRUCTOR (node)) if (TYPE_HAS_DEFAULT_CONSTRUCTOR (node))