aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-04-15 11:41:32 +0200
committerTristan Gingold <tgingold@free.fr>2022-04-15 11:41:32 +0200
commita7714952ffaf31d700dc25694fb3f6ebd5ecf320 (patch)
tree82388d3e095f137032b0c74862ef4c268a63230e /src/vhdl
parent32b58af2fdfff4c27a4ecb9686b2ee3fc9ce1674 (diff)
downloadghdl-a7714952ffaf31d700dc25694fb3f6ebd5ecf320.tar.gz
ghdl-a7714952ffaf31d700dc25694fb3f6ebd5ecf320.tar.bz2
ghdl-a7714952ffaf31d700dc25694fb3f6ebd5ecf320.zip
vhdl-sem_names(sem_check_all_sensitized): only consider interface signal
Diffstat (limited to 'src/vhdl')
-rw-r--r--src/vhdl/vhdl-canon.adb2
-rw-r--r--src/vhdl/vhdl-sem_names.adb15
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