aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans-chap8.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-12-25 06:24:18 +0100
committerTristan Gingold <tgingold@free.fr>2016-12-26 15:09:06 +0100
commitc202ca1c3cee382716b91911eca785465faf1c97 (patch)
treed993e3fb3857a37d233c50426febf5ac0caef3a8 /src/vhdl/translate/trans-chap8.adb
parent3a15aa97c771c91c6483e225bd4b848dfa2d761a (diff)
downloadghdl-c202ca1c3cee382716b91911eca785465faf1c97.tar.gz
ghdl-c202ca1c3cee382716b91911eca785465faf1c97.tar.bz2
ghdl-c202ca1c3cee382716b91911eca785465faf1c97.zip
translate: add unbounded records type_mode (WIP)
Diffstat (limited to 'src/vhdl/translate/trans-chap8.adb')
-rw-r--r--src/vhdl/translate/trans-chap8.adb27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/vhdl/translate/trans-chap8.adb b/src/vhdl/translate/trans-chap8.adb
index a6804a4cc..b92c6c68e 100644
--- a/src/vhdl/translate/trans-chap8.adb
+++ b/src/vhdl/translate/trans-chap8.adb
@@ -242,7 +242,8 @@ package body Trans.Chap8 is
Res := Chap7.Translate_Expression (Expr, Ret_Type);
Gen_Return_Value (Res);
end;
- when Type_Mode_Fat_Array =>
+ when Type_Mode_Unbounded_Array
+ | Type_Mode_Unbounded_Record =>
-- * if the return type is unconstrained: allocate an area from
-- the secondary stack, copy it to the area, and fill the fat
-- pointer.
@@ -1828,8 +1829,8 @@ package body Trans.Chap8 is
New_Procedure_Call (Assocs);
Close_Temp;
when Type_Mode_Array
- | Type_Mode_Record
- | Type_Mode_Fat_Array =>
+ | Type_Mode_Record
+ | Type_Mode_Unbounded_Array =>
Subprg_Info := Get_Info (Imp);
Start_Association (Assocs, Subprg_Info.Ortho_Func);
Subprgs.Add_Subprg_Instance_Assoc
@@ -1842,10 +1843,11 @@ package body Trans.Chap8 is
Formal_Type));
New_Procedure_Call (Assocs);
when Type_Mode_Unknown
- | Type_Mode_File
- | Type_Mode_Acc
- | Type_Mode_Bounds_Acc
- | Type_Mode_Protected =>
+ | Type_Mode_File
+ | Type_Mode_Acc
+ | Type_Mode_Bounds_Acc
+ | Type_Mode_Unbounded_Record
+ | Type_Mode_Protected =>
raise Internal_Error;
end case;
end Translate_Write_Procedure_Call;
@@ -1893,7 +1895,7 @@ package body Trans.Chap8 is
(Assocs,
Chap7.Translate_Expression (Get_Actual (Value_Assoc)));
New_Procedure_Call (Assocs);
- when Type_Mode_Fat_Array =>
+ when Type_Mode_Unbounded_Array =>
declare
Length_Assoc : Iir;
Length : Mnode;
@@ -1915,10 +1917,11 @@ package body Trans.Chap8 is
New_Assign_Stmt (M2Lv (Length), New_Function_Call (Assocs));
end;
when Type_Mode_Unknown
- | Type_Mode_File
- | Type_Mode_Acc
- | Type_Mode_Bounds_Acc
- | Type_Mode_Protected =>
+ | Type_Mode_File
+ | Type_Mode_Acc
+ | Type_Mode_Bounds_Acc
+ | Type_Mode_Unbounded_Record
+ | Type_Mode_Protected =>
raise Internal_Error;
end case;
end Translate_Read_Procedure_Call;