decl.c (saved_scope_p): New fn.

* decl.c (saved_scope_p): New fn.
	* class.c (pushclass): Don't clear class_cache_obstack if we have
	saved scopes.

From-SVN: r29468
This commit is contained in:
Jason Merrill 1999-09-17 01:44:05 +00:00 committed by Jason Merrill
parent 0868989e57
commit 51925d8a2a
3 changed files with 22 additions and 5 deletions

View File

@ -1,3 +1,9 @@
1999-09-16 Jason Merrill <jason@yorick.cygnus.com>
* decl.c (saved_scope_p): New fn.
* class.c (pushclass): Don't clear class_cache_obstack if we have
saved scopes.
1999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* lex.c (init_cpp_parse): Call xcalloc, not malloc/bzero.

View File

@ -4499,11 +4499,16 @@ pushclass (type, modify)
/* Forcibly remove any old class remnants. */
invalidate_class_lookup_cache ();
/* Now, free the obstack on which we cached all the values. */
if (class_cache_firstobj)
obstack_free (&class_cache_obstack, class_cache_firstobj);
class_cache_firstobj
= (char*) obstack_finish (&class_cache_obstack);
/* Now, free the obstack on which we cached all the values.
We can't do this if we have saved scopes sitting around, since
they may have saved previous_class_values. */
if (! saved_scope_p ())
{
if (class_cache_firstobj)
obstack_free (&class_cache_obstack, class_cache_firstobj);
class_cache_firstobj
= (char*) obstack_finish (&class_cache_obstack);
}
}
/* If we're about to enter a nested class, clear

View File

@ -2481,6 +2481,12 @@ pop_from_top_level ()
free (s);
}
int
saved_scope_p ()
{
return current_saved_scope != NULL;
}
/* Push a definition of struct, union or enum tag "name".
into binding_level "b". "type" should be the type node,