aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-sem_assocs.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/vhdl-sem_assocs.adb')
-rw-r--r--src/vhdl/vhdl-sem_assocs.adb3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vhdl/vhdl-sem_assocs.adb b/src/vhdl/vhdl-sem_assocs.adb
index 25287e076..927877458 100644
--- a/src/vhdl/vhdl-sem_assocs.adb
+++ b/src/vhdl/vhdl-sem_assocs.adb
@@ -1068,6 +1068,7 @@ package body Vhdl.Sem_Assocs is
Assoc_Type : Iir;
begin
Ntype := Create_Iir (Iir_Kind_Record_Subtype_Definition);
+ Set_Is_Ref (Ntype, True);
Location_Copy (Ntype, Assoc);
Set_Base_Type (Ntype, Get_Base_Type (Atype));
if Get_Kind (Atype) = Iir_Kind_Record_Subtype_Definition then
@@ -1108,6 +1109,7 @@ package body Vhdl.Sem_Assocs is
= Iir_Kind_Association_Element_By_Individual)
then
Assoc_Type := Get_Actual_Type (Assoc_Expr);
+ Set_Subtype_Indication (Nrec_El, Assoc_Type);
else
Assoc_Type := Get_Type (Get_Actual (Assoc_Expr));
end if;
@@ -1122,6 +1124,7 @@ package body Vhdl.Sem_Assocs is
Set_Constraint_State (Ntype, Fully_Constrained);
Set_Actual_Type (Assoc, Ntype);
+ Set_Actual_Type_Definition (Assoc, Ntype);
end;
else
Set_Actual_Type (Assoc, Atype);