summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-08-06 08:12:10 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-08-06 08:12:10 +0000
commit958b0dc0510c358e6cd887dfc895bc5883ab42bf (patch)
treef0cc8703a3dd5b12c3179ab47811052a3e29feef /gcc
parenta39ff5829e67c254be33ea807e2e8217f01c1fba (diff)
downloadgcc-958b0dc0510c358e6cd887dfc895bc5883ab42bf.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190163 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/exp_attr.adb15
-rw-r--r--gcc/ada/s-atopri.adb16
-rw-r--r--gcc/ada/sem_attr.adb78
-rw-r--r--gcc/ada/sem_ch9.adb46
-rw-r--r--gcc/ada/sem_util.adb41
-rw-r--r--gcc/ada/sem_util.ads4
-rw-r--r--gcc/ada/snames.ads-tmpl2
-rw-r--r--gcc/ada/system-aix.ads1
-rw-r--r--gcc/ada/system-aix64.ads1
-rw-r--r--gcc/ada/system-darwin-ppc.ads1
-rw-r--r--gcc/ada/system-hpux.ads1
-rw-r--r--gcc/ada/system-linux-alpha.ads1
-rw-r--r--gcc/ada/system-linux-hppa.ads1
-rw-r--r--gcc/ada/system-linux-ppc.ads1
-rw-r--r--gcc/ada/system-linux-s390.ads1
-rw-r--r--gcc/ada/system-linux-s390x.ads1
-rw-r--r--gcc/ada/system-linux-sh4.ads1
-rw-r--r--gcc/ada/system-linux-sparc.ads1
-rw-r--r--gcc/ada/system-lynxos-ppc.ads1
-rw-r--r--gcc/ada/system-mingw.ads1
-rw-r--r--gcc/ada/system-solaris-sparc.ads1
-rw-r--r--gcc/ada/system-solaris-sparcv9.ads1
-rw-r--r--gcc/ada/system-vms_64.ads1
-rw-r--r--gcc/ada/system-vxworks-arm.ads1
-rw-r--r--gcc/ada/system-vxworks-m68k.ads1
-rw-r--r--gcc/ada/system-vxworks-mips.ads1
-rw-r--r--gcc/ada/system-vxworks-ppc.ads1
-rw-r--r--gcc/ada/system-vxworks-sparcv9.ads1
28 files changed, 137 insertions, 86 deletions
diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb
index ae7def7e3bd..6516d3bc199 100644
--- a/gcc/ada/exp_attr.adb
+++ b/gcc/ada/exp_attr.adb
@@ -3100,19 +3100,6 @@ package body Exp_Attr is
end if;
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 --
-------------
@@ -6018,6 +6005,7 @@ package body Exp_Attr is
when Attribute_Abort_Signal |
Attribute_Address_Size |
+ Attribute_Atomic_Always_Lock_Free |
Attribute_Base |
Attribute_Class |
Attribute_Compiler_Version |
@@ -6035,6 +6023,7 @@ package body Exp_Attr is
Attribute_Has_Tagged_Values |
Attribute_Large |
Attribute_Last_Valid |
+ Attribute_Lock_Free |
Attribute_Machine_Emax |
Attribute_Machine_Emin |
Attribute_Machine_Mantissa |
diff --git a/gcc/ada/s-atopri.adb b/gcc/ada/s-atopri.adb
index 50e7346f80e..145cbb6c9db 100644
--- a/gcc/ada/s-atopri.adb
+++ b/gcc/ada/s-atopri.adb
@@ -37,7 +37,7 @@ package body System.Atomic_Primitives is
function Lock_Free_Read_8 (Ptr : Address) return uint8 is
begin
- if Support_Atomic_Primitives then
+ if uint8'Atomic_Always_Lock_Free then
return Atomic_Load_8 (Ptr, Acquire);
else
raise Program_Error;
@@ -50,7 +50,7 @@ package body System.Atomic_Primitives is
function Lock_Free_Read_16 (Ptr : Address) return uint16 is
begin
- if Support_Atomic_Primitives then
+ if uint16'Atomic_Always_Lock_Free then
return Atomic_Load_16 (Ptr, Acquire);
else
raise Program_Error;
@@ -63,7 +63,7 @@ package body System.Atomic_Primitives is
function Lock_Free_Read_32 (Ptr : Address) return uint32 is
begin
- if Support_Atomic_Primitives then
+ if uint32'Atomic_Always_Lock_Free then
return Atomic_Load_32 (Ptr, Acquire);
else
raise Program_Error;
@@ -76,7 +76,7 @@ package body System.Atomic_Primitives is
function Lock_Free_Read_64 (Ptr : Address) return uint64 is
begin
- if Support_Atomic_Primitives then
+ if uint64'Atomic_Always_Lock_Free then
return Atomic_Load_64 (Ptr, Acquire);
else
raise Program_Error;
@@ -97,7 +97,7 @@ package body System.Atomic_Primitives is
begin
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);
else
raise Program_Error;
@@ -126,7 +126,7 @@ package body System.Atomic_Primitives is
begin
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);
else
raise Program_Error;
@@ -155,7 +155,7 @@ package body System.Atomic_Primitives is
begin
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);
else
raise Program_Error;
@@ -184,7 +184,7 @@ package body System.Atomic_Primitives is
begin
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);
else
raise Program_Error;
diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb
index 35adaaf6a61..b2af6ae85b8 100644
--- a/gcc/ada/sem_attr.adb
+++ b/gcc/ada/sem_attr.adb
@@ -2573,6 +2573,15 @@ package body Sem_Attr is
Set_Etype (N, RTE (RE_AST_Handler));
end AST_Entry;
+ -----------------------------
+ -- Atomic_Always_Lock_Free --
+ -----------------------------
+
+ when Attribute_Atomic_Always_Lock_Free =>
+ Check_E0;
+ Check_Type;
+ Set_Etype (N, Standard_Boolean);
+
----------
-- Base --
----------
@@ -5956,6 +5965,13 @@ package body Sem_Attr is
return;
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
else
@@ -6021,10 +6037,13 @@ package body Sem_Attr is
-- Definite must be folded if the prefix is not a generic type,
-- that is to say if we are within an instantiation. Same processing
- -- applies to the GNAT attributes Has_Discriminants, Type_Class,
- -- Has_Tagged_Value, and Unconstrained_Array.
+ -- applies to the GNAT attributes Atomic_Always_Lock_Free,
+ -- 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
Id = Attribute_Has_Access_Values
or else
@@ -6032,6 +6051,8 @@ package body Sem_Attr is
or else
Id = Attribute_Has_Tagged_Values
or else
+ Id = Attribute_Lock_Free
+ or else
Id = Attribute_Type_Class
or else
Id = Attribute_Unconstrained_Array
@@ -6136,16 +6157,19 @@ package body Sem_Attr is
-- since we can't do anything with unconstrained arrays. In addition,
-- only the First, Last and Length attributes are possibly static.
- -- Definite, Has_Access_Values, Has_Discriminants, Has_Tagged_Values,
- -- Type_Class, and Unconstrained_Array are again exceptions, because
- -- they apply as well to unconstrained types.
+ -- Atomic_Always_Lock_Free, Definite, Has_Access_Values,
+ -- Has_Discriminants, Has_Tagged_Values, Lock_Free, Type_Class, and
+ -- Unconstrained_Array are again exceptions, because they apply as well
+ -- to unconstrained types.
-- In addition Component_Size is an exception since it is possibly
-- foldable, even though it is never static, and it does apply to
-- unconstrained arrays. Furthermore, it is essential to fold this
-- 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
Id = Attribute_Has_Access_Values
or else
@@ -6153,6 +6177,8 @@ package body Sem_Attr is
or else
Id = Attribute_Has_Tagged_Values
or else
+ Id = Attribute_Lock_Free
+ or else
Id = Attribute_Type_Class
or else
Id = Attribute_Unconstrained_Array
@@ -6381,6 +6407,30 @@ package body Sem_Attr is
null;
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 --
---------
@@ -6801,10 +6851,18 @@ package body Sem_Attr is
-- 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 =>
- null;
+ 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 Lock_Free;
----------
-- Last --
diff --git a/gcc/ada/sem_ch9.adb b/gcc/ada/sem_ch9.adb
index e033afa97df..6ee0bceeb81 100644
--- a/gcc/ada/sem_ch9.adb
+++ b/gcc/ada/sem_ch9.adb
@@ -557,7 +557,6 @@ package body Sem_Ch9 is
Id : constant Entity_Id := Entity (N);
Comp_Decl : Node_Id;
Comp_Id : Entity_Id := Empty;
- Comp_Size : Int := 0;
Comp_Type : Entity_Id;
begin
@@ -591,40 +590,19 @@ package body Sem_Ch9 is
Layout_Type (Comp_Type);
- if Known_Static_Esize (Comp_Type) then
- Comp_Size := UI_To_Int (Esize (Comp_Type));
-
- -- 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 representation clause.
-
- elsif Known_Static_RM_Size (Comp_Type) then
- Comp_Size :=
- UI_To_Int (RM_Size (Comp_Type));
-
- -- Worrisome missing else raise PE???
+ if not
+ 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;
+
+ return Abandon;
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;
-- Check if another protected component has
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 8675d54d35a..9d095309f82 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -12833,6 +12833,47 @@ package body Sem_Util is
end if;
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 --
-----------------
diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads
index 282ae3a0fb2..8d1f7cfadb2 100644
--- a/gcc/ada/sem_util.ads
+++ b/gcc/ada/sem_util.ads
@@ -1477,6 +1477,10 @@ package Sem_Util is
function Subprogram_Access_Level (Subp : Entity_Id) return Uint;
-- 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);
-- Print debugging information on entry to each unit being analyzed
diff --git a/gcc/ada/snames.ads-tmpl b/gcc/ada/snames.ads-tmpl
index 27ee72e2c89..d0c20153b0a 100644
--- a/gcc/ada/snames.ads-tmpl
+++ b/gcc/ada/snames.ads-tmpl
@@ -766,6 +766,7 @@ package Snames is
Name_Asm_Input : constant Name_Id := N + $; -- GNAT
Name_Asm_Output : constant Name_Id := N + $; -- GNAT
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_Order : constant Name_Id := N + $;
Name_Bit_Position : constant Name_Id := N + $; -- GNAT
@@ -1363,6 +1364,7 @@ package Snames is
Attribute_Asm_Input,
Attribute_Asm_Output,
Attribute_AST_Entry,
+ Attribute_Atomic_Always_Lock_Free,
Attribute_Bit,
Attribute_Bit_Order,
Attribute_Bit_Position,
diff --git a/gcc/ada/system-aix.ads b/gcc/ada/system-aix.ads
index 2dfe3988fcc..19d65bdfcdd 100644
--- a/gcc/ada/system-aix.ads
+++ b/gcc/ada/system-aix.ads
@@ -142,7 +142,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-aix64.ads b/gcc/ada/system-aix64.ads
index a06b1d2123e..568c24f2569 100644
--- a/gcc/ada/system-aix64.ads
+++ b/gcc/ada/system-aix64.ads
@@ -142,7 +142,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-darwin-ppc.ads b/gcc/ada/system-darwin-ppc.ads
index 45668c99808..d45ab4ee846 100644
--- a/gcc/ada/system-darwin-ppc.ads
+++ b/gcc/ada/system-darwin-ppc.ads
@@ -158,7 +158,6 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-hpux.ads b/gcc/ada/system-hpux.ads
index 899a96c94c7..47793e55f67 100644
--- a/gcc/ada/system-hpux.ads
+++ b/gcc/ada/system-hpux.ads
@@ -132,7 +132,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-linux-alpha.ads b/gcc/ada/system-linux-alpha.ads
index 9a1eb21df01..5d845020446 100644
--- a/gcc/ada/system-linux-alpha.ads
+++ b/gcc/ada/system-linux-alpha.ads
@@ -130,7 +130,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-linux-hppa.ads b/gcc/ada/system-linux-hppa.ads
index a23c2ead89e..5ec908708bb 100644
--- a/gcc/ada/system-linux-hppa.ads
+++ b/gcc/ada/system-linux-hppa.ads
@@ -132,7 +132,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-linux-ppc.ads b/gcc/ada/system-linux-ppc.ads
index b967b147b46..fac85a52fe5 100644
--- a/gcc/ada/system-linux-ppc.ads
+++ b/gcc/ada/system-linux-ppc.ads
@@ -140,7 +140,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-linux-s390.ads b/gcc/ada/system-linux-s390.ads
index 8a5920534c2..28107a0b464 100644
--- a/gcc/ada/system-linux-s390.ads
+++ b/gcc/ada/system-linux-s390.ads
@@ -130,7 +130,6 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-linux-s390x.ads b/gcc/ada/system-linux-s390x.ads
index 028d055fa21..135b5a3b174 100644
--- a/gcc/ada/system-linux-s390x.ads
+++ b/gcc/ada/system-linux-s390x.ads
@@ -130,7 +130,6 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-linux-sh4.ads b/gcc/ada/system-linux-sh4.ads
index 67f290c5042..8ee07e374db 100644
--- a/gcc/ada/system-linux-sh4.ads
+++ b/gcc/ada/system-linux-sh4.ads
@@ -140,7 +140,6 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-linux-sparc.ads b/gcc/ada/system-linux-sparc.ads
index 94155cfe43b..ff93463cf86 100644
--- a/gcc/ada/system-linux-sparc.ads
+++ b/gcc/ada/system-linux-sparc.ads
@@ -130,7 +130,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-lynxos-ppc.ads b/gcc/ada/system-lynxos-ppc.ads
index 7419ecef988..3f701b2dcf9 100644
--- a/gcc/ada/system-lynxos-ppc.ads
+++ b/gcc/ada/system-lynxos-ppc.ads
@@ -146,7 +146,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-mingw.ads b/gcc/ada/system-mingw.ads
index 7787984f2aa..dfb485208cf 100644
--- a/gcc/ada/system-mingw.ads
+++ b/gcc/ada/system-mingw.ads
@@ -132,7 +132,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-solaris-sparc.ads b/gcc/ada/system-solaris-sparc.ads
index 1b5d4c0d216..ac695c543fe 100644
--- a/gcc/ada/system-solaris-sparc.ads
+++ b/gcc/ada/system-solaris-sparc.ads
@@ -132,7 +132,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-solaris-sparcv9.ads b/gcc/ada/system-solaris-sparcv9.ads
index 5d1015437d7..6c059244e97 100644
--- a/gcc/ada/system-solaris-sparcv9.ads
+++ b/gcc/ada/system-solaris-sparcv9.ads
@@ -132,7 +132,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-vms_64.ads b/gcc/ada/system-vms_64.ads
index 9a55d3598a7..946f0341d1c 100644
--- a/gcc/ada/system-vms_64.ads
+++ b/gcc/ada/system-vms_64.ads
@@ -150,7 +150,6 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-vxworks-arm.ads b/gcc/ada/system-vxworks-arm.ads
index 019458db20d..ae8ddd51065 100644
--- a/gcc/ada/system-vxworks-arm.ads
+++ b/gcc/ada/system-vxworks-arm.ads
@@ -145,7 +145,6 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := True;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-vxworks-m68k.ads b/gcc/ada/system-vxworks-m68k.ads
index 99b7cd3ea8b..d747792a56e 100644
--- a/gcc/ada/system-vxworks-m68k.ads
+++ b/gcc/ada/system-vxworks-m68k.ads
@@ -145,7 +145,6 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := True;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-vxworks-mips.ads b/gcc/ada/system-vxworks-mips.ads
index 1183ed7abdd..47b46fa2f7d 100644
--- a/gcc/ada/system-vxworks-mips.ads
+++ b/gcc/ada/system-vxworks-mips.ads
@@ -145,7 +145,6 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := True;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-vxworks-ppc.ads b/gcc/ada/system-vxworks-ppc.ads
index d1b75d00cf6..62d604f6319 100644
--- a/gcc/ada/system-vxworks-ppc.ads
+++ b/gcc/ada/system-vxworks-ppc.ads
@@ -154,7 +154,6 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := True;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-vxworks-sparcv9.ads b/gcc/ada/system-vxworks-sparcv9.ads
index edf4af4ccad..96601676a24 100644
--- a/gcc/ada/system-vxworks-sparcv9.ads
+++ b/gcc/ada/system-vxworks-sparcv9.ads
@@ -147,7 +147,6 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := True;
Support_Aggregates : constant Boolean := True;
- Support_Atomic_Primitives : constant Boolean := False;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;