aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans-chap3.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2018-11-04 08:54:04 +0100
committerTristan Gingold <tgingold@free.fr>2018-11-07 20:53:22 +0100
commit00d347e8de432216665e6cedb8b46b7ca0c87a69 (patch)
treea3e5a763c2f40cb4bcff35adbefbc8a24477effb /src/vhdl/translate/trans-chap3.adb
parentc194a74d456399e0d667c505127c29cf65b53319 (diff)
downloadghdl-00d347e8de432216665e6cedb8b46b7ca0c87a69.tar.gz
ghdl-00d347e8de432216665e6cedb8b46b7ca0c87a69.tar.bz2
ghdl-00d347e8de432216665e6cedb8b46b7ca0c87a69.zip
Add bound checks on signal assignment.
Fix #687
Diffstat (limited to 'src/vhdl/translate/trans-chap3.adb')
-rw-r--r--src/vhdl/translate/trans-chap3.adb7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/vhdl/translate/trans-chap3.adb b/src/vhdl/translate/trans-chap3.adb
index 624b95a25..9ebd6f656 100644
--- a/src/vhdl/translate/trans-chap3.adb
+++ b/src/vhdl/translate/trans-chap3.adb
@@ -2969,8 +2969,8 @@ package body Trans.Chap3 is
Kind : constant Object_Kind_Type := Get_Object_Kind (Base);
begin
if Is_Unbounded_Type (El_Tinfo) then
- -- return Reindex_Unbounded_Array (Base, Atype, Index, El_Tinfo);
- -- TODO
+ -- It's not possible to index an unbounded array with only the base.
+ -- Index_Array must be used instead.
raise Internal_Error;
elsif Is_Complex_Type (El_Tinfo) then
return Reindex_Complex_Array (Base, Atype, Index, El_Tinfo);
@@ -3411,6 +3411,9 @@ package body Trans.Chap3 is
L_Tinfo : constant Type_Info_Acc := Get_Info (L_Type);
R_Tinfo : constant Type_Info_Acc := Get_Info (R_Type);
begin
+ if L_Tinfo.Type_Mode not in Type_Mode_Arrays then
+ return;
+ end if;
-- FIXME: optimize for a statically bounded array of a complex type.
if L_Tinfo.Type_Mode in Type_Mode_Arrays
and then L_Tinfo.Type_Locally_Constrained