diff options
author | Tristan Gingold <tgingold@free.fr> | 2016-12-25 06:24:18 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2016-12-26 15:09:06 +0100 |
commit | c202ca1c3cee382716b91911eca785465faf1c97 (patch) | |
tree | d993e3fb3857a37d233c50426febf5ac0caef3a8 /src/vhdl/translate/trans-chap8.adb | |
parent | 3a15aa97c771c91c6483e225bd4b848dfa2d761a (diff) | |
download | ghdl-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.adb | 27 |
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; |