ggc.h (lang_cleanup_tree): Remove.

* ggc.h (lang_cleanup_tree): Remove.
	* gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
	* ggc-callbacks.c (lang_cleanup_tree): Remove.

	* c-decl.c (finish_struct): Use ggc_alloc to allocate
	TYPE_LANG_SPECIFIC when garbage collecting.
	(lang_cleanup_tree): Remove.

From-SVN: r29242
This commit is contained in:
Mark Mitchell 1999-09-09 21:41:38 +00:00 committed by Mark Mitchell
parent 31cf01446d
commit 96603b4c5a
5 changed files with 15 additions and 36 deletions

View File

@ -1,3 +1,13 @@
Thu Sep 9 14:36:31 1999 Mark Mitchell <mark@codesourcery.com>
* ggc.h (lang_cleanup_tree): Remove.
* gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
* ggc-callbacks.c (lang_cleanup_tree): Remove.
* c-decl.c (finish_struct): Use ggc_alloc to allocate
TYPE_LANG_SPECIFIC when garbage collecting.
(lang_cleanup_tree): Remove.
Thu Sep 9 14:23:02 1999 Jason Merrill <jason@yorick.cygnus.com>
* defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.

View File

@ -5725,7 +5725,9 @@ finish_struct (t, fieldlist, attributes)
/* Use the same allocation policy here that make_node uses, to
ensure that this lives as long as the rest of the struct decl.
All decls in an inline function need to be saved. */
if (allocation_temporary_p ())
if (ggc_p)
space = ggc_alloc (sizeof (struct lang_type) + len * sizeof (tree));
else if (allocation_temporary_p ())
space = savealloc (sizeof (struct lang_type) + len * sizeof (tree));
else
space = oballoc (sizeof (struct lang_type) + len * sizeof (tree));
@ -7142,19 +7144,6 @@ lang_mark_tree (t)
ggc_mark_tree (i->error_locus);
ggc_mark_tree (i->limbo_value);
}
}
/* Free the language specific bits in T for GC. */
void
lang_cleanup_tree (t)
tree t;
{
if (TREE_CODE_CLASS (TREE_CODE (t)) == 't'
&& TYPE_LANG_SPECIFIC (t) != NULL)
{
#if 0
/* This is currently allocated with an obstack. This will change. */
free (TYPE_LANG_SPECIFIC (t));
#endif
}
else if (TYPE_P (t) && TYPE_LANG_SPECIFIC (t))
ggc_mark (TYPE_LANG_SPECIFIC (t));
}

View File

@ -35,15 +35,6 @@ lang_mark_tree (t)
abort ();
}
void
lang_cleanup_tree (t)
union tree_node *t ATTRIBUTE_UNUSED;
{
/* If this function is called, we are doing GC. But, this file is
only included in compilers for languages that don't support GC. */
abort ();
}
void
lang_mark_false_label_stack (l)
struct label_node *l ATTRIBUTE_UNUSED;

View File

@ -385,14 +385,6 @@ static inline void
ggc_free_tree (t)
struct ggc_tree *t;
{
switch (TREE_CODE_CLASS (TREE_CODE (&t->tree)))
{
case 'd': /* A decl node. */
case 't': /* A type node. */
lang_cleanup_tree (&t->tree);
break;
}
#ifdef GGC_DUMP
fprintf (dump, "collect tree %p\n", &t->tree);
#endif

View File

@ -87,9 +87,6 @@ void ggc_mark PROTO ((void *));
the lang_specific hooks in the tree. */
void lang_mark_tree PROTO ((union tree_node *));
/* And similarly to free that data when the tree node is released. */
void lang_cleanup_tree PROTO ((union tree_node *));
/* The FALSE_LABEL_STACK, declared in except.h, has
language-dependent semantics. Each front-end should define this
function appropriately. */