diff options
Diffstat (limited to 'src/synth')
-rw-r--r-- | src/synth/synth-stmts.adb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/synth/synth-stmts.adb b/src/synth/synth-stmts.adb index 8b1fc0645..05eb57e37 100644 --- a/src/synth/synth-stmts.adb +++ b/src/synth/synth-stmts.adb @@ -1488,7 +1488,7 @@ package body Synth.Stmts is return Res; end Synth_Subprogram_Call; - procedure Synth_Procedure_Call (C : in out Seq_Context; Stmt : Node) + procedure Synth_Procedure_Call (Syn_Inst : Synth_Instance_Acc; Stmt : Node) is Call : constant Node := Get_Procedure_Call (Stmt); Imp : constant Node := Get_Implementation (Call); @@ -1502,7 +1502,7 @@ package body Synth.Stmts is return; end if; - Res := Synth_Subprogram_Call (C.Inst, Call); + Res := Synth_Subprogram_Call (Syn_Inst, Call); pragma Assert (Res = null); end Synth_Procedure_Call; @@ -1845,7 +1845,7 @@ package body Synth.Stmts is when Iir_Kind_Return_Statement => Synth_Return_Statement (C, Stmt); when Iir_Kind_Procedure_Call_Statement => - Synth_Procedure_Call (C, Stmt); + Synth_Procedure_Call (C.Inst, Stmt); when Iir_Kind_Report_Statement | Iir_Kind_Assertion_Statement => -- TODO ? @@ -2379,6 +2379,10 @@ package body Synth.Stmts is Push_Phi; Synth_Selected_Signal_Assignment (Syn_Inst, Stmt); Pop_And_Merge_Phi (Build_Context, Stmt); + when Iir_Kind_Concurrent_Procedure_Call_Statement => + Push_Phi; + Synth_Procedure_Call (Syn_Inst, Stmt); + Pop_And_Merge_Phi (Build_Context, Stmt); when Iir_Kinds_Process_Statement => Push_Phi; Synth_Process_Statement (Syn_Inst, Stmt); |