diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-12-23 16:11:44 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-12-23 18:28:09 +0100 |
commit | 75717123881fd9af086cd93dc3be25d51fbb47f2 (patch) | |
tree | 49c6dfeab50552ae5df6716ac8c1a91353982921 /src/vhdl/vhdl-sem_inst.adb | |
parent | 7763427a8d55963c056bba94f6b519dc3e78e739 (diff) | |
download | ghdl-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.adb | 16 |
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; |