Browse Source

Bug fix: copied wrong size to destination in structure returns

ceriel 27 years ago
parent
commit
0418600539
2 changed files with 2 additions and 2 deletions
  1. 1 1
      lang/cem/cemcom.ansi/code.c
  2. 1 1
      lang/cem/cemcom/code.c

+ 1 - 1
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;

+ 1 - 1
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);
 		}