From 4f38921423b6dfe7c52ff357584ac4650fee3220 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Fri, 8 Oct 1993 22:29:17 +0000 Subject: [PATCH] (emit_library_call_value): Compute struct_value_size, and pass it to emit_call_1. From-SVN: r5689 --- gcc/calls.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/calls.c b/gcc/calls.c index 286dcdd03b5..620c1b13fc3 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2353,6 +2353,7 @@ emit_library_call_value (va_alist) rtx value; rtx mem_value = 0; int pcc_struct_value = 0; + int struct_value_size = 0; /* library calls are never indirect calls. */ int current_call_is_indirect = 0; @@ -2376,6 +2377,7 @@ emit_library_call_value (va_alist) if (value == 0) value = gen_reg_rtx (outmode); #else /* not PCC_STATIC_STRUCT_RETURN */ + struct_value_size = GET_MODE_SIZE (outmode); if (value != 0 && GET_CODE (value) == MEM) mem_value = value; else @@ -2662,7 +2664,8 @@ emit_library_call_value (va_alist) /* We pass the old value of inhibit_defer_pop + 1 to emit_call_1, which will set inhibit_defer_pop to that value. */ - emit_call_1 (fun, get_identifier (XSTR (orgfun, 0)), args_size.constant, 0, + emit_call_1 (fun, get_identifier (XSTR (orgfun, 0)), args_size.constant, + struct_value_size, FUNCTION_ARG (args_so_far, VOIDmode, void_type_node, 1), (outmode != VOIDmode && mem_value == 0 ? hard_libcall_value (outmode) : NULL_RTX), -- 2.30.2