Bug fix: copied wrong size to destination in structure returns
This commit is contained in:
parent
f8fd2aa273
commit
4ec7d8bf7f
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue