diff --git a/lang/cem/cemcom.ansi/code.c b/lang/cem/cemcom.ansi/code.c index e16ae472c..1f969bf95 100644 --- a/lang/cem/cemcom.ansi/code.c +++ b/lang/cem/cemcom.ansi/code.c @@ -412,7 +412,7 @@ do_return_expr(expr) code_expr(expr, RVAL, TRUE, NO_LABEL, NO_LABEL); if (struct_return != 0) { LoadLocal((arith) 0, pointer_size); - store_block(func_size, func_type->tp_align); + store_block(func_type->tp_size, func_type->tp_align); } C_bra(return_label); return_expr_occurred = 1; diff --git a/lang/cem/cemcom/code.c b/lang/cem/cemcom/code.c index eda7b208a..d82b8dac1 100644 --- a/lang/cem/cemcom/code.c +++ b/lang/cem/cemcom/code.c @@ -319,7 +319,7 @@ end_proc(fbytes) if (return_expr_occurred) { if (func_res_label != 0) { C_lae_dlb(func_res_label, (arith)0); - store_block(func_size, func_type->tp_align); + store_block(func_type->tp_size, func_type->tp_align); C_lae_dlb(func_res_label, (arith)0); C_ret(pointer_size); }