diff options
author | Tristan Gingold <tgingold@free.fr> | 2021-11-24 07:47:26 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2021-11-24 07:47:26 +0100 |
commit | 76f6765bf5228e59f4ffb75878c81849003b7815 (patch) | |
tree | 0a25c12ec75f89a77cd07b6494f2e6fd3ea6dc87 /src/vhdl/translate/trans-chap8.adb | |
parent | ba783ea097c47e1b5ec9fdfcd5f6dcc202ab00d4 (diff) | |
download | ghdl-76f6765bf5228e59f4ffb75878c81849003b7815.tar.gz ghdl-76f6765bf5228e59f4ffb75878c81849003b7815.tar.bz2 ghdl-76f6765bf5228e59f4ffb75878c81849003b7815.zip |
vhdl/translate: handle target aggregate with unbounded names. Fix #1914
Diffstat (limited to 'src/vhdl/translate/trans-chap8.adb')
-rw-r--r-- | src/vhdl/translate/trans-chap8.adb | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/vhdl/translate/trans-chap8.adb b/src/vhdl/translate/trans-chap8.adb index 4d62012f8..2b24e3737 100644 --- a/src/vhdl/translate/trans-chap8.adb +++ b/src/vhdl/translate/trans-chap8.adb @@ -4311,6 +4311,9 @@ package body Trans.Chap8 is end; else Src := Chap6.Translate_Name (Target, Mode_Signal); + if Get_Type_Info (Src).Type_Mode in Type_Mode_Unbounded then + Src := Chap3.Get_Composite_Base (Src); + end if; Chap3.Translate_Object_Copy (Aggr, Src, Target_Type); end if; end Translate_Signal_Target_Aggr; @@ -4555,11 +4558,10 @@ package body Trans.Chap8 is Mode_Value, Target_Tinfo.B.Bounds_Type, Target_Tinfo.B.Bounds_Ptr_Type); - New_Assign_Stmt - (M2Lp (Chap3.Get_Composite_Bounds (Targ)), - M2Addr (Bounds)); + New_Assign_Stmt (M2Lp (Chap3.Get_Composite_Bounds (Targ)), + M2Addr (Bounds)); -- Build bounds from aggregate. - Chap7.Translate_Aggregate_Bounds (Bounds, Target); + Chap7.Translate_Aggregate_Bounds (Bounds, Target, Mode_Signal); Chap3.Allocate_Unbounded_Composite_Base (Alloc_Stack, Targ, Target_Type); Translate_Signal_Target_Aggr |