aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-07-16 08:27:36 +0200
committerTristan Gingold <tgingold@free.fr>2022-07-16 08:27:36 +0200
commit34c4e6f26fd9b628f85b1b892ab8522f5bd58928 (patch)
tree830a0d9f1f1460aac6eae4226e75c8ead3c1bf44
parentf0a5605656999f2b26a762831d26572290eec934 (diff)
downloadghdl-34c4e6f26fd9b628f85b1b892ab8522f5bd58928.tar.gz
ghdl-34c4e6f26fd9b628f85b1b892ab8522f5bd58928.tar.bz2
ghdl-34c4e6f26fd9b628f85b1b892ab8522f5bd58928.zip
vhdl-cannon: add Canon_Extract_Sensitivity_Break_Statement
-rw-r--r--src/vhdl/vhdl-canon.adb13
-rw-r--r--src/vhdl/vhdl-canon.ads4
2 files changed, 16 insertions, 1 deletions
diff --git a/src/vhdl/vhdl-canon.adb b/src/vhdl/vhdl-canon.adb
index 67d91478d..151be16ef 100644
--- a/src/vhdl/vhdl-canon.adb
+++ b/src/vhdl/vhdl-canon.adb
@@ -427,6 +427,17 @@ package body Vhdl.Canon is
(Get_Report_Expression (Stmt), List);
end Canon_Extract_Sensitivity_Assertion_Statement;
+ procedure Canon_Extract_Sensitivity_Break_Statement
+ (Stmt : Iir; Sensitivity_List : Iir_List)
+ is
+ Cond : Iir;
+ begin
+ Cond := Get_Condition (Stmt);
+ if Cond /= Null_Iir then
+ Canon_Extract_Sensitivity_Expression (Cond, Sensitivity_List);
+ end if;
+ end Canon_Extract_Sensitivity_Break_Statement;
+
procedure Canon_Extract_Sensitivity_Statement
(Stmt : Iir; List : Iir_List) is
begin
@@ -2136,7 +2147,7 @@ package body Vhdl.Canon is
Sensitivity_List := Get_Sensitivity_List (Stmt);
if Sensitivity_List = Null_Iir_List and then Cond /= Null_Iir then
Sensitivity_List := Create_Iir_List;
- Canon_Extract_Sensitivity_Expression (Cond, Sensitivity_List, False);
+ Canon_Extract_Sensitivity_Break_Statement (Cond, Sensitivity_List);
end if;
Set_Sensitivity_List (Proc, Sensitivity_List);
Set_Is_Ref (Proc, True);
diff --git a/src/vhdl/vhdl-canon.ads b/src/vhdl/vhdl-canon.ads
index 2fc6ec09a..65620339d 100644
--- a/src/vhdl/vhdl-canon.ads
+++ b/src/vhdl/vhdl-canon.ads
@@ -111,6 +111,10 @@ package Vhdl.Canon is
procedure Canon_Extract_Sensitivity_Assertion_Statement
(Stmt : Iir; List : Iir_List);
+ -- For a concurrent break statement (AMS).
+ procedure Canon_Extract_Sensitivity_Break_Statement
+ (Stmt : Iir; Sensitivity_List : Iir_List);
+
-- For a procedure call.
procedure Canon_Extract_Sensitivity_Procedure_Call
(Call : Iir; Sensitivity_List : Iir_List);