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",
(void *) DECL_PENDING_INLINE_INFO (node));
- if (TREE_CODE (node) == TYPE_DECL
- && DECL_SORTED_FIELDS (node))
- fprintf (file, " sorted-fields %p",
- (void *) DECL_SORTED_FIELDS (node));
if ((TREE_CODE (node) == FUNCTION_DECL || TREE_CODE (node) == VAR_DECL)
&& DECL_TEMPLATE_INFO (node))
fprintf (file, " template-info %p",
case UNION_TYPE:
break;
+ case DECLTYPE_TYPE:
+ print_node (file, "expr", DECLTYPE_TYPE_EXPR (node), indent + 4);
+ return;
+
default:
return;
}
if (! CLASS_TYPE_P (node))
return;
+ indent_to (file, indent + 4);
+ fprintf (file, "full-name \"%s\"",
+ type_as_string (node, TFF_CLASS_KEY_OR_ENUM));
+
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))
fputs (" delete[]", file);
if (TYPE_HAS_ASSIGN_REF (node))
fputs (" this=(X&)", file);
+ if (CLASSTYPE_SORTED_FIELDS (node))
+ fprintf (file, " sorted-fields %p",
+ (void *) CLASSTYPE_SORTED_FIELDS (node));
if (TREE_CODE (node) == RECORD_TYPE)
{