diff options
author | Tristan Gingold <tgingold@free.fr> | 2019-06-05 20:32:28 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2019-06-05 20:32:28 +0200 |
commit | 7da8782857a299f95e2cf1c348cd7f67f62cd2eb (patch) | |
tree | b666756ee95827dbad13b4ed59c4986d1c833bf8 /src/vhdl/vhdl-sem.adb | |
parent | 7788d84b06b72c874043541011840f95472ce6e9 (diff) | |
download | ghdl-7da8782857a299f95e2cf1c348cd7f67f62cd2eb.tar.gz ghdl-7da8782857a299f95e2cf1c348cd7f67f62cd2eb.tar.bz2 ghdl-7da8782857a299f95e2cf1c348cd7f67f62cd2eb.zip |
vhdl: detect unused signals and variables.
Diffstat (limited to 'src/vhdl/vhdl-sem.adb')
-rw-r--r-- | src/vhdl/vhdl-sem.adb | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/vhdl/vhdl-sem.adb b/src/vhdl/vhdl-sem.adb index 53a61ca3b..503d43293 100644 --- a/src/vhdl/vhdl-sem.adb +++ b/src/vhdl/vhdl-sem.adb @@ -545,16 +545,21 @@ package body Vhdl.Sem is Check_Port_Association_Bounds_Restrictions (Formal, Actual, Assoc); Prefix := Get_Object_Prefix (Object); - if Get_Kind (Prefix) = Iir_Kind_Interface_Signal_Declaration - then - declare - P : Boolean; - pragma Unreferenced (P); - begin - P := Check_Port_Association_Mode_Restrictions - (Formal_Base, Prefix, Assoc); - end; - end if; + case Get_Kind (Prefix) is + when Iir_Kind_Interface_Signal_Declaration => + declare + P : Boolean; + pragma Unreferenced (P); + begin + P := Check_Port_Association_Mode_Restrictions + (Formal_Base, Prefix, Assoc); + end; + when Iir_Kind_Signal_Declaration => + Set_Use_Flag (Prefix, True); + when others => + -- FIXME: attributes ? + null; + end case; else -- Expression. Set_Collapse_Signal_Flag (Assoc, False); @@ -580,6 +585,10 @@ package body Vhdl.Sem is (+Actual, "actual expression must be globally static"); end if; + + -- Is it possible to have a globally static name that is + -- not readable ? + Check_Read (Actual); else Error_Msg_Sem (+Assoc, |