aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans-chap6.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-04-22 21:31:33 +0200
committerTristan Gingold <tgingold@free.fr>2020-04-22 21:31:33 +0200
commit0509e5ae98b1018ebcfe44240c6d71cec9cc6c52 (patch)
tree8a7d9dfdc42c95711b4bb2c1e7610483daf80867 /src/vhdl/translate/trans-chap6.adb
parent72b5a66438052bf7e089b7f5ab1fee3462aa2a81 (diff)
downloadghdl-0509e5ae98b1018ebcfe44240c6d71cec9cc6c52.tar.gz
ghdl-0509e5ae98b1018ebcfe44240c6d71cec9cc6c52.tar.bz2
ghdl-0509e5ae98b1018ebcfe44240c6d71cec9cc6c52.zip
evaluation: weaken error for out of bound static value.
Diffstat (limited to 'src/vhdl/translate/trans-chap6.adb')
-rw-r--r--src/vhdl/translate/trans-chap6.adb10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/vhdl/translate/trans-chap6.adb b/src/vhdl/translate/trans-chap6.adb
index ec632c815..7a272ed99 100644
--- a/src/vhdl/translate/trans-chap6.adb
+++ b/src/vhdl/translate/trans-chap6.adb
@@ -588,14 +588,16 @@ package body Trans.Chap6 is
Off := Prefix_Left - Slice_Left;
end case;
if Off < 0 then
- -- Must have been caught by sem.
- raise Internal_Error;
+ Gen_Bound_Error (Index_Range);
+ Off := 0;
+ Slice_Length := 0;
end if;
if Off + Slice_Length
> Eval_Discrete_Range_Length (Index_Range)
then
- -- Must have been caught by sem.
- raise Internal_Error;
+ Gen_Bound_Error (Index_Range);
+ Off := 0;
+ Slice_Length := 0;
end if;
end if;
Data.Off := Unsigned_64 (Off);