diff options
author | Mark Mitchell <mark@codesourcery.com> | 1999-09-07 18:01:53 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1999-09-07 18:01:53 +0000 |
commit | fdfcc44c12c212b296809cc19c81bc38508b3b27 (patch) | |
tree | c6f59091f29941e9ce40cb5dfc24075cd7f663eb | |
parent | 87e3dbc92a1bb114bdde00fe8d541f7fc121e9d6 (diff) | |
download | gcc-fdfcc44c12c212b296809cc19c81bc38508b3b27.zip gcc-fdfcc44c12c212b296809cc19c81bc38508b3b27.tar.gz gcc-fdfcc44c12c212b296809cc19c81bc38508b3b27.tar.bz2 |
Makefile.in (tree.o): Depend on ggc.h.
* Makefile.in (tree.o): Depend on ggc.h.
* class.c (make_method_vec): Remove.
(free_method_vec): Likewise.
(free_method_vecs): Remove.
(add_method): Don't use them.
* cp-tree.def (PTRMEM_CST): Make it longer.
(TEMPLATE_PARM_INDEX): Make it shorter.
* cp-tree.h (BINDING_HAS_LEVEL_P): New macro.
(template_parm_index): Remove RTL field.
(ptrmem_cst): Add RTL field.
(finish_function): Removed parameter.
(process_next_inline): Change prototype.
(init_cplus_unsave): Rename to init_tree.
(binding_init): Remove.
* decl.c (free_binding_nodes): Remove.
(push_binding): Don't use them. Set BINDING_HAS_LEVEL_P.
(pop_binding): Don't use free_binding_nodes.
(free_binding_vecs): Remove.
(store_bindings): Don't use them.
(pop_from_top_level): Likewise.
(lookup_namespace_name): Simplify.
(build_typename_type): Don't use obstack_free.
(unqualified_namespace_lookup): Simplify.
(lookup_name_real): Simplify.
(start_function): Remove comment about leaks.
(finish_function): Removed nested parameter. Call
expand_end_bindings even when building_stmt_tree.
Call ggc_push_context and ggc_pop_context around
rest_of_compilation, if necessary.
(mark_cp_function_context): Handle a NULL language-context.
(lang_mark_false_label_stack): Fix typo.
(lang_mark_tree): Handle CPLUS_BINDING, OVERLOAD,
TEMPLATE_PARM_INDEX. Handle the funny TYPE_LANG_SPECIFIC on
pointer to method types.
(lang_cleanup_tree): Use free to free TYPE_LANG_SPECIFIC.
* decl2.c (finish_objects): Adjust call to finish_function.
(finish_static_store_duration_function): Likewise.
(do_nonmember_using_decl): Remove call to binding_init.
* except.c (end_anon_func): Adjust call to finish_function.
* lex.c (mark_impl_file_chain): New function.
(init_parse): Call init_tree, not init_cplus_unsave.
Add GC roots.
(cp_pramga_interface): Use xmalloc, not permalloc.
(cp_pragma_implementation): Likewise.
(begin_definition_of_inclass_inline): Simplify.
(process_next_inline): Adjust prototype.
(do_scoped_id): Don't call binding_init.
(make_lang_type): Allocate TYPE_LANG_SPECIFIC with xmalloc.
* method.c (emit_thunk): Adjust call to finish_function.
(synthesize_method): Likewise.
* parse.y (%union): Add a new `pi' variant.
(PRE_PARSED_FUNCTION_DECL): Use it.
(fn.defpen): Likewise.
(fndef): Adjust call to finish_function.
* pt.c (instantiate_decl): Likewise.
* rtti.c (syntheisze_tinfo_fn): Likewise.
* semantics.c (expand_body): Likewise.
* tree.c: Include ggc.h.
(mark_list_hash): New function.
(binding_init): Remove.
(init_cplus_unsave): Rename to ...
(init_tree): This. Add GC roots.
From-SVN: r29173
-rw-r--r-- | gcc/cp/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/cp/method.c | 4 | ||||
-rw-r--r-- | gcc/cp/pt.c | 2 | ||||
-rw-r--r-- | gcc/cp/rtti.c | 2 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 7 |
5 files changed, 9 insertions, 14 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 996ee3e..6e0fc82 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -48,15 +48,15 @@ (process_next_inline): Adjust prototype. (do_scoped_id): Don't call binding_init. (make_lang_type): Allocate TYPE_LANG_SPECIFIC with xmalloc. - (emit_thunk): Adjust call to finish_function. + * method.c (emit_thunk): Adjust call to finish_function. (synthesize_method): Likewise. * parse.y (%union): Add a new `pi' variant. (PRE_PARSED_FUNCTION_DECL): Use it. (fn.defpen): Likewise. (fndef): Adjust call to finish_function. - (instantiate_decl): Likewise. - (rtti.c): Likewise. - (semantics.c): Likewise. + * pt.c (instantiate_decl): Likewise. + * rtti.c (syntheisze_tinfo_fn): Likewise. + * semantics.c (expand_body): Likewise. * tree.c: Include ggc.h. (mark_list_hash): New function. (binding_init): Remove. diff --git a/gcc/cp/method.c b/gcc/cp/method.c index cf681e1..7b74443 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -2147,7 +2147,7 @@ emit_thunk (thunk_fndecl) t = build_call (function, TREE_TYPE (TREE_TYPE (function)), t); c_expand_return (t); - finish_function (lineno, 0, 0); + finish_function (lineno, 0); /* Don't let the backend defer this function. */ if (DECL_DEFER_OUTPUT (thunk_fndecl)) @@ -2388,7 +2388,7 @@ synthesize_method (fndecl) } } - finish_function (lineno, 0, nested); + finish_function (lineno, 0); extract_interface_info (); if (! context) diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 01d4f1f..f248752 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -9730,7 +9730,7 @@ instantiate_decl (d) /* Clean up. */ pop_obstacks (); - finish_function (lineno, 0, nested); + finish_function (lineno, 0); expanding_p = saved_expanding_p; /* Now, generate RTL for the function. */ diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c index 93947d2..c3ce330 100644 --- a/gcc/cp/rtti.c +++ b/gcc/cp/rtti.c @@ -1173,5 +1173,5 @@ synthesize_tinfo_fn (fndecl) tmp = build_indirect_ref (tmp, 0); c_expand_return (tmp); pop_momentary (); - finish_function (lineno, 0, 0); + finish_function (lineno, 0); } diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 5502df3..d6099f3 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2185,14 +2185,9 @@ expand_body (fn) tree fn; { int saved_expanding_p; - int nested; tree t; tree try_block; - /* Remember whether we're already processing a function definition - so that we can tell finish_function. */ - nested = in_function_p (); - /* Let the compiler know that now is the time to really generate actualy RTL. */ saved_expanding_p = expanding_p; @@ -2248,7 +2243,7 @@ expand_body (fn) finish_function_handler_sequence (NULL_TREE); } - finish_function (lineno, 0, nested); + finish_function (lineno, 0); /* Restore EXPANDING_P. */ expanding_p = saved_expanding_p; |