diff options
Diffstat (limited to 'bytecomp')
| -rw-r--r-- | bytecomp/translobj.ml | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/bytecomp/translobj.ml b/bytecomp/translobj.ml index c6a958cfc3..7f0d8577eb 100644 --- a/bytecomp/translobj.ml +++ b/bytecomp/translobj.ml @@ -93,12 +93,19 @@ let prim_makearray = { prim_name = "caml_make_vect"; prim_arity = 2; prim_alloc = true; prim_native_name = ""; prim_native_float = false } +(* Also use it for required globals *) let transl_label_init expr = let expr = Hashtbl.fold (fun c id expr -> Llet(Alias, id, Lconst c, expr)) consts expr in + let expr = + List.fold_right + (fun id expr -> Lsequence(Lprim(Pgetglobal id, []), expr)) + (Env.get_required_globals ()) expr + in + Env.reset_required_globals (); reset_labels (); expr |
