aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>1999-09-09 21:47:28 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1999-09-09 21:47:28 +0000
commitc27db0df86846d46159245fc1036a386f87cf39e (patch)
treed7c451ea0215d81ee72a93b22157c0ab79a360d2
parente700c93176b0322f855422e2aec599343cc64028 (diff)
downloadgcc-c27db0df86846d46159245fc1036a386f87cf39e.zip
gcc-c27db0df86846d46159245fc1036a386f87cf39e.tar.gz
gcc-c27db0df86846d46159245fc1036a386f87cf39e.tar.bz2
decl.c (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
* 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
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl.c11
-rw-r--r--gcc/cp/lex.c2
3 files changed, 7 insertions, 11 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 369b091..0fa9272 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
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.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 8121e80..00f7bdd 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -14583,6 +14583,7 @@ lang_mark_tree (t)
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);
@@ -14602,13 +14603,3 @@ lang_mark_tree (t)
}
}
-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));
-}
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index 988e01a..bcadd93 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -4828,7 +4828,7 @@ make_lang_type (code)
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;