Fixed bug in the interference of fold

This commit is contained in:
Cédric Pasteur 2011-05-02 16:40:42 +02:00
parent 1ea4290f9e
commit 75b4fa9ddc
2 changed files with 1 additions and 1 deletions

View file

@ -444,6 +444,7 @@ let process_eq ({ eq_lhs = pat; eq_rhs = e } as eq) =
| Evarpat x, Eiterator((Ifold|Ifoldi), { a_op = Enode _ | Efun _ }, _, pw_list, w_list, _) ->
(* because of the encoding of the fold, the output is written before
the inputs are read so they must interfere *)
let w_list, _ = Misc.split_last w_list in
let invars = InterfRead.ivars_of_extvalues w_list in
let pinvars = InterfRead.ivars_of_extvalues pw_list in
List.iter (add_interference_link_from_ivar (Ivar x)) invars;

View file

@ -114,7 +114,6 @@ let var_decs _ (env, mutables,j) vds =
else (
let vd =
if IdentSet.mem vd.v_ident mutables then (
Format.printf "%s is mutable@.";
{ vd with v_mutable = true }
) else
vd