aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans-chap8.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-11-24 07:47:26 +0100
committerTristan Gingold <tgingold@free.fr>2021-11-24 07:47:26 +0100
commit76f6765bf5228e59f4ffb75878c81849003b7815 (patch)
tree0a25c12ec75f89a77cd07b6494f2e6fd3ea6dc87 /src/vhdl/translate/trans-chap8.adb
parentba783ea097c47e1b5ec9fdfcd5f6dcc202ab00d4 (diff)
downloadghdl-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.adb10
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