re PR ada/54125 (s-atopri.adb:40:10: "Support_Atomic_Primitives" is undefined broke Ada on multiple platforms)
2012-08-06 Vincent Pucci <pucci@adacore.com> PR ada/54125 * exp_attr.adb (Expand_N_Attribute_Reference): Expand new Atomic_Always_Lock_Free attribute. * sem_attr.adb (Analyze_Attribute): Analyze new Atomic_Always_Lock_Free attribute. (Eval_Attribute): Nothing to do with new Atomic_Always_Lock_Free attribute. * sem_ch9.adb (Allows_Lock_Free_Implementation): Support_Atomic_Primitives check replaces previous erroneous size check. * sem_util.adb, sem_util.ads (Support_Atomic_Primitives): New routine. * snames.ads-tmpl: New name Name_Atomic_Always_Lock_Free and new attribute Attribute_Atomic_Always_Lock_Free defined. * s-atopri.adb: Support_Atomic_Primitives checks replaced by Atomic_Always_Lock_Free queries. * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads, system-hpux.ads, system-linux-alpha.ads, system-linux-hppa.ads, system-linux-ppc.ads, system-linux-s390.ads, system-linux-s390x.ads, system-linux-sh4.ads, system-linux-sparc.ads, system-lynxos178-ppc.ads, system-lynxos-ppc.ads, system-mingw.ads, system-vxworks-arm.ads, system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms_64.ads, system-vxworks-m68k.ads, system-vxworks-mips.ads, system-vxworks-ppc.ads, system-vxworks-sparcv9.ads: Flag Support_Atomic_Primitives removed. From-SVN: r190163
This commit is contained in:
parent
a39a553eac
commit
0ebc109a5e
|
@ -3100,19 +3100,6 @@ package body Exp_Attr is
|
||||||
end if;
|
end if;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
---------------
|
|
||||||
-- Lock_Free --
|
|
||||||
---------------
|
|
||||||
|
|
||||||
-- Rewrite the attribute reference with the value of Uses_Lock_Free
|
|
||||||
|
|
||||||
when Attribute_Lock_Free => Lock_Free : declare
|
|
||||||
V : constant Entity_Id := Boolean_Literals (Uses_Lock_Free (Ptyp));
|
|
||||||
begin
|
|
||||||
Rewrite (N, New_Occurrence_Of (V, Loc));
|
|
||||||
Analyze_And_Resolve (N, Standard_Boolean);
|
|
||||||
end Lock_Free;
|
|
||||||
|
|
||||||
-------------
|
-------------
|
||||||
-- Machine --
|
-- Machine --
|
||||||
-------------
|
-------------
|
||||||
|
@ -6018,6 +6005,7 @@ package body Exp_Attr is
|
||||||
|
|
||||||
when Attribute_Abort_Signal |
|
when Attribute_Abort_Signal |
|
||||||
Attribute_Address_Size |
|
Attribute_Address_Size |
|
||||||
|
Attribute_Atomic_Always_Lock_Free |
|
||||||
Attribute_Base |
|
Attribute_Base |
|
||||||
Attribute_Class |
|
Attribute_Class |
|
||||||
Attribute_Compiler_Version |
|
Attribute_Compiler_Version |
|
||||||
|
@ -6035,6 +6023,7 @@ package body Exp_Attr is
|
||||||
Attribute_Has_Tagged_Values |
|
Attribute_Has_Tagged_Values |
|
||||||
Attribute_Large |
|
Attribute_Large |
|
||||||
Attribute_Last_Valid |
|
Attribute_Last_Valid |
|
||||||
|
Attribute_Lock_Free |
|
||||||
Attribute_Machine_Emax |
|
Attribute_Machine_Emax |
|
||||||
Attribute_Machine_Emin |
|
Attribute_Machine_Emin |
|
||||||
Attribute_Machine_Mantissa |
|
Attribute_Machine_Mantissa |
|
||||||
|
|
|
@ -37,7 +37,7 @@ package body System.Atomic_Primitives is
|
||||||
|
|
||||||
function Lock_Free_Read_8 (Ptr : Address) return uint8 is
|
function Lock_Free_Read_8 (Ptr : Address) return uint8 is
|
||||||
begin
|
begin
|
||||||
if Support_Atomic_Primitives then
|
if uint8'Atomic_Always_Lock_Free then
|
||||||
return Atomic_Load_8 (Ptr, Acquire);
|
return Atomic_Load_8 (Ptr, Acquire);
|
||||||
else
|
else
|
||||||
raise Program_Error;
|
raise Program_Error;
|
||||||
|
@ -50,7 +50,7 @@ package body System.Atomic_Primitives is
|
||||||
|
|
||||||
function Lock_Free_Read_16 (Ptr : Address) return uint16 is
|
function Lock_Free_Read_16 (Ptr : Address) return uint16 is
|
||||||
begin
|
begin
|
||||||
if Support_Atomic_Primitives then
|
if uint16'Atomic_Always_Lock_Free then
|
||||||
return Atomic_Load_16 (Ptr, Acquire);
|
return Atomic_Load_16 (Ptr, Acquire);
|
||||||
else
|
else
|
||||||
raise Program_Error;
|
raise Program_Error;
|
||||||
|
@ -63,7 +63,7 @@ package body System.Atomic_Primitives is
|
||||||
|
|
||||||
function Lock_Free_Read_32 (Ptr : Address) return uint32 is
|
function Lock_Free_Read_32 (Ptr : Address) return uint32 is
|
||||||
begin
|
begin
|
||||||
if Support_Atomic_Primitives then
|
if uint32'Atomic_Always_Lock_Free then
|
||||||
return Atomic_Load_32 (Ptr, Acquire);
|
return Atomic_Load_32 (Ptr, Acquire);
|
||||||
else
|
else
|
||||||
raise Program_Error;
|
raise Program_Error;
|
||||||
|
@ -76,7 +76,7 @@ package body System.Atomic_Primitives is
|
||||||
|
|
||||||
function Lock_Free_Read_64 (Ptr : Address) return uint64 is
|
function Lock_Free_Read_64 (Ptr : Address) return uint64 is
|
||||||
begin
|
begin
|
||||||
if Support_Atomic_Primitives then
|
if uint64'Atomic_Always_Lock_Free then
|
||||||
return Atomic_Load_64 (Ptr, Acquire);
|
return Atomic_Load_64 (Ptr, Acquire);
|
||||||
else
|
else
|
||||||
raise Program_Error;
|
raise Program_Error;
|
||||||
|
@ -97,7 +97,7 @@ package body System.Atomic_Primitives is
|
||||||
begin
|
begin
|
||||||
if Expected /= Desired then
|
if Expected /= Desired then
|
||||||
|
|
||||||
if Support_Atomic_Primitives then
|
if uint8'Atomic_Always_Lock_Free then
|
||||||
Actual := Sync_Compare_And_Swap_8 (Ptr, Expected, Desired);
|
Actual := Sync_Compare_And_Swap_8 (Ptr, Expected, Desired);
|
||||||
else
|
else
|
||||||
raise Program_Error;
|
raise Program_Error;
|
||||||
|
@ -126,7 +126,7 @@ package body System.Atomic_Primitives is
|
||||||
begin
|
begin
|
||||||
if Expected /= Desired then
|
if Expected /= Desired then
|
||||||
|
|
||||||
if Support_Atomic_Primitives then
|
if uint16'Atomic_Always_Lock_Free then
|
||||||
Actual := Sync_Compare_And_Swap_16 (Ptr, Expected, Desired);
|
Actual := Sync_Compare_And_Swap_16 (Ptr, Expected, Desired);
|
||||||
else
|
else
|
||||||
raise Program_Error;
|
raise Program_Error;
|
||||||
|
@ -155,7 +155,7 @@ package body System.Atomic_Primitives is
|
||||||
begin
|
begin
|
||||||
if Expected /= Desired then
|
if Expected /= Desired then
|
||||||
|
|
||||||
if Support_Atomic_Primitives then
|
if uint32'Atomic_Always_Lock_Free then
|
||||||
Actual := Sync_Compare_And_Swap_32 (Ptr, Expected, Desired);
|
Actual := Sync_Compare_And_Swap_32 (Ptr, Expected, Desired);
|
||||||
else
|
else
|
||||||
raise Program_Error;
|
raise Program_Error;
|
||||||
|
@ -184,7 +184,7 @@ package body System.Atomic_Primitives is
|
||||||
begin
|
begin
|
||||||
if Expected /= Desired then
|
if Expected /= Desired then
|
||||||
|
|
||||||
if Support_Atomic_Primitives then
|
if uint64'Atomic_Always_Lock_Free then
|
||||||
Actual := Sync_Compare_And_Swap_64 (Ptr, Expected, Desired);
|
Actual := Sync_Compare_And_Swap_64 (Ptr, Expected, Desired);
|
||||||
else
|
else
|
||||||
raise Program_Error;
|
raise Program_Error;
|
||||||
|
|
|
@ -2573,6 +2573,15 @@ package body Sem_Attr is
|
||||||
Set_Etype (N, RTE (RE_AST_Handler));
|
Set_Etype (N, RTE (RE_AST_Handler));
|
||||||
end AST_Entry;
|
end AST_Entry;
|
||||||
|
|
||||||
|
-----------------------------
|
||||||
|
-- Atomic_Always_Lock_Free --
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
when Attribute_Atomic_Always_Lock_Free =>
|
||||||
|
Check_E0;
|
||||||
|
Check_Type;
|
||||||
|
Set_Etype (N, Standard_Boolean);
|
||||||
|
|
||||||
----------
|
----------
|
||||||
-- Base --
|
-- Base --
|
||||||
----------
|
----------
|
||||||
|
@ -5956,6 +5965,13 @@ package body Sem_Attr is
|
||||||
return;
|
return;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
|
-- For Lock_Free, we apply the attribute to the type of the object.
|
||||||
|
-- This is allowed since we have already verified that the type is a
|
||||||
|
-- protected type.
|
||||||
|
|
||||||
|
elsif Id = Attribute_Lock_Free then
|
||||||
|
P_Entity := Etype (P);
|
||||||
|
|
||||||
-- No other attributes for objects are folded
|
-- No other attributes for objects are folded
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -6021,10 +6037,13 @@ package body Sem_Attr is
|
||||||
|
|
||||||
-- Definite must be folded if the prefix is not a generic type,
|
-- Definite must be folded if the prefix is not a generic type,
|
||||||
-- that is to say if we are within an instantiation. Same processing
|
-- that is to say if we are within an instantiation. Same processing
|
||||||
-- applies to the GNAT attributes Has_Discriminants, Type_Class,
|
-- applies to the GNAT attributes Atomic_Always_Lock_Free,
|
||||||
-- Has_Tagged_Value, and Unconstrained_Array.
|
-- Has_Discriminants, Lock_Free, Type_Class, Has_Tagged_Value, and
|
||||||
|
-- Unconstrained_Array.
|
||||||
|
|
||||||
elsif (Id = Attribute_Definite
|
elsif (Id = Attribute_Atomic_Always_Lock_Free
|
||||||
|
or else
|
||||||
|
Id = Attribute_Definite
|
||||||
or else
|
or else
|
||||||
Id = Attribute_Has_Access_Values
|
Id = Attribute_Has_Access_Values
|
||||||
or else
|
or else
|
||||||
|
@ -6032,6 +6051,8 @@ package body Sem_Attr is
|
||||||
or else
|
or else
|
||||||
Id = Attribute_Has_Tagged_Values
|
Id = Attribute_Has_Tagged_Values
|
||||||
or else
|
or else
|
||||||
|
Id = Attribute_Lock_Free
|
||||||
|
or else
|
||||||
Id = Attribute_Type_Class
|
Id = Attribute_Type_Class
|
||||||
or else
|
or else
|
||||||
Id = Attribute_Unconstrained_Array
|
Id = Attribute_Unconstrained_Array
|
||||||
|
@ -6136,16 +6157,19 @@ package body Sem_Attr is
|
||||||
-- since we can't do anything with unconstrained arrays. In addition,
|
-- since we can't do anything with unconstrained arrays. In addition,
|
||||||
-- only the First, Last and Length attributes are possibly static.
|
-- only the First, Last and Length attributes are possibly static.
|
||||||
|
|
||||||
-- Definite, Has_Access_Values, Has_Discriminants, Has_Tagged_Values,
|
-- Atomic_Always_Lock_Free, Definite, Has_Access_Values,
|
||||||
-- Type_Class, and Unconstrained_Array are again exceptions, because
|
-- Has_Discriminants, Has_Tagged_Values, Lock_Free, Type_Class, and
|
||||||
-- they apply as well to unconstrained types.
|
-- Unconstrained_Array are again exceptions, because they apply as well
|
||||||
|
-- to unconstrained types.
|
||||||
|
|
||||||
-- In addition Component_Size is an exception since it is possibly
|
-- In addition Component_Size is an exception since it is possibly
|
||||||
-- foldable, even though it is never static, and it does apply to
|
-- foldable, even though it is never static, and it does apply to
|
||||||
-- unconstrained arrays. Furthermore, it is essential to fold this
|
-- unconstrained arrays. Furthermore, it is essential to fold this
|
||||||
-- in the packed case, since otherwise the value will be incorrect.
|
-- in the packed case, since otherwise the value will be incorrect.
|
||||||
|
|
||||||
elsif Id = Attribute_Definite
|
elsif Id = Attribute_Atomic_Always_Lock_Free
|
||||||
|
or else
|
||||||
|
Id = Attribute_Definite
|
||||||
or else
|
or else
|
||||||
Id = Attribute_Has_Access_Values
|
Id = Attribute_Has_Access_Values
|
||||||
or else
|
or else
|
||||||
|
@ -6153,6 +6177,8 @@ package body Sem_Attr is
|
||||||
or else
|
or else
|
||||||
Id = Attribute_Has_Tagged_Values
|
Id = Attribute_Has_Tagged_Values
|
||||||
or else
|
or else
|
||||||
|
Id = Attribute_Lock_Free
|
||||||
|
or else
|
||||||
Id = Attribute_Type_Class
|
Id = Attribute_Type_Class
|
||||||
or else
|
or else
|
||||||
Id = Attribute_Unconstrained_Array
|
Id = Attribute_Unconstrained_Array
|
||||||
|
@ -6381,6 +6407,30 @@ package body Sem_Attr is
|
||||||
null;
|
null;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
|
-----------------------------
|
||||||
|
-- Atomic_Always_Lock_Free --
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
-- Atomic_Always_Lock_Free attribute is a Boolean, thus no need to fold
|
||||||
|
-- here.
|
||||||
|
|
||||||
|
when Attribute_Atomic_Always_Lock_Free => Atomic_Always_Lock_Free :
|
||||||
|
declare
|
||||||
|
V : constant Entity_Id :=
|
||||||
|
Boolean_Literals
|
||||||
|
(Support_Atomic_Primitives_On_Target
|
||||||
|
and then Support_Atomic_Primitives (P_Type));
|
||||||
|
|
||||||
|
begin
|
||||||
|
Rewrite (N, New_Occurrence_Of (V, Loc));
|
||||||
|
|
||||||
|
-- Analyze and resolve as boolean. Note that this attribute is a
|
||||||
|
-- static attribute in GNAT.
|
||||||
|
|
||||||
|
Analyze_And_Resolve (N, Standard_Boolean);
|
||||||
|
Static := True;
|
||||||
|
end Atomic_Always_Lock_Free;
|
||||||
|
|
||||||
---------
|
---------
|
||||||
-- Bit --
|
-- Bit --
|
||||||
---------
|
---------
|
||||||
|
@ -6801,10 +6851,18 @@ package body Sem_Attr is
|
||||||
-- Lock_Free --
|
-- Lock_Free --
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
-- Lock_Free attribute is a Boolean, thus no need to fold here.
|
when Attribute_Lock_Free => Lock_Free : declare
|
||||||
|
V : constant Entity_Id := Boolean_Literals (Uses_Lock_Free (P_Type));
|
||||||
|
|
||||||
when Attribute_Lock_Free =>
|
begin
|
||||||
null;
|
Rewrite (N, New_Occurrence_Of (V, Loc));
|
||||||
|
|
||||||
|
-- Analyze and resolve as boolean. Note that this attribute is a
|
||||||
|
-- static attribute in GNAT.
|
||||||
|
|
||||||
|
Analyze_And_Resolve (N, Standard_Boolean);
|
||||||
|
Static := True;
|
||||||
|
end Lock_Free;
|
||||||
|
|
||||||
----------
|
----------
|
||||||
-- Last --
|
-- Last --
|
||||||
|
|
|
@ -557,7 +557,6 @@ package body Sem_Ch9 is
|
||||||
Id : constant Entity_Id := Entity (N);
|
Id : constant Entity_Id := Entity (N);
|
||||||
Comp_Decl : Node_Id;
|
Comp_Decl : Node_Id;
|
||||||
Comp_Id : Entity_Id := Empty;
|
Comp_Id : Entity_Id := Empty;
|
||||||
Comp_Size : Int := 0;
|
|
||||||
Comp_Type : Entity_Id;
|
Comp_Type : Entity_Id;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
@ -591,40 +590,19 @@ package body Sem_Ch9 is
|
||||||
|
|
||||||
Layout_Type (Comp_Type);
|
Layout_Type (Comp_Type);
|
||||||
|
|
||||||
if Known_Static_Esize (Comp_Type) then
|
if not
|
||||||
Comp_Size := UI_To_Int (Esize (Comp_Type));
|
Support_Atomic_Primitives (Comp_Type)
|
||||||
|
then
|
||||||
|
if Lock_Free_Given then
|
||||||
|
Error_Msg_NE
|
||||||
|
("type of& must support atomic " &
|
||||||
|
"operations",
|
||||||
|
N, Comp_Id);
|
||||||
|
return Skip;
|
||||||
|
end if;
|
||||||
|
|
||||||
-- If the Esize (Object_Size) is unknown at
|
return Abandon;
|
||||||
-- compile-time, look at the RM_Size
|
|
||||||
-- (Value_Size) since it may have been set by
|
|
||||||
-- an explicit representation clause.
|
|
||||||
|
|
||||||
elsif Known_Static_RM_Size (Comp_Type) then
|
|
||||||
Comp_Size :=
|
|
||||||
UI_To_Int (RM_Size (Comp_Type));
|
|
||||||
|
|
||||||
-- Worrisome missing else raise PE???
|
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
-- Check that the size of the component is 8,
|
|
||||||
-- 16, 32 or 64 bits.
|
|
||||||
|
|
||||||
-- What about AAMP here???
|
|
||||||
|
|
||||||
case Comp_Size is
|
|
||||||
when 8 | 16 | 32 | 64 =>
|
|
||||||
null;
|
|
||||||
when others =>
|
|
||||||
if Lock_Free_Given then
|
|
||||||
Error_Msg_NE
|
|
||||||
("type of& must support atomic " &
|
|
||||||
"operations",
|
|
||||||
N, Comp_Id);
|
|
||||||
return Skip;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
return Abandon;
|
|
||||||
end case;
|
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
-- Check if another protected component has
|
-- Check if another protected component has
|
||||||
|
|
|
@ -12833,6 +12833,47 @@ package body Sem_Util is
|
||||||
end if;
|
end if;
|
||||||
end Subprogram_Access_Level;
|
end Subprogram_Access_Level;
|
||||||
|
|
||||||
|
-------------------------------
|
||||||
|
-- Support_Atomic_Primitives --
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
function Support_Atomic_Primitives (Typ : Entity_Id) return Boolean is
|
||||||
|
Size : Int;
|
||||||
|
|
||||||
|
begin
|
||||||
|
-- Verify the alignment of Typ is known
|
||||||
|
|
||||||
|
if not Known_Alignment (Typ) then
|
||||||
|
return False;
|
||||||
|
end if;
|
||||||
|
|
||||||
|
if Known_Static_Esize (Typ) then
|
||||||
|
Size := UI_To_Int (Esize (Typ));
|
||||||
|
|
||||||
|
-- If the Esize (Object_Size) is unknown at compile-time, look at the
|
||||||
|
-- RM_Size (Value_Size) since it may have been set by an explicit rep
|
||||||
|
-- item.
|
||||||
|
|
||||||
|
elsif Known_Static_RM_Size (Typ) then
|
||||||
|
Size := UI_To_Int (RM_Size (Typ));
|
||||||
|
|
||||||
|
-- Otherwise, the size is considered to be unknown.
|
||||||
|
|
||||||
|
else
|
||||||
|
return False;
|
||||||
|
end if;
|
||||||
|
|
||||||
|
-- Check that the size of the component is 8, 16, 32 or 64 bits and that
|
||||||
|
-- Typ is properly aligned.
|
||||||
|
|
||||||
|
case Size is
|
||||||
|
when 8 | 16 | 32 | 64 =>
|
||||||
|
return Size = UI_To_Int (Alignment (Typ)) * 8;
|
||||||
|
when others =>
|
||||||
|
return False;
|
||||||
|
end case;
|
||||||
|
end Support_Atomic_Primitives;
|
||||||
|
|
||||||
-----------------
|
-----------------
|
||||||
-- Trace_Scope --
|
-- Trace_Scope --
|
||||||
-----------------
|
-----------------
|
||||||
|
|
|
@ -1477,6 +1477,10 @@ package Sem_Util is
|
||||||
function Subprogram_Access_Level (Subp : Entity_Id) return Uint;
|
function Subprogram_Access_Level (Subp : Entity_Id) return Uint;
|
||||||
-- Return the accessibility level of the view denoted by Subp
|
-- Return the accessibility level of the view denoted by Subp
|
||||||
|
|
||||||
|
function Support_Atomic_Primitives (Typ : Entity_Id) return Boolean;
|
||||||
|
-- Return True if Typ supports the GCC built-in atomic operations (i.e. if
|
||||||
|
-- Typ is properly sized and aligned).
|
||||||
|
|
||||||
procedure Trace_Scope (N : Node_Id; E : Entity_Id; Msg : String);
|
procedure Trace_Scope (N : Node_Id; E : Entity_Id; Msg : String);
|
||||||
-- Print debugging information on entry to each unit being analyzed
|
-- Print debugging information on entry to each unit being analyzed
|
||||||
|
|
||||||
|
|
|
@ -766,6 +766,7 @@ package Snames is
|
||||||
Name_Asm_Input : constant Name_Id := N + $; -- GNAT
|
Name_Asm_Input : constant Name_Id := N + $; -- GNAT
|
||||||
Name_Asm_Output : constant Name_Id := N + $; -- GNAT
|
Name_Asm_Output : constant Name_Id := N + $; -- GNAT
|
||||||
Name_AST_Entry : constant Name_Id := N + $; -- VMS
|
Name_AST_Entry : constant Name_Id := N + $; -- VMS
|
||||||
|
Name_Atomic_Always_Lock_Free : constant Name_Id := N + $; -- GNAT
|
||||||
Name_Bit : constant Name_Id := N + $; -- GNAT
|
Name_Bit : constant Name_Id := N + $; -- GNAT
|
||||||
Name_Bit_Order : constant Name_Id := N + $;
|
Name_Bit_Order : constant Name_Id := N + $;
|
||||||
Name_Bit_Position : constant Name_Id := N + $; -- GNAT
|
Name_Bit_Position : constant Name_Id := N + $; -- GNAT
|
||||||
|
@ -1363,6 +1364,7 @@ package Snames is
|
||||||
Attribute_Asm_Input,
|
Attribute_Asm_Input,
|
||||||
Attribute_Asm_Output,
|
Attribute_Asm_Output,
|
||||||
Attribute_AST_Entry,
|
Attribute_AST_Entry,
|
||||||
|
Attribute_Atomic_Always_Lock_Free,
|
||||||
Attribute_Bit,
|
Attribute_Bit,
|
||||||
Attribute_Bit_Order,
|
Attribute_Bit_Order,
|
||||||
Attribute_Bit_Position,
|
Attribute_Bit_Position,
|
||||||
|
|
|
@ -142,7 +142,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -142,7 +142,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -158,7 +158,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := False;
|
Stack_Check_Probes : constant Boolean := False;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -132,7 +132,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -130,7 +130,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -132,7 +132,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -140,7 +140,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -130,7 +130,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := False;
|
Stack_Check_Probes : constant Boolean := False;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -130,7 +130,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := False;
|
Stack_Check_Probes : constant Boolean := False;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -140,7 +140,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := False;
|
Stack_Check_Probes : constant Boolean := False;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -130,7 +130,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -146,7 +146,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -132,7 +132,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -132,7 +132,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -132,7 +132,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -150,7 +150,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := True;
|
Stack_Check_Probes : constant Boolean := True;
|
||||||
Stack_Check_Limits : constant Boolean := False;
|
Stack_Check_Limits : constant Boolean := False;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -145,7 +145,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := False;
|
Stack_Check_Probes : constant Boolean := False;
|
||||||
Stack_Check_Limits : constant Boolean := True;
|
Stack_Check_Limits : constant Boolean := True;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -145,7 +145,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := False;
|
Stack_Check_Probes : constant Boolean := False;
|
||||||
Stack_Check_Limits : constant Boolean := True;
|
Stack_Check_Limits : constant Boolean := True;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -145,7 +145,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := False;
|
Stack_Check_Probes : constant Boolean := False;
|
||||||
Stack_Check_Limits : constant Boolean := True;
|
Stack_Check_Limits : constant Boolean := True;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -154,7 +154,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := False;
|
Stack_Check_Probes : constant Boolean := False;
|
||||||
Stack_Check_Limits : constant Boolean := True;
|
Stack_Check_Limits : constant Boolean := True;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
|
@ -147,7 +147,6 @@ private
|
||||||
Stack_Check_Probes : constant Boolean := False;
|
Stack_Check_Probes : constant Boolean := False;
|
||||||
Stack_Check_Limits : constant Boolean := True;
|
Stack_Check_Limits : constant Boolean := True;
|
||||||
Support_Aggregates : constant Boolean := True;
|
Support_Aggregates : constant Boolean := True;
|
||||||
Support_Atomic_Primitives : constant Boolean := False;
|
|
||||||
Support_Composite_Assign : constant Boolean := True;
|
Support_Composite_Assign : constant Boolean := True;
|
||||||
Support_Composite_Compare : constant Boolean := True;
|
Support_Composite_Compare : constant Boolean := True;
|
||||||
Support_Long_Shifts : constant Boolean := True;
|
Support_Long_Shifts : constant Boolean := True;
|
||||||
|
|
Loading…
Reference in New Issue