Commit 3e4010c4 by Mark Mitchell Committed by Mark Mitchell

cp-tree.h (language_function): Remove x_last_dtor_insn and x_last_parm_cleanup_insn.

	* cp-tree.h (language_function): Remove x_last_dtor_insn and
	x_last_parm_cleanup_insn.
	* decl.c (last_dtor_insn): Remove.
	(last_parm_cleanup_insn): Likewise.
	(expand_start_early_try_stmts): Don't set them.
	(store_parm_decls): Likewise.
	(save_function_data): Or save them.
	(mark_lang_function): Or mark them.

From-SVN: r30457
parent fe1b3b96
1999-11-09 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (language_function): Remove x_last_dtor_insn and
x_last_parm_cleanup_insn.
* decl.c (last_dtor_insn): Remove.
(last_parm_cleanup_insn): Likewise.
(expand_start_early_try_stmts): Don't set them.
(store_parm_decls): Likewise.
(save_function_data): Or save them.
(mark_lang_function): Or mark them.
1999-11-08 Mark Mitchell <mark@codesourcery.com> 1999-11-08 Mark Mitchell <mark@codesourcery.com>
* decl.c (store_parm_decls): Generate cleanup code at * decl.c (store_parm_decls): Generate cleanup code at
......
...@@ -679,8 +679,6 @@ struct language_function ...@@ -679,8 +679,6 @@ struct language_function
tree *x_vcalls_possible_p; tree *x_vcalls_possible_p;
struct rtx_def *x_last_dtor_insn;
struct rtx_def *x_last_parm_cleanup_insn;
struct rtx_def *x_result_rtx; struct rtx_def *x_result_rtx;
int returns_value; int returns_value;
......
...@@ -254,18 +254,6 @@ int in_std; ...@@ -254,18 +254,6 @@ int in_std;
/* Expect only namespace names now. */ /* Expect only namespace names now. */
static int only_namespace_names; static int only_namespace_names;
/* In a destructor, the last insn emitted after the start of the
function and the parms. */
#define last_dtor_insn cp_function_chain->x_last_dtor_insn
/* In a constructor, the last insn emitted after the start of the
function and the parms, the exception specification and any
function-try-block. The constructor initializers are emitted after
this insn. */
#define last_parm_cleanup_insn cp_function_chain->x_last_parm_cleanup_insn
/* If original DECL_RESULT of current function was a register, /* If original DECL_RESULT of current function was a register,
but due to being an addressable named return value, would up but due to being an addressable named return value, would up
on the stack, this variable holds the named return value's on the stack, this variable holds the named return value's
...@@ -13099,15 +13087,12 @@ start_function (declspecs, declarator, attrs, flags) ...@@ -13099,15 +13087,12 @@ start_function (declspecs, declarator, attrs, flags)
return 1; return 1;
} }
/* Called after store_parm_decls for a function-try-block. We need to update /* Called after store_parm_decls for a function-try-block. */
last_parm_cleanup_insn so that the base initializers for a constructor
are run within this block, not before it. */
void void
expand_start_early_try_stmts () expand_start_early_try_stmts ()
{ {
expand_start_try_stmts (); expand_start_try_stmts ();
last_parm_cleanup_insn = get_last_insn ();
} }
/* Store the parameter declarations into the current function declaration. /* Store the parameter declarations into the current function declaration.
...@@ -13249,9 +13234,6 @@ store_parm_decls () ...@@ -13249,9 +13234,6 @@ store_parm_decls ()
&& building_stmt_tree () && building_stmt_tree ()
&& TYPE_RAISES_EXCEPTIONS (TREE_TYPE (current_function_decl))) && TYPE_RAISES_EXCEPTIONS (TREE_TYPE (current_function_decl)))
current_eh_spec_try_block = expand_start_eh_spec (); current_eh_spec_try_block = expand_start_eh_spec ();
last_parm_cleanup_insn = get_last_insn ();
last_dtor_insn = get_last_insn ();
} }
/* Bind a name and initialization to the return value of /* Bind a name and initialization to the return value of
...@@ -13298,8 +13280,6 @@ save_function_data (decl) ...@@ -13298,8 +13280,6 @@ save_function_data (decl)
f->x_member_init_list = NULL_TREE; f->x_member_init_list = NULL_TREE;
f->x_stmt_tree.x_last_stmt = NULL_TREE; f->x_stmt_tree.x_last_stmt = NULL_TREE;
f->x_stmt_tree.x_last_expr_type = NULL_TREE; f->x_stmt_tree.x_last_expr_type = NULL_TREE;
f->x_last_dtor_insn = NULL_RTX;
f->x_last_parm_cleanup_insn = NULL_RTX;
f->x_result_rtx = NULL_RTX; f->x_result_rtx = NULL_RTX;
f->x_named_label_uses = NULL; f->x_named_label_uses = NULL;
f->bindings = NULL; f->bindings = NULL;
...@@ -14233,8 +14213,6 @@ mark_lang_function (p) ...@@ -14233,8 +14213,6 @@ mark_lang_function (p)
ggc_mark_tree (p->x_eh_spec_try_block); ggc_mark_tree (p->x_eh_spec_try_block);
ggc_mark_tree (p->x_scope_stmt_stack); ggc_mark_tree (p->x_scope_stmt_stack);
ggc_mark_rtx (p->x_last_dtor_insn);
ggc_mark_rtx (p->x_last_parm_cleanup_insn);
ggc_mark_rtx (p->x_result_rtx); ggc_mark_rtx (p->x_result_rtx);
mark_stmt_tree (&p->x_stmt_tree); mark_stmt_tree (&p->x_stmt_tree);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment