From d7c93e9d72f8ddb29446d525c430098f61e8f9b3 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sat, 1 Oct 2022 18:30:41 +0200 Subject: synth: avoid on crash on overflow in ranges --- src/synth/elab-vhdl_types.adb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/synth/elab-vhdl_types.adb b/src/synth/elab-vhdl_types.adb index b92c78452..81ab20268 100644 --- a/src/synth/elab-vhdl_types.adb +++ b/src/synth/elab-vhdl_types.adb @@ -42,6 +42,14 @@ package body Elab.Vhdl_Types is -- Static values. L := Synth_Expression_With_Basetype (Syn_Inst, Get_Left_Limit (Rng)); R := Synth_Expression_With_Basetype (Syn_Inst, Get_Right_Limit (Rng)); + if L = No_Valtyp or else R = No_Valtyp then + Set_Error (Syn_Inst); + return (Dir => Get_Direction (Rng), + Left => 0, + Right => 0, + Is_Signed => False); + end if; + Strip_Const (L); Strip_Const (R); -- cgit v1.2.3