aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-sem_inst.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-12-23 16:11:44 +0100
committerTristan Gingold <tgingold@free.fr>2022-12-23 18:28:09 +0100
commit75717123881fd9af086cd93dc3be25d51fbb47f2 (patch)
tree49c6dfeab50552ae5df6716ac8c1a91353982921 /src/vhdl/vhdl-sem_inst.adb
parent7763427a8d55963c056bba94f6b519dc3e78e739 (diff)
downloadghdl-75717123881fd9af086cd93dc3be25d51fbb47f2.tar.gz
ghdl-75717123881fd9af086cd93dc3be25d51fbb47f2.tar.bz2
ghdl-75717123881fd9af086cd93dc3be25d51fbb47f2.zip
trans-chap5.adb: handle package association in entities.
Fix #2264
Diffstat (limited to 'src/vhdl/vhdl-sem_inst.adb')
-rw-r--r--src/vhdl/vhdl-sem_inst.adb16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/vhdl/vhdl-sem_inst.adb b/src/vhdl/vhdl-sem_inst.adb
index ff497e10a..c2594747b 100644
--- a/src/vhdl/vhdl-sem_inst.adb
+++ b/src/vhdl/vhdl-sem_inst.adb
@@ -1067,14 +1067,15 @@ package body Vhdl.Sem_Inst is
procedure Instantiate_Generic_Map_Chain (Inst : Iir; Pkg : Iir)
is
pragma Unreferenced (Pkg);
- Assoc : Iir;
- Inter : Iir;
+ Assoc, Inter : Iir;
+ Inter_Iter : Iir;
begin
Assoc := Get_Generic_Map_Aspect_Chain (Inst);
- Inter := Get_Generic_Chain (Inst);
+ Inter_Iter := Get_Generic_Chain (Inst);
while Is_Valid (Assoc) loop
+ Inter := Get_Association_Interface (Assoc, Inter_Iter);
Instantiate_Generic_Map (Assoc, Inter);
- Next_Association_Interface (Assoc, Inter);
+ Next_Association_Interface (Assoc, Inter_Iter);
end loop;
end Instantiate_Generic_Map_Chain;
@@ -1301,13 +1302,14 @@ package body Vhdl.Sem_Inst is
Instantiate_Generic_Chain (Inst, Get_Generic_Chain (Comp), True));
declare
- Assoc, Inter : Iir;
+ Assoc, Inter, Inter_Iter : Iir;
begin
Assoc := Get_Generic_Map_Aspect_Chain (Map);
- Inter := Get_Generic_Chain (Inst);
+ Inter_Iter := Get_Generic_Chain (Inst);
while Is_Valid (Assoc) loop
+ Inter := Get_Association_Interface (Assoc, Inter_Iter);
Instantiate_Generic_Map (Assoc, Inter);
- Next_Association_Interface (Assoc, Inter);
+ Next_Association_Interface (Assoc, Inter_Iter);
end loop;
end;