tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL as temporary.
* tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL as temporary. From-SVN: r120999
This commit is contained in:
parent
3a53e16539
commit
bbba68dd6b
@ -1,3 +1,8 @@
|
||||
2007-01-20 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
|
||||
as temporary.
|
||||
|
||||
2007-01-19 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
|
||||
|
@ -617,6 +617,7 @@ adjust_return_value (basic_block bb, tree m, tree a)
|
||||
{
|
||||
tree ret_stmt = last_stmt (bb), ret_var, var, stmt, tmp;
|
||||
tree ret_type = TREE_TYPE (DECL_RESULT (current_function_decl));
|
||||
tree *ret_op;
|
||||
block_stmt_iterator bsi = bsi_last (bb);
|
||||
|
||||
gcc_assert (TREE_CODE (ret_stmt) == RETURN_EXPR);
|
||||
@ -627,13 +628,11 @@ adjust_return_value (basic_block bb, tree m, tree a)
|
||||
|
||||
if (TREE_CODE (ret_var) == GIMPLE_MODIFY_STMT)
|
||||
{
|
||||
ret_var->base.ann = (tree_ann_t) stmt_ann (ret_stmt);
|
||||
bsi_replace (&bsi, ret_var, true);
|
||||
SSA_NAME_DEF_STMT (GIMPLE_STMT_OPERAND (ret_var, 0)) = ret_var;
|
||||
ret_var = GIMPLE_STMT_OPERAND (ret_var, 0);
|
||||
ret_stmt = build1 (RETURN_EXPR, TREE_TYPE (ret_stmt), ret_var);
|
||||
bsi_insert_after (&bsi, ret_stmt, BSI_NEW_STMT);
|
||||
ret_op = &GIMPLE_STMT_OPERAND (ret_var, 1);
|
||||
ret_var = *ret_op;
|
||||
}
|
||||
else
|
||||
ret_op = &TREE_OPERAND (ret_stmt, 0);
|
||||
|
||||
if (m)
|
||||
{
|
||||
@ -663,7 +662,7 @@ adjust_return_value (basic_block bb, tree m, tree a)
|
||||
bsi_insert_before (&bsi, stmt, BSI_SAME_STMT);
|
||||
}
|
||||
|
||||
TREE_OPERAND (ret_stmt, 0) = var;
|
||||
*ret_op = var;
|
||||
update_stmt (ret_stmt);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user