aboutsummaryrefslogtreecommitdiffstats
path: root/translate
diff options
context:
space:
mode:
authorgingold <gingold@b72b5c32-5f01-0410-b925-b5c7b92870f7>2008-08-31 02:01:16 +0000
committergingold <gingold@b72b5c32-5f01-0410-b925-b5c7b92870f7>2008-08-31 02:01:16 +0000
commitcde9cc1881b9fda67d97c8f57612c284f964bd62 (patch)
treee83cbe69432785e59c09d24f850519fb9bb1fc01 /translate
parentcd9300765e7e3fd43e450777e98a778146f700c2 (diff)
downloadghdl-cde9cc1881b9fda67d97c8f57612c284f964bd62.tar.gz
ghdl-cde9cc1881b9fda67d97c8f57612c284f964bd62.tar.bz2
ghdl-cde9cc1881b9fda67d97c8f57612c284f964bd62.zip
Bug fix: elaboration of direct drivers for unconstrained array signals
Diffstat (limited to 'translate')
-rw-r--r--translate/translation.adb6
1 files changed, 6 insertions, 0 deletions
diff --git a/translate/translation.adb b/translate/translation.adb
index fb269abd5..d1d570f06 100644
--- a/translate/translation.adb
+++ b/translate/translation.adb
@@ -9751,6 +9751,11 @@ package body Translation is
Name_Node := Get_Var (Sig_Info.Object_Driver,
Type_Info, Mode_Value);
Name_Node := Stabilize (Name_Node);
+ -- Copy bounds from signal.
+ New_Assign_Stmt
+ (M2Lp (Chap3.Get_Array_Bounds (Name_Node)),
+ M2Addr (Chap3.Get_Array_Bounds (Chap6.Translate_Name (Decl))));
+ -- Allocate base.
Chap3.Allocate_Fat_Array_Base (Alloc_System, Name_Node, Sig_Type);
elsif Type_Info.C /= null then
Name_Node := Get_Var (Sig_Info.Object_Driver,
@@ -20869,6 +20874,7 @@ package body Translation is
Chap4.Translate_Declaration_Chain (Proc);
if Flag_Direct_Drivers then
+ -- Create direct drivers.
Drivers := Trans_Analyzes.Extract_Drivers (Proc);
if Flag_Dump_Drivers then
Trans_Analyzes.Dump_Drivers (Proc, Drivers);