diff options
-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); |