aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/sem.adb')
-rw-r--r--gcc/ada/sem.adb28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/ada/sem.adb b/gcc/ada/sem.adb
index fc0d74a..bbd6425 100644
--- a/gcc/ada/sem.adb
+++ b/gcc/ada/sem.adb
@@ -730,6 +730,20 @@ package body Sem is
Scope_Suppress := Svg;
end;
+ elsif Suppress = Overflow_Check then
+ declare
+ Svg : constant Overflow_Check_Type :=
+ Scope_Suppress.Overflow_Checks_General;
+ Sva : constant Overflow_Check_Type :=
+ Scope_Suppress.Overflow_Checks_Assertions;
+ begin
+ Scope_Suppress.Overflow_Checks_General := Suppressed;
+ Scope_Suppress.Overflow_Checks_Assertions := Suppressed;
+ Analyze (N);
+ Scope_Suppress.Overflow_Checks_General := Svg;
+ Scope_Suppress.Overflow_Checks_Assertions := Sva;
+ end;
+
else
declare
Svg : constant Boolean := Scope_Suppress.Suppress (Suppress);
@@ -769,6 +783,20 @@ package body Sem is
Scope_Suppress := Svg;
end;
+ elsif Suppress = Overflow_Check then
+ declare
+ Svg : constant Overflow_Check_Type :=
+ Scope_Suppress.Overflow_Checks_General;
+ Sva : constant Overflow_Check_Type :=
+ Scope_Suppress.Overflow_Checks_Assertions;
+ begin
+ Scope_Suppress.Overflow_Checks_General := Suppressed;
+ Scope_Suppress.Overflow_Checks_Assertions := Suppressed;
+ Analyze_List (L);
+ Scope_Suppress.Overflow_Checks_General := Svg;
+ Scope_Suppress.Overflow_Checks_Assertions := Sva;
+ end;
+
else
declare
Svg : constant Boolean := Scope_Suppress.Suppress (Suppress);