Bug fix: copied wrong size to destination in structure returns

This commit is contained in:
ceriel 1997-07-01 08:33:13 +00:00
parent f8fd2aa273
commit 4ec7d8bf7f
2 changed files with 2 additions and 2 deletions

View file

@ -412,7 +412,7 @@ do_return_expr(expr)
code_expr(expr, RVAL, TRUE, NO_LABEL, NO_LABEL); code_expr(expr, RVAL, TRUE, NO_LABEL, NO_LABEL);
if (struct_return != 0) { if (struct_return != 0) {
LoadLocal((arith) 0, pointer_size); 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); C_bra(return_label);
return_expr_occurred = 1; return_expr_occurred = 1;

View file

@ -319,7 +319,7 @@ end_proc(fbytes)
if (return_expr_occurred) { if (return_expr_occurred) {
if (func_res_label != 0) { if (func_res_label != 0) {
C_lae_dlb(func_res_label, (arith)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_lae_dlb(func_res_label, (arith)0);
C_ret(pointer_size); C_ret(pointer_size);
} }