aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-sem_utils.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-02-04 18:26:11 +0100
committerTristan Gingold <tgingold@free.fr>2020-02-04 18:26:11 +0100
commit4fd8fb781846ae49791177ad57aeff6051c54507 (patch)
treec4888f20963ac99b019dcf2844e87fe12e402e0e /src/vhdl/vhdl-sem_utils.adb
parent5225ca0e22ba2aa55ad7bec3e8bb754583aaa953 (diff)
downloadghdl-4fd8fb781846ae49791177ad57aeff6051c54507.tar.gz
ghdl-4fd8fb781846ae49791177ad57aeff6051c54507.tar.bz2
ghdl-4fd8fb781846ae49791177ad57aeff6051c54507.zip
vhdl-sem_utils: handle non-object interface for
Diffstat (limited to 'src/vhdl/vhdl-sem_utils.adb')
-rw-r--r--src/vhdl/vhdl-sem_utils.adb10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/vhdl/vhdl-sem_utils.adb b/src/vhdl/vhdl-sem_utils.adb
index 70573f6f1..ac06e3ea9 100644
--- a/src/vhdl/vhdl-sem_utils.adb
+++ b/src/vhdl/vhdl-sem_utils.adb
@@ -55,10 +55,12 @@ package body Vhdl.Sem_Utils is
if Kind /= Iir_Kind_Enumeration_Literal then
Inter := Get_Interface_Declaration_Chain (Subprg);
while Inter /= Null_Iir loop
- Itype := Get_Base_Type (Get_Type (Inter));
- Sig := Sig + 1;
- Hash := Hash * 7 + To_Hash (Itype);
- Hash := Hash + Hash / 2**28;
+ if Get_Kind (Inter) in Iir_Kinds_Interface_Object_Declaration then
+ Itype := Get_Base_Type (Get_Type (Inter));
+ Sig := Sig + 1;
+ Hash := Hash * 7 + To_Hash (Itype);
+ Hash := Hash + Hash / 2**28;
+ end if;
Inter := Get_Chain (Inter);
end loop;
end if;