diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-07-16 08:27:36 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-07-16 08:27:36 +0200 |
commit | 34c4e6f26fd9b628f85b1b892ab8522f5bd58928 (patch) | |
tree | 830a0d9f1f1460aac6eae4226e75c8ead3c1bf44 /src | |
parent | f0a5605656999f2b26a762831d26572290eec934 (diff) | |
download | ghdl-34c4e6f26fd9b628f85b1b892ab8522f5bd58928.tar.gz ghdl-34c4e6f26fd9b628f85b1b892ab8522f5bd58928.tar.bz2 ghdl-34c4e6f26fd9b628f85b1b892ab8522f5bd58928.zip |
vhdl-cannon: add Canon_Extract_Sensitivity_Break_Statement
Diffstat (limited to 'src')
-rw-r--r-- | src/vhdl/vhdl-canon.adb | 13 | ||||
-rw-r--r-- | src/vhdl/vhdl-canon.ads | 4 |
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); |