@@ -148,7 +148,7 @@ let primitives_table = create_hashtable 57 [
148148 " %ignore" , Pignore ;
149149 " %field0" , Pfield (0 , Fld_na );
150150 " %field1" , Pfield (1 , Fld_na );
151- " %setfield0" , Psetfield (0 , true );
151+ " %setfield0" , Psetfield (0 , true , Fld_set_na );
152152 " %makeblock" , Pmakeblock (0 , Lambda. default_tag_info, Immutable );
153153 " %makemutable" , Pmakeblock (0 ,Lambda. default_tag_info, Mutable );
154154 " %raise" , Praise Raise_regular ;
@@ -386,7 +386,7 @@ let transl_prim loc prim args =
386386 let p = find_primitive loc prim_name in
387387 (* Try strength reduction based on the type of the argument *)
388388 begin match (p, args) with
389- (Psetfield(n , _ ), [arg1 ; arg2 ]) -> Psetfield (n, maybe_pointer arg2)
389+ (Psetfield(n , _ , dbg_info ), [arg1 ; arg2 ]) -> Psetfield (n, maybe_pointer arg2, dbg_info )
390390 | (Parraylength Pgenarray, [arg ]) -> Parraylength (array_kind arg)
391391 | (Parrayrefu Pgenarray, arg1 :: _ ) -> Parrayrefu (array_kind arg1)
392392 | (Parraysetu Pgenarray, arg1 :: _ ) -> Parraysetu (array_kind arg1)
@@ -798,8 +798,8 @@ and transl_exp0 e =
798798 | Texp_setfield (arg , _ , lbl , newval ) ->
799799 let access =
800800 match lbl.lbl_repres with
801- Record_regular -> Psetfield (lbl.lbl_pos, maybe_pointer newval)
802- | Record_float -> Psetfloatfield lbl.lbl_pos in
801+ Record_regular -> Psetfield (lbl.lbl_pos, maybe_pointer newval, Fld_record_set lbl.lbl_name )
802+ | Record_float -> Psetfloatfield ( lbl.lbl_pos, Fld_record_set lbl.lbl_name) in
803803 Lprim (access, [transl_exp arg; transl_exp newval])
804804 | Texp_array expr_list ->
805805 let kind = array_kind e in
@@ -1136,8 +1136,8 @@ and transl_record all_labels repres lbl_expr_list opt_init_expr =
11361136 let update_field (_ , lbl , expr ) cont =
11371137 let upd =
11381138 match lbl.lbl_repres with
1139- Record_regular -> Psetfield (lbl.lbl_pos, maybe_pointer expr)
1140- | Record_float -> Psetfloatfield lbl.lbl_pos in
1139+ Record_regular -> Psetfield (lbl.lbl_pos, maybe_pointer expr, Fld_record_set lbl.lbl_name )
1140+ | Record_float -> Psetfloatfield ( lbl.lbl_pos, Fld_record_set lbl.lbl_name) in
11411141 Lsequence (Lprim (upd, [Lvar copy_id; transl_exp expr]), cont) in
11421142 begin match opt_init_expr with
11431143 None -> assert false
0 commit comments