aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-vhdl_stmts.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-02-17 07:49:59 +0100
committerTristan Gingold <tgingold@free.fr>2022-02-17 07:51:02 +0100
commit7257b70ca6a7380a3c739e62bf3c9ca69f0dd223 (patch)
tree727cfbc01d4737e19c4d79f14de96e458f71a0ed /src/synth/synth-vhdl_stmts.adb
parenta4f663eb442310aa17d895d267a9e212c54c5efe (diff)
downloadghdl-7257b70ca6a7380a3c739e62bf3c9ca69f0dd223.tar.gz
ghdl-7257b70ca6a7380a3c739e62bf3c9ca69f0dd223.tar.bz2
ghdl-7257b70ca6a7380a3c739e62bf3c9ca69f0dd223.zip
synth: properly propagate bound errors. Fix #1972
Diffstat (limited to 'src/synth/synth-vhdl_stmts.adb')
-rw-r--r--src/synth/synth-vhdl_stmts.adb7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/synth/synth-vhdl_stmts.adb b/src/synth/synth-vhdl_stmts.adb
index df8a851ce..3d8c7bba2 100644
--- a/src/synth/synth-vhdl_stmts.adb
+++ b/src/synth/synth-vhdl_stmts.adb
@@ -144,14 +144,17 @@ package body Synth.Vhdl_Stmts is
declare
Voff : Net;
Off : Value_Offsets;
+ Err : Boolean;
begin
Synth_Assignment_Prefix
(Syn_Inst, Get_Prefix (Pfx),
Dest_Base, Dest_Typ, Dest_Off, Dest_Dyn);
Strip_Const (Dest_Base);
- Synth_Indexed_Name (Syn_Inst, Pfx, Dest_Typ, Voff, Off);
+ Synth_Indexed_Name (Syn_Inst, Pfx, Dest_Typ, Voff, Off, Err);
- if Voff = No_Net then
+ if Err then
+ Dest_Base := No_Valtyp;
+ elsif Voff = No_Net then
-- Static index.
Dest_Off := Dest_Off + Off;
else