summaryrefslogtreecommitdiff
path: root/bytecomp/bytegen.ml
diff options
context:
space:
mode:
Diffstat (limited to 'bytecomp/bytegen.ml')
-rw-r--r--bytecomp/bytegen.ml8
1 files changed, 6 insertions, 2 deletions
diff --git a/bytecomp/bytegen.ml b/bytecomp/bytegen.ml
index af5f0a3fd8..be884ded5f 100644
--- a/bytecomp/bytegen.ml
+++ b/bytecomp/bytegen.ml
@@ -144,8 +144,9 @@ let rec size_of_lambda = function
| Llet (Strict, id, Lprim (Pduprecord (kind, size), _), body)
when check_recordwith_updates id body ->
begin match kind with
- | Record_regular -> RHS_block size
+ | Record_regular | Record_inlined _ -> RHS_block size
| Record_float -> RHS_floatblock size
+ | Record_extension -> RHS_block (size + 1)
end
| Llet(str, id, arg, body) -> size_of_lambda body
| Lletrec(bindings, body) -> size_of_lambda body
@@ -154,7 +155,10 @@ let rec size_of_lambda = function
RHS_block (List.length args)
| Lprim (Pmakearray Pfloatarray, args) -> RHS_floatblock (List.length args)
| Lprim (Pmakearray Pgenarray, args) -> assert false
- | Lprim (Pduprecord (Record_regular, size), args) -> RHS_block size
+ | Lprim (Pduprecord ((Record_regular | Record_inlined _), size), args) ->
+ RHS_block size
+ | Lprim (Pduprecord (Record_extension, size), args) ->
+ RHS_block (size + 1)
| Lprim (Pduprecord (Record_float, size), args) -> RHS_floatblock size
| Levent (lam, _) -> size_of_lambda lam
| Lsequence (lam, lam') -> size_of_lambda lam'