summaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index d3b21a9d0c0..f0350795bb1 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -996,6 +996,7 @@ expand_call (exp, target, ignore)
/* See if this argument should be passed by invisible reference. */
if ((TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST
&& contains_placeholder_p (TYPE_SIZE (type)))
+ || TYPE_NEEDS_CONSTRUCTING (type)
#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
|| FUNCTION_ARG_PASS_BY_REFERENCE (args_so_far, TYPE_MODE (type),
type, argpos < n_named_args)