aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2023-03-26 09:09:41 +0200
committerTristan Gingold <tgingold@free.fr>2023-03-26 16:53:56 +0200
commit8e1f1d3dc49420c37a8fb106b0ad0afbc5235f3f (patch)
treec97808535af3c54ac7df44af09802b9d8441a6c2
parentf846149c27804a2ce58bf6d2186e870a4d23791a (diff)
downloadghdl-8e1f1d3dc49420c37a8fb106b0ad0afbc5235f3f.tar.gz
ghdl-8e1f1d3dc49420c37a8fb106b0ad0afbc5235f3f.tar.bz2
ghdl-8e1f1d3dc49420c37a8fb106b0ad0afbc5235f3f.zip
synth-vhdl_insts: use the right synth instance for actual type.
Fix #2399
-rw-r--r--src/synth/synth-vhdl_insts.adb5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/synth/synth-vhdl_insts.adb b/src/synth/synth-vhdl_insts.adb
index addd5a9da..2a20d06a9 100644
--- a/src/synth/synth-vhdl_insts.adb
+++ b/src/synth/synth-vhdl_insts.adb
@@ -716,6 +716,7 @@ package body Synth.Vhdl_Insts is
end Sort_Value_Offset;
function Synth_Individual_Input_Assoc (Syn_Inst : Synth_Instance_Acc;
+ Inter_Inst : Synth_Instance_Acc;
Inter_Typ : Type_Acc;
Assoc : Node) return Net
is
@@ -736,7 +737,7 @@ package body Synth.Vhdl_Insts is
-- FIXME: should it be unshared ?
Formal_Typ := Elab.Vhdl_Types.Synth_Subtype_Indication
- (Syn_Inst, Get_Actual_Type (Assoc));
+ (Inter_Inst, Get_Actual_Type (Assoc));
Iassoc := Get_Chain (Assoc);
while Iassoc /= Null_Node
@@ -800,7 +801,7 @@ package body Synth.Vhdl_Insts is
(Syn_Inst, Inter_Typ, Syn_Inst, Get_Actual (Assoc), Assoc);
when Iir_Kind_Association_Element_By_Individual =>
Res_Net := Synth_Individual_Input_Assoc
- (Syn_Inst, Inter_Typ, Assoc);
+ (Syn_Inst, Inter_Inst, Inter_Typ, Assoc);
Release_Expr_Pool (Marker);
return Res_Net;
end case;