calls.c (initialize_argument_information): Forbid sibcalls if a callee-copied argument is stored in the current function's...
* calls.c (initialize_argument_information): Forbid sibcalls if a callee-copied argument is stored in the current function's frame. From-SVN: r82129
This commit is contained in:
parent
fea6ecb746
commit
9fd4743509
2 changed files with 12 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2004-05-22 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* calls.c (initialize_argument_information): Forbid sibcalls if a
|
||||
callee-copied argument is stored in the current function's frame.
|
||||
|
||||
2004-05-22 Eric Christopher <echristo@redhat.com>
|
||||
|
||||
* fix-header.c (read_scan_file): Update for add_path change.
|
||||
|
|
|
@ -1129,6 +1129,13 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
|
|||
&& ! REG_P (DECL_RTL (TREE_OPERAND (args[i].tree_value, 1))))
|
||||
args[i].tree_value = TREE_OPERAND (args[i].tree_value, 1);
|
||||
|
||||
/* We can't use sibcalls if a callee-copied argument is stored
|
||||
in the current function's frame. */
|
||||
if (!call_from_thunk_p
|
||||
&& (!DECL_P (args[i].tree_value)
|
||||
|| !TREE_STATIC (args[i].tree_value)))
|
||||
*may_tailcall = false;
|
||||
|
||||
args[i].tree_value = build1 (ADDR_EXPR,
|
||||
build_pointer_type (type),
|
||||
args[i].tree_value);
|
||||
|
|
Loading…
Add table
Reference in a new issue