Boolean transformation: added inputs/outputs

Non transformation of inputs/outputs during
Boolean pass lead to bugs.
This commit is contained in:
Gwenaël Delaval 2012-11-22 18:49:12 +01:00
parent e42ff23a4b
commit 0e60d2e839

View file

@ -884,16 +884,16 @@ let node ({ n_input = inputs;
n_contract = contract;
n_block = b } as n) =
Idents.enter_node n.n_name;
(* let inputs,in_loc,in_eq,env = buildenv_var_dec_list Env.empty inputs in *)
(* let outputs,out_loc,out_eq,env = buildenv_var_dec_list env outputs in *)
let contract, env = translate_contract Env.empty contract in
(* let add_locals = in_loc@out_loc in *)
(* let add_eqs = in_eq@out_eq in *)
(* let b,_ = translate_block env add_locals add_eqs b in *)
let inputs,in_loc,in_eq,env = buildenv_var_dec_list Env.empty inputs in
let outputs,out_loc,out_eq,env = buildenv_var_dec_list env outputs in
let contract, env = translate_contract env contract in
let add_locals = in_loc@out_loc in
let add_eqs = in_eq@out_eq in
let b,_ = translate_block env add_locals add_eqs b in
let b,_ = translate_block env [] [] b in
{ n with
(* n_input = List.rev inputs; *)
(* n_output = List.rev outputs; *)
n_input = List.rev inputs;
n_output = List.rev outputs;
n_contract = contract;
n_block = b }