diff options
-rw-r--r-- | translate/translation.adb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/translate/translation.adb b/translate/translation.adb index b2294bb..24bd385 100644 --- a/translate/translation.adb +++ b/translate/translation.adb @@ -7277,6 +7277,16 @@ package body Translation is Def : Iir; Mode : Type_Mode_Type) return Boolean is + + function Get_Value_I32 (Lit : Iir) return Iir_Int32 is + begin + return Iir_Int32(Get_Value(Lit)); + exception + when Constraint_Error => + Error_Msg_Sem ("Value exceeds range of 32-bit Integer" , Lit); + return Iir_Int32(0); + end Get_Value_I32; + begin case Mode is when Type_Mode_B2 => @@ -7309,7 +7319,7 @@ package body Translation is declare V : Iir_Int32; begin - V := Iir_Int32 (Get_Value (Lit)); + V := Get_Value_I32 (Lit); if Is_Hi then return V = Iir_Int32'Last; else |