diff options
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); |