aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-07-13 01:22:03 -0700
committerRichard Henderson <rth@gcc.gnu.org>2004-07-13 01:22:03 -0700
commit0976078c73f58e7350fcc0516618fdd7737c9696 (patch)
tree9ce1ffbe5f574651dfe2baa17807ad50e4394b8d /gcc/calls.c
parentfe9841365eb7e2908f9ba6b18a85910ee9024a54 (diff)
downloadgcc-0976078c73f58e7350fcc0516618fdd7737c9696.zip
gcc-0976078c73f58e7350fcc0516618fdd7737c9696.tar.gz
gcc-0976078c73f58e7350fcc0516618fdd7737c9696.tar.bz2
function.c (pass_by_reference): New.
* function.c (pass_by_reference): New. (assign_parm_find_data_types): Use it. * calls.c (initialize_argument_information): Likewise. (emit_library_call_value_1): Likewise. * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. * function.h (pass_by_reference): Declare. ada/ * misc.c (default_pass_by_ref): Use pass_by_reference. From-SVN: r84607
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index e128162..88bac10 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -974,11 +974,8 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
with those made by function.c. */
/* See if this argument should be passed by invisible reference. */
- if (CONTAINS_PLACEHOLDER_P (TYPE_SIZE (type))
- || TREE_ADDRESSABLE (type)
- || FUNCTION_ARG_PASS_BY_REFERENCE (*args_so_far, TYPE_MODE (type),
- type, argpos < n_named_args)
- )
+ if (pass_by_reference (args_so_far, TYPE_MODE (type),
+ type, argpos < n_named_args))
{
/* If we're compiling a thunk, pass through invisible
references instead of making a copy. */
@@ -3559,7 +3556,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
&& ! (CONSTANT_P (val) && LEGITIMATE_CONSTANT_P (val)))
val = force_operand (val, NULL_RTX);
- if (FUNCTION_ARG_PASS_BY_REFERENCE (args_so_far, mode, NULL_TREE, 1))
+ if (pass_by_reference (&args_so_far, mode, NULL_TREE, 1))
{
rtx slot;
int must_copy = ! FUNCTION_ARG_CALLEE_COPIES (args_so_far, mode,