* decl.c (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
(lang_cleanup_tree): Remove.
* lex.c (make_lang_type): Use ggc_alloc to allocate
TYPE_LANG_SPECIFIC.
From-SVN: r29244
1999-09-09 Mark Mitchell <mark@codesourcery.com>
+ * decl.c (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
+ (lang_cleanup_tree): Remove.
+ * lex.c (make_lang_type): Use ggc_alloc to allocate
+ TYPE_LANG_SPECIFIC.
+
Reorganize per-function data.
* cp-tree.h (saved_scope): Add function_decl, bindings.
(language_function): Rename binding_level to bindings.
if (lt && !(TREE_CODE (t) == POINTER_TYPE
&& TREE_CODE (TREE_TYPE (t)) == METHOD_TYPE))
{
+ ggc_mark (lt);
ggc_mark_tree (lt->vfields);
ggc_mark_tree (lt->vbases);
ggc_mark_tree (lt->tags);
}
}
-void
-lang_cleanup_tree (t)
- tree t;
-{
- if (TREE_CODE_CLASS (TREE_CODE (t)) == 't'
- && TYPE_LANG_SPECIFIC (t) != NULL
- && !(TREE_CODE (t) == POINTER_TYPE
- && TREE_CODE (TREE_TYPE (t)) == METHOD_TYPE))
- free (TYPE_LANG_SPECIFIC (t));
-}
SET_IS_AGGR_TYPE (t, 1);
- pi = (struct lang_type *) xmalloc (sizeof (struct lang_type));
+ pi = (struct lang_type *) ggc_alloc (sizeof (struct lang_type));
bzero ((char *) pi, (int) sizeof (struct lang_type));
TYPE_LANG_SPECIFIC (t) = pi;