aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/elab-vhdl_context.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/elab-vhdl_context.ads')
-rw-r--r--src/synth/elab-vhdl_context.ads20
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;