diff options
author | Tristan Gingold <tgingold@free.fr> | 2018-11-20 19:10:52 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2018-11-20 19:10:52 +0100 |
commit | 14cbc02b016795f60dd8221c5aa0dd0174bb7bba (patch) | |
tree | 358f321e5730fcb1ba4533e1fb84b446fbc32bec /src/vhdl/translate/trans-chap3.adb | |
parent | a781dc357b4fb46614ebdcc6abfba6831de90fdf (diff) | |
download | ghdl-14cbc02b016795f60dd8221c5aa0dd0174bb7bba.tar.gz ghdl-14cbc02b016795f60dd8221c5aa0dd0174bb7bba.tar.bz2 ghdl-14cbc02b016795f60dd8221c5aa0dd0174bb7bba.zip |
translate: refactoring.
Diffstat (limited to 'src/vhdl/translate/trans-chap3.adb')
-rw-r--r-- | src/vhdl/translate/trans-chap3.adb | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/vhdl/translate/trans-chap3.adb b/src/vhdl/translate/trans-chap3.adb index 3bb10630f..7d2db0b70 100644 --- a/src/vhdl/translate/trans-chap3.adb +++ b/src/vhdl/translate/trans-chap3.adb @@ -3121,11 +3121,10 @@ package body Trans.Chap3 is -- Copy SRC to DEST. -- Both have the same type, OTYPE. procedure Translate_Object_Copy (Dest : Mnode; - Src : O_Enode; + Src : Mnode; Obj_Type : Iir) is Info : constant Type_Info_Acc := Get_Info (Obj_Type); - Kind : constant Object_Kind_Type := Get_Object_Kind (Dest); D : Mnode; begin case Info.Type_Mode is @@ -3134,18 +3133,19 @@ package body Trans.Chap3 is | Type_Mode_Bounds_Acc | Type_Mode_File => -- Scalar or thin pointer. - New_Assign_Stmt (M2Lv (Dest), Src); + New_Assign_Stmt (M2Lv (Dest), M2E (Src)); when Type_Mode_Unbounded_Array | Type_Mode_Unbounded_Record => -- a fat array. D := Stabilize (Dest); Gen_Memcpy (M2Addr (Get_Composite_Base (D)), - M2Addr (Get_Composite_Base (E2M (Src, Info, Kind))), + M2Addr (Get_Composite_Base (Src)), Get_Object_Size (D, Obj_Type)); when Type_Mode_Bounded_Arrays | Type_Mode_Bounded_Records => D := Stabilize (Dest); - Gen_Memcpy (M2Addr (D), Src, Get_Object_Size (D, Obj_Type)); + Gen_Memcpy (M2Addr (D), M2Addr (Src), + Get_Object_Size (D, Obj_Type)); when Type_Mode_Unknown | Type_Mode_Protected => raise Internal_Error; |