From 17598a32063e7dcd6c2337c093f38b1c26200a97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9onard=20G=C3=A9rard?= Date: Thu, 3 Nov 2011 00:41:29 +0100 Subject: [PATCH] Correct inlining, which was aliasing clocks. --- compiler/heptagon/transformations/inline.ml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/heptagon/transformations/inline.ml b/compiler/heptagon/transformations/inline.ml index 9288e9b..1bd0949 100644 --- a/compiler/heptagon/transformations/inline.ml +++ b/compiler/heptagon/transformations/inline.ml @@ -18,17 +18,17 @@ open Hept_mapfold let to_be_inlined s = !Compiler_options.flatten || (List.mem s !Compiler_options.inline) -let fresh = Idents.gen_fresh "automata" (fun s -> s) +let fresh = Idents.gen_var "inline" let mk_unique_node nd = let mk_bind vd = let id = fresh (Idents.name vd.v_ident) in - (vd.v_ident, { vd with v_ident = id; }) in + (vd.v_ident, { vd with v_ident = id; v_clock = Clocks.fresh_clock () }) in let subst = List.map mk_bind (nd.n_block.b_local @ nd.n_input @ nd.n_output) in let subst_var_dec _ () vd = - ({ vd with v_ident = (List.assoc vd.v_ident subst).v_ident; }, ()) in + (List.assoc vd.v_ident subst, ()) in let subst_edesc _ () ed = match ed with | Evar vn -> (Evar (List.assoc vn subst).v_ident, ()) | _ -> raise Errors.Fallback in