diff options
author | Tristan Gingold <tgingold@free.fr> | 2018-11-04 08:54:04 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2018-11-07 20:53:22 +0100 |
commit | 00d347e8de432216665e6cedb8b46b7ca0c87a69 (patch) | |
tree | a3e5a763c2f40cb4bcff35adbefbc8a24477effb /src/vhdl/translate/trans-chap3.adb | |
parent | c194a74d456399e0d667c505127c29cf65b53319 (diff) | |
download | ghdl-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.adb | 7 |
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 |