aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans-chap8.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2023-03-25 16:46:31 +0100
committerTristan Gingold <tgingold@free.fr>2023-03-26 16:53:52 +0200
commit8331d02c7407bc25fd5552dabcfbab23681770be (patch)
tree5eed2556c4ea23e0792aebac821e75f69b3dd108 /src/vhdl/translate/trans-chap8.adb
parentc0949eb9622abd03f9601b643bd8ed413a1d6bb3 (diff)
downloadghdl-8331d02c7407bc25fd5552dabcfbab23681770be.tar.gz
ghdl-8331d02c7407bc25fd5552dabcfbab23681770be.tar.bz2
ghdl-8331d02c7407bc25fd5552dabcfbab23681770be.zip
trans-chap8(translate_wait_statement): free sensitivity list
Diffstat (limited to 'src/vhdl/translate/trans-chap8.adb')
-rw-r--r--src/vhdl/translate/trans-chap8.adb7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/vhdl/translate/trans-chap8.adb b/src/vhdl/translate/trans-chap8.adb
index b5393479e..74bb3b57a 100644
--- a/src/vhdl/translate/trans-chap8.adb
+++ b/src/vhdl/translate/trans-chap8.adb
@@ -3769,13 +3769,15 @@ package body Trans.Chap8 is
Sensitivity : Iir_List;
Constr : O_Assoc_List;
Resume_State : State_Type;
+ Free_List_P : Boolean;
begin
Sensitivity := Get_Sensitivity_List (Stmt);
+ Free_List_P := False;
if Sensitivity = Null_Iir_List and Cond /= Null_Iir then
-- Extract sensitivity from condition.
Sensitivity := Create_Iir_List;
Vhdl.Canon.Canon_Extract_Sensitivity_Expression (Cond, Sensitivity);
- Set_Sensitivity_List (Stmt, Sensitivity);
+ Free_List_P := True;
end if;
-- The wait statement must be within a suspendable process/subprogram.
@@ -3831,6 +3833,9 @@ package body Trans.Chap8 is
Register_Signal_List
(Sensitivity, Ghdl_Process_Wait_Add_Sensitivity);
Chap9.Destroy_Types_In_List (Sensitivity);
+ if Free_List_P then
+ Destroy_Iir_List (Sensitivity);
+ end if;
end if;
-- suspend ();