diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-04-04 06:32:03 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-04-04 06:32:03 +0200 |
commit | 0e3f21903e7f4777feb29b9eec92fef08677a681 (patch) | |
tree | a5dc1f5a3d03af254b3367ac0f56d2b65fc11aec /src | |
parent | ba9341b82ec487d73c4f11ea92154bbabeb83707 (diff) | |
download | ghdl-0e3f21903e7f4777feb29b9eec92fef08677a681.tar.gz ghdl-0e3f21903e7f4777feb29b9eec92fef08677a681.tar.bz2 ghdl-0e3f21903e7f4777feb29b9eec92fef08677a681.zip |
synth: handle individual assoc of unbounded interface. Fix #2023
Diffstat (limited to 'src')
-rw-r--r-- | src/synth/elab-vhdl_insts.adb | 3 | ||||
-rw-r--r-- | src/synth/synth-vhdl_insts.adb | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/synth/elab-vhdl_insts.adb b/src/synth/elab-vhdl_insts.adb index 404684c26..56d458265 100644 --- a/src/synth/elab-vhdl_insts.adb +++ b/src/synth/elab-vhdl_insts.adb @@ -335,6 +335,9 @@ package body Elab.Vhdl_Insts is case Get_Kind (Assoc) is when Iir_Kinds_Association_Element_By_Actual => return Exec_Type_Of_Object (Syn_Inst, Get_Actual (Assoc)); + when Iir_Kind_Association_Element_By_Individual => + return Synth_Subtype_Indication + (Syn_Inst, Get_Actual_Type (Assoc)); when others => raise Internal_Error; end case; diff --git a/src/synth/synth-vhdl_insts.adb b/src/synth/synth-vhdl_insts.adb index ff3685978..9611bf038 100644 --- a/src/synth/synth-vhdl_insts.adb +++ b/src/synth/synth-vhdl_insts.adb @@ -621,7 +621,7 @@ package body Synth.Vhdl_Insts is case Get_Kind (Formal) is when Iir_Kind_Interface_Signal_Declaration => Off := 0; - Typ := Get_Subtype_Object (Inter_Inst, Get_Type (Formal)); + Typ := Get_Value (Inter_Inst, Formal).Typ; when Iir_Kind_Simple_Name => Synth_Individual_Prefix (Syn_Inst, Inter_Inst, Get_Named_Entity (Formal), Off, Typ); |