From 5a61b36758ef3821b0d61183d37af576a420a14c Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Thu, 23 Feb 2017 08:09:24 +0100 Subject: vhdl08: more on unbounded records (WIP) --- src/vhdl/translate/trans-chap4.adb | 6 +++--- src/vhdl/translate/trans-chap9.adb | 2 +- src/vhdl/translate/trans-foreach_non_composite.adb | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/vhdl') diff --git a/src/vhdl/translate/trans-chap4.adb b/src/vhdl/translate/trans-chap4.adb index 142b8c7a0..5a50e677c 100644 --- a/src/vhdl/translate/trans-chap4.adb +++ b/src/vhdl/translate/trans-chap4.adb @@ -522,7 +522,7 @@ package body Trans.Chap4 is Init_Object (Name, Obj_Type); Close_Temp; elsif Get_Kind (Value) = Iir_Kind_Aggregate then - if Type_Info.Type_Mode = Type_Mode_Fat_Array then + if Type_Info.Type_Mode in Type_Mode_Unbounded then -- Allocate. declare Aggr_Type : constant Iir := Get_Type (Value); @@ -920,7 +920,7 @@ package body Trans.Chap4 is end if; end if; case Get_Info (Targ_Type).Type_Mode is - when Type_Mode_Record => + when Type_Mode_Records => Res.Value := Stabilize (Data.Value); if Data.Has_Val then Res.Init_Val := Stabilize (Data.Init_Val); @@ -1016,7 +1016,7 @@ package body Trans.Chap4 is Chap3.Elab_Object_Subtype (Sig_Type); Type_Info := Get_Info (Sig_Type); - if Type_Info.Type_Mode = Type_Mode_Fat_Array then + if Type_Info.Type_Mode in Type_Mode_Unbounded then -- Unbounded types are only allowed for ports; in that case the -- bounds have already been set. if Has_Copy then diff --git a/src/vhdl/translate/trans-chap9.adb b/src/vhdl/translate/trans-chap9.adb index 4147c00b5..c35dd5ea5 100644 --- a/src/vhdl/translate/trans-chap9.adb +++ b/src/vhdl/translate/trans-chap9.adb @@ -2336,7 +2336,7 @@ package body Trans.Chap9 is begin Res := Data; if Data.Has_Val then - if Get_Type_Info (Data.Val).Type_Mode = Type_Mode_Record then + if Get_Type_Info (Data.Val).Type_Mode in Type_Mode_Records then Res.Val := Stabilize (Data.Val); else Res.Val := Chap3.Get_Composite_Base (Data.Val); diff --git a/src/vhdl/translate/trans-foreach_non_composite.adb b/src/vhdl/translate/trans-foreach_non_composite.adb index 91e90fb5e..3ae044eeb 100644 --- a/src/vhdl/translate/trans-foreach_non_composite.adb +++ b/src/vhdl/translate/trans-foreach_non_composite.adb @@ -31,7 +31,7 @@ begin case Type_Info.Type_Mode is when Type_Mode_Scalar => Do_Non_Composite (Targ, Targ_Type, Data); - when Type_Mode_Fat_Array + when Type_Mode_Unbounded_Array | Type_Mode_Array => declare Var_Array : Mnode; @@ -76,7 +76,8 @@ begin Finish_Data_Array (Composite_Data); Close_Temp; end; - when Type_Mode_Record => + when Type_Mode_Record + | Type_Mode_Unbounded_Record => declare Var_Record : Mnode; Sub_Data : Data_Type; -- cgit v1.2.3