diff options
-rw-r--r-- | src/vhdl/vhdl-canon.adb | 2 | ||||
-rw-r--r-- | src/vhdl/vhdl-sem_names.adb | 15 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/vhdl/vhdl-canon.adb b/src/vhdl/vhdl-canon.adb index 2b43f6368..d37f26493 100644 --- a/src/vhdl/vhdl-canon.adb +++ b/src/vhdl/vhdl-canon.adb @@ -607,8 +607,10 @@ package body Vhdl.Canon is -- Signals read indirectly by subprograms called. Canon_Extract_Sensitivity_From_Callees (Get_Callees_List (Proc), Res); + -- Reset Seen_Flag of proc and its callees. Set_Seen_Flag (Proc, True); Clear_Seen_Flag (Proc); + return Res; end Canon_Extract_Sensitivity_Process; diff --git a/src/vhdl/vhdl-sem_names.adb b/src/vhdl/vhdl-sem_names.adb index ffd3116e5..c6566324b 100644 --- a/src/vhdl/vhdl-sem_names.adb +++ b/src/vhdl/vhdl-sem_names.adb @@ -1765,9 +1765,13 @@ package body Vhdl.Sem_Names is Subprg : Iir; begin -- We cares only of signals. - if Get_Kind (Obj) /= Iir_Kind_Signal_Declaration then - return; - end if; + case Get_Kind (Obj) is + when Iir_Kind_Signal_Declaration + | Iir_Kind_Interface_Signal_Declaration => + null; + when others => + return; + end case; -- We cares only of subprograms. Give up if we are in a process. Subprg := Sem_Stmts.Get_Current_Subprogram; if Subprg = Null_Iir @@ -1775,6 +1779,11 @@ package body Vhdl.Sem_Names is then return; end if; + if Get_Kind (Obj) = Iir_Kind_Interface_Signal_Declaration + and then Get_Parent (Obj) = Subprg + then + return; + end if; if Get_Kind (Get_Library_Unit (Sem.Get_Current_Design_Unit)) = Iir_Kind_Package_Body then |