aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/translate')
-rw-r--r--src/vhdl/translate/trans-chap3.adb13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/vhdl/translate/trans-chap3.adb b/src/vhdl/translate/trans-chap3.adb
index e782d2d11..7f135a748 100644
--- a/src/vhdl/translate/trans-chap3.adb
+++ b/src/vhdl/translate/trans-chap3.adb
@@ -2223,10 +2223,15 @@ package body Trans.Chap3 is
else
-- Bounds are locally static.
Get_Low_High_Limit (Rng, Lo, Hi);
- Subtype_Info.S.Nocheck_Hi :=
- Is_Equal_Limit (Hi, True, Def, Base_Info.Type_Mode);
- Subtype_Info.S.Nocheck_Low :=
- Is_Equal_Limit (Lo, False, Def, Base_Info.Type_Mode);
+ if Is_Overflow_Literal (Hi) or else Is_Overflow_Literal (Lo) then
+ Subtype_Info.S.Nocheck_Hi := True;
+ Subtype_Info.S.Nocheck_Low := True;
+ else
+ Subtype_Info.S.Nocheck_Hi :=
+ Is_Equal_Limit (Hi, True, Def, Base_Info.Type_Mode);
+ Subtype_Info.S.Nocheck_Low :=
+ Is_Equal_Limit (Lo, False, Def, Base_Info.Type_Mode);
+ end if;
end if;
end Create_Subtype_Info_From_Type;