aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/sem_assocs.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/sem_assocs.adb')
-rw-r--r--src/vhdl/sem_assocs.adb11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/vhdl/sem_assocs.adb b/src/vhdl/sem_assocs.adb
index e15d9184d..fc7ca955f 100644
--- a/src/vhdl/sem_assocs.adb
+++ b/src/vhdl/sem_assocs.adb
@@ -979,8 +979,9 @@ package body Sem_Assocs is
procedure Finish_Individual_Assoc_Record (Assoc : Iir; Atype : Iir)
is
- El_List : constant Iir_List := Get_Elements_Declaration_List (Atype);
- Matches : Iir_Array (0 .. Get_Nbr_Elements (El_List) - 1);
+ El_List : constant Iir_Flist := Get_Elements_Declaration_List (Atype);
+ Nbr_El : constant Natural := Get_Nbr_Elements (El_List);
+ Matches : Iir_Array (0 .. Nbr_El - 1);
Ch : Iir;
Pos : Natural;
Rec_El : Iir;
@@ -1012,7 +1013,7 @@ package body Sem_Assocs is
-- Some (sub-)elements are unbounded, create a bounded subtype.
declare
Ntype : Iir;
- Nel_List : Iir_List;
+ Nel_List : Iir_Flist;
Nrec_El : Iir;
Rec_El_Type : Iir;
Staticness : Iir_Staticness;
@@ -1024,7 +1025,7 @@ package body Sem_Assocs is
Set_Resolution_Indication
(Ntype, Get_Resolution_Indication (Atype));
end if;
- Nel_List := Create_Iir_List;
+ Nel_List := Create_Iir_Flist (Nbr_El);
Set_Elements_Declaration_List (Ntype, Nel_List);
Staticness := Locally;
@@ -1054,7 +1055,7 @@ package body Sem_Assocs is
end if;
Staticness := Min (Staticness,
Get_Type_Staticness (Get_Type (Nrec_El)));
- Append_Element (Nel_List, Nrec_El);
+ Set_Nth_Element (Nel_List, I, Nrec_El);
end loop;
Set_Type_Staticness (Ntype, Staticness);
Set_Constraint_State (Ntype, Fully_Constrained);