tree.c (type_hash_marked_p): Consider as marked if debug symbol number has been set.

* tree.c (type_hash_marked_p): Consider as marked if debug symbol
	number has been set.
	(type_hash_mark): Mark type itself.

From-SVN: r45794
This commit is contained in:
Richard Kenner 2001-09-24 22:58:27 +00:00 committed by Richard Kenner
parent 4ed5bcfb1e
commit 6abba05560
2 changed files with 18 additions and 3 deletions

View File

@ -1,3 +1,9 @@
Mon Sep 24 18:57:59 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree.c (type_hash_marked_p): Consider as marked if debug symbol
number has been set.
(type_hash_mark): Mark type itself.
2001-09-24 Neil Booth <neil@daikokuya.demon.co.uk>
* c-lex.c (cb_def_pragma): Update.

View File

@ -3139,22 +3139,31 @@ type_hash_canon (hashcode, type)
}
}
/* See if the data pointed to by the type hash table is marked. */
/* See if the data pointed to by the type hash table is marked. We consider
it marked if the type is marked or if a debug type number or symbol
table entry has been made for the type. This reduces the amount of
debugging output and eliminates that dependency of the debug output on
the number of garbage collections. */
static int
type_hash_marked_p (p)
const void *p;
{
return ggc_marked_p (((struct type_hash *) p)->type);
tree type = ((struct type_hash *) p)->type;
return ggc_marked_p (type) || TYPE_SYMTAB_POINTER (type);
}
/* Mark the entry in the type hash table the type it points to is marked. */
/* Mark the entry in the type hash table the type it points to is marked.
Also mark the type in case we are considering this entry "marked" by
virtue of TYPE_SYMTAB_POINTER being set. */
static void
type_hash_mark (p)
const void *p;
{
ggc_mark (p);
ggc_mark_tree (((struct type_hash *) p)->type);
}
/* Mark the hashtable slot pointed to by ENTRY (which is really a