diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-02-17 07:49:59 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-02-17 07:51:02 +0100 |
commit | 7257b70ca6a7380a3c739e62bf3c9ca69f0dd223 (patch) | |
tree | 727cfbc01d4737e19c4d79f14de96e458f71a0ed /src/synth/synth-vhdl_stmts.adb | |
parent | a4f663eb442310aa17d895d267a9e212c54c5efe (diff) | |
download | ghdl-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.adb | 7 |
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 |