===================================================================
@@ -17445,6 +17445,10 @@
M_Val := 2 ** System_Max_Binary_Modulus_Power;
end if;
+ if M_Val > 2 ** Standard_Long_Integer_Size then
+ Check_Restriction (No_Long_Long_Integer, Mod_Expr);
+ end if;
+
Set_Modulus (T, M_Val);
-- Create bounds for the modular type based on the modulus given in
@@ -20622,6 +20626,7 @@
Base_Typ := Base_Type (Standard_Long_Integer);
elsif Can_Derive_From (Standard_Long_Long_Integer) then
+ Check_Restriction (No_Long_Long_Integer, Def);
Base_Typ := Base_Type (Standard_Long_Long_Integer);
else
===================================================================
@@ -15980,6 +15980,10 @@
Check_Restriction (No_Abort_Statements, Post_Node);
end if;
+ if Val = Standard_Long_Long_Integer then
+ Check_Restriction (No_Long_Long_Integer, Post_Node);
+ end if;
+
-- Check for violation of No_Dynamic_Attachment
if Restriction_Check_Required (No_Dynamic_Attachment)
===================================================================
@@ -1796,6 +1796,9 @@
-- If restriction No_Dynamic_Attachment is set, then it checks that the
-- entity is not one of the restricted names for this restriction.
--
+ -- If restriction No_Long_Long_Integer is set, then it checks that the
+ -- entity is not Standard.Long_Long_Integer.
+ --
-- If restriction No_Implementation_Identifiers is set, then it checks
-- that the entity is not implementation defined.
===================================================================
@@ -72,7 +72,7 @@
-- restriction to the binder.
-- The following declarations establish a mapping between restriction
- -- identifiers, and the names of corresponding restriction library units.
+ -- identifiers, and the names of corresponding restricted library units.
type Unit_Entry is record
Res_Id : Restriction_Id;
@@ -129,6 +129,7 @@
No_Implicit_Loops => True,
No_Initialize_Scalars => True,
No_Local_Protected_Objects => True,
+ No_Long_Long_Integer => True,
No_Protected_Type_Allocators => True,
No_Relative_Delay => True,
No_Requeue_Statements => True,
===================================================================
@@ -124,6 +124,7 @@
No_Local_Allocators, -- (RM H.4(8))
No_Local_Timing_Events, -- (RM D.7(10.2/2))
No_Local_Protected_Objects, -- Ada 2012 (D.7(10/1.3))
+ No_Long_Long_Integer, -- GNAT
No_Nested_Finalization, -- (RM D.7(4))
No_Protected_Type_Allocators, -- Ada 2012 (D.7 (10.3/2))
No_Protected_Types, -- (RM H.4(5))