diff options
Diffstat (limited to 'src/synth/elab-vhdl_context.ads')
-rw-r--r-- | src/synth/elab-vhdl_context.ads | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/synth/elab-vhdl_context.ads b/src/synth/elab-vhdl_context.ads index 6227b138d..0bf2a4b50 100644 --- a/src/synth/elab-vhdl_context.ads +++ b/src/synth/elab-vhdl_context.ads @@ -98,10 +98,6 @@ package Elab.Vhdl_Context is function Get_Next_Extra_Instance (Inst : Synth_Instance_Acc) return Synth_Instance_Acc; - -- Current statement (for execution). - function Get_Current_Stmt (Inst : Synth_Instance_Acc) return Node; - procedure Set_Current_Stmt (Inst : Synth_Instance_Acc; Stmt : Node); - procedure Create_Object (Syn_Inst : Synth_Instance_Acc; Decl : Node; Vt : Valtyp); @@ -149,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) @@ -180,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, @@ -241,9 +246,6 @@ private Extra_Units : Synth_Instance_Acc; Extra_Link : Synth_Instance_Acc; - -- For processes and subprograms. - Cur_Stmt : Node; - -- Last elaborated object. Detect elaboration issues. Elab_Objects : Object_Slot_Type; |