aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/simul/simul-vhdl_simul.adb4
-rw-r--r--src/synth/synth-vhdl_decls.adb2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/simul/simul-vhdl_simul.adb b/src/simul/simul-vhdl_simul.adb
index 92fcc920a..bee671e1b 100644
--- a/src/simul/simul-vhdl_simul.adb
+++ b/src/simul/simul-vhdl_simul.adb
@@ -523,6 +523,8 @@ package body Simul.Vhdl_Simul is
-- Skip the resume statement.
Stmt := Get_Chain (Stmt);
pragma Assert (Get_Kind (Stmt) = Iir_Kind_Procedure_Call_Statement);
+ Synth.Vhdl_Decls.Finalize_Declarations
+ (Process.Instance, Get_Declaration_Chain (Bod), True);
Synth_Subprogram_Back_Association
(Process.Instance, Caller_Inst,
Get_Interface_Declaration_Chain (Imp),
@@ -806,6 +808,8 @@ package body Simul.Vhdl_Simul is
-- TODO: end of call.
else
Execute_Sequential_Statements (Process);
+ Synth.Vhdl_Decls.Finalize_Declarations
+ (Sub_Inst, Get_Declaration_Chain (Bod), True);
Synth_Subprogram_Back_Association
(Sub_Inst, Inst, Inter_Chain, Assoc_Chain);
Next_Stmt := Null_Node;
diff --git a/src/synth/synth-vhdl_decls.adb b/src/synth/synth-vhdl_decls.adb
index eb1d37e2f..0be74aeb6 100644
--- a/src/synth/synth-vhdl_decls.adb
+++ b/src/synth/synth-vhdl_decls.adb
@@ -878,6 +878,8 @@ package body Synth.Vhdl_Decls is
null;
when Iir_Kind_Use_Clause =>
null;
+ when Iir_Kind_Suspend_State_Declaration =>
+ null;
when others =>
Vhdl.Errors.Error_Kind ("finalize_declaration", Decl);
end case;