summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--translate/translation.adb12
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