aboutsummaryrefslogtreecommitdiffstats
path: root/src/grt/grt-waves.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-02-21 04:43:37 +0100
committerTristan Gingold <tgingold@free.fr>2017-02-21 04:47:56 +0100
commitbc78710187b5875d40d4b539b81da5ec464c508d (patch)
tree01772a07c6abb4de7fe7c44392e732eec30bccb0 /src/grt/grt-waves.adb
parentbed747fc425d388786c9ff5107e6e8ee777cbbf3 (diff)
downloadghdl-bc78710187b5875d40d4b539b81da5ec464c508d.tar.gz
ghdl-bc78710187b5875d40d4b539b81da5ec464c508d.tar.bz2
ghdl-bc78710187b5875d40d4b539b81da5ec464c508d.zip
unbounded records: add rti support (WIP)
Diffstat (limited to 'src/grt/grt-waves.adb')
-rw-r--r--src/grt/grt-waves.adb21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/grt/grt-waves.adb b/src/grt/grt-waves.adb
index 33edffdf2..43ae4ec73 100644
--- a/src/grt/grt-waves.adb
+++ b/src/grt/grt-waves.adb
@@ -623,17 +623,17 @@ package body Grt.Waves is
end;
when Ghdl_Rtik_Subtype_Array =>
declare
- Arr : Ghdl_Rtin_Subtype_Array_Acc;
+ Arr : constant Ghdl_Rtin_Subtype_Composite_Acc :=
+ To_Ghdl_Rtin_Subtype_Composite_Acc (Rti);
B_Ctxt : Rti_Context;
begin
- Arr := To_Ghdl_Rtin_Subtype_Array_Acc (Rti);
Create_String_Id (Arr.Name);
if Rti_Complex_Type (Rti) then
B_Ctxt := Ctxt;
else
B_Ctxt := N_Ctxt;
end if;
- Create_Type (To_Ghdl_Rti_Access (Arr.Basetype), B_Ctxt);
+ Create_Type (Arr.Basetype, B_Ctxt);
end;
when Ghdl_Rtik_Type_Array =>
declare
@@ -1313,20 +1313,21 @@ package body Grt.Waves is
end;
when Ghdl_Rtik_Subtype_Array =>
declare
- Arr : Ghdl_Rtin_Subtype_Array_Acc;
+ Arr : constant Ghdl_Rtin_Subtype_Composite_Acc :=
+ To_Ghdl_Rtin_Subtype_Composite_Acc (Rti);
begin
- Arr := To_Ghdl_Rtin_Subtype_Array_Acc (Rti);
Write_String_Id (Arr.Name);
- Write_Type_Id (To_Ghdl_Rti_Access (Arr.Basetype), Ctxt);
+ Write_Type_Id (Arr.Basetype, Ctxt);
declare
- Rngs : Ghdl_Range_Array
- (0 .. Arr.Basetype.Nbr_Dim - 1);
+ Bt : constant Ghdl_Rtin_Type_Array_Acc :=
+ To_Ghdl_Rtin_Type_Array_Acc (Arr.Basetype);
+ Rngs : Ghdl_Range_Array (0 .. Bt.Nbr_Dim - 1);
begin
Bound_To_Range
(Loc_To_Addr (Rti.Depth, Arr.Bounds, Ctxt),
- Arr.Basetype, Rngs);
+ Bt, Rngs);
for I in Rngs'Range loop
- Write_Range (Arr.Basetype.Indexes (I), Rngs (I));
+ Write_Range (Bt.Indexes (I), Rngs (I));
end loop;
end;
end;