diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-05-25 08:21:48 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-05-25 08:21:48 +0200 |
commit | 58712f5c52fbe00dc83e8db9c5e262853e2b7617 (patch) | |
tree | 1992f64831da64ff4c15ca1b9569764de1e4bda0 /src/synth/elab-vhdl_context.ads | |
parent | 29f97619c256b6a1bfa3e2717b9b5d0c33dea449 (diff) | |
download | ghdl-58712f5c52fbe00dc83e8db9c5e262853e2b7617.tar.gz ghdl-58712f5c52fbe00dc83e8db9c5e262853e2b7617.tar.bz2 ghdl-58712f5c52fbe00dc83e8db9c5e262853e2b7617.zip |
synth: move procedure call copyback values in context
Diffstat (limited to 'src/synth/elab-vhdl_context.ads')
-rw-r--r-- | src/synth/elab-vhdl_context.ads | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/synth/elab-vhdl_context.ads b/src/synth/elab-vhdl_context.ads index c67d99b0d..0bf2a4b50 100644 --- a/src/synth/elab-vhdl_context.ads +++ b/src/synth/elab-vhdl_context.ads @@ -145,8 +145,11 @@ package Elab.Vhdl_Context is procedure Mutate_Object (Syn_Inst : Synth_Instance_Acc; Decl : Node; Vt : Valtyp); - procedure Destroy_Object - (Syn_Inst : Synth_Instance_Acc; Decl : Node); + type Destroy_Type is limited private; + procedure Destroy_Init (D : out Destroy_Type; + Syn_Inst : Synth_Instance_Acc); + procedure Destroy_Object (D : in out Destroy_Type; Decl : Node); + procedure Destroy_Finish (D : in out Destroy_Type); -- Get the value of OBJ. function Get_Value (Syn_Inst : Synth_Instance_Acc; Obj : Node) @@ -176,6 +179,12 @@ package Elab.Vhdl_Context is function Get_Caller_Instance (Syn_Inst : Synth_Instance_Acc) return Synth_Instance_Acc; private + type Destroy_Type is record + Inst : Synth_Instance_Acc; + First : Object_Slot_Type; + Last : Object_Slot_Type; + end record; + type Obj_Kind is ( Obj_None, |