aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog54
-rw-r--r--gcc/ada/gnat_ugn.texi6
-rw-r--r--gcc/ada/s-atopri.adb102
-rw-r--r--gcc/ada/s-atopri.ads23
-rw-r--r--gcc/ada/sem_ch12.adb13
-rw-r--r--gcc/ada/sem_prag.adb9
-rw-r--r--gcc/ada/system-aix.ads3
-rw-r--r--gcc/ada/system-aix64.ads3
-rw-r--r--gcc/ada/system-darwin-ppc.ads3
-rw-r--r--gcc/ada/system-darwin-x86.ads3
-rw-r--r--gcc/ada/system-darwin-x86_64.ads3
-rw-r--r--gcc/ada/system-freebsd-x86.ads3
-rw-r--r--gcc/ada/system-freebsd-x86_64.ads3
-rw-r--r--gcc/ada/system-hpux-ia64.ads1
-rw-r--r--gcc/ada/system-hpux.ads3
-rw-r--r--gcc/ada/system-linux-alpha.ads3
-rw-r--r--gcc/ada/system-linux-hppa.ads3
-rw-r--r--gcc/ada/system-linux-ia64.ads3
-rw-r--r--gcc/ada/system-linux-ppc.ads3
-rw-r--r--gcc/ada/system-linux-s390.ads3
-rw-r--r--gcc/ada/system-linux-s390x.ads3
-rw-r--r--gcc/ada/system-linux-sh4.ads3
-rw-r--r--gcc/ada/system-linux-sparc.ads3
-rw-r--r--gcc/ada/system-linux-x86.ads3
-rw-r--r--gcc/ada/system-linux-x86_64.ads3
-rw-r--r--gcc/ada/system-lynxos-ppc.ads3
-rw-r--r--gcc/ada/system-lynxos-x86.ads3
-rw-r--r--gcc/ada/system-mingw-x86_64.ads3
-rw-r--r--gcc/ada/system-mingw.ads3
-rw-r--r--gcc/ada/system-solaris-sparc.ads3
-rw-r--r--gcc/ada/system-solaris-sparcv9.ads3
-rw-r--r--gcc/ada/system-solaris-x86.ads3
-rw-r--r--gcc/ada/system-solaris-x86_64.ads3
-rw-r--r--gcc/ada/system-vms-ia64.ads3
-rw-r--r--gcc/ada/system-vms_64.ads3
-rw-r--r--gcc/ada/system-vxworks-arm.ads3
-rw-r--r--gcc/ada/system-vxworks-m68k.ads3
-rw-r--r--gcc/ada/system-vxworks-mips.ads3
-rw-r--r--gcc/ada/system-vxworks-ppc.ads1
-rw-r--r--gcc/ada/system-vxworks-sparcv9.ads3
-rw-r--r--gcc/ada/system-vxworks-x86.ads3
-rw-r--r--gcc/ada/targparm.adb4
-rw-r--r--gcc/ada/targparm.ads8
43 files changed, 266 insertions, 54 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 0d06faf..b24acec 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,57 @@
+2012-07-23 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Inst is now
+ a local variable. Retrieve the related instance when processing
+ a subprogram instantiation. Such instances appear as wrapper
+ packages.
+
+2012-07-23 Vincent Pucci <pucci@adacore.com>
+
+ * 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-lynxos-ppc.ads, system-mingw.ads,
+ system-solaris-sparc.ads, system-solaris-sparcv9.ads,
+ system-vms_64.ads, * system-vxworks-arm.ads, system-vxworks-m68k.ads,
+ system-vxworks-mips.ads, system-vxworks-ppc.ads,
+ system-vxworks-sparcv9.ads: Support_Atomic_Primitives set to False.
+ * system-darwin-x86.ads, system-darwin-x86_64.ads,
+ system-freebsd-x86.ads, system-freebsd-x86_64.ads,
+ system-hpux-ia64.ads, system-linux-ia64.ads, system-linux-x86.ads,
+ system-linux-x86_64.ads, system-lynxos-x86.ads,
+ system-mingw-x86_64.ads, system-solaris-x86.ads,
+ system-solaris-x86_64.ads, system-vms-ia64.ads,
+ system-vxworks-x86.ads: Support_Atomic_Primitives set to True.
+ * s-atopri.adb (Lock_Free_Read_X): New body.
+ (Lock_Free_Try_Write_X): Support_Atomic_Primitives check added.
+ (Lock_Free_Try_Write_64): New body.
+ * s-atopri.ads: New type uint.
+ (Sync_Compare_And_Swap_64): __sync_val_compare_and_swap_8 intrinsic
+ import.
+ (Lock_Free_Read_X): Body moved to s-atopri.adb.
+ (Lock_Free_Try_Write_64): Similar to other Lock_Free_Try_Write_X
+ routines.
+ * targparm.adb: New enumeration literal SAP
+ (Support_Atomic_Primitives) for type Targparm_Tags. New constant
+ SAP_Str. New component SAP_Str'Access for array Targparm_Str.
+ (Get_Target_Parameters): Parse Support_Atomic_Primitives_On_Target
+ flag.
+ * targparm.ads: New back-end code generation flag
+ Support_Atomic_Primitives_On_Target
+
+2012-07-23 Vincent Pucci <pucci@adacore.com>
+
+ * gnat_ugn.texi: Dimensionality checking documentation updated.
+
+2012-07-23 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_prag.adb (Make_Inline): If the pragma applies to a
+ subprogram renaming, set inline flags on both the renamed entity
+ and on the renaming, so that some ASIS queries can be handled
+ consistently in the absence of expansion.
+
2012-07-23 Fedor Rybin <frybin@adacore.com>
* gnat_ugn.texi: Removing obsolete limitation of gnattest
diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi
index a9eccf2..934db21 100644
--- a/gcc/ada/gnat_ugn.texi
+++ b/gcc/ada/gnat_ugn.texi
@@ -18784,13 +18784,13 @@ are rejected with the following diagnoses:
@smallexample
Distance := 5.0;
>>> dimensions mismatch in assignment
- >>> left-hand side has dimensions (1, 0, 0, 0, 0, 0, 0)
+ >>> left-hand side has dimension [L]
>>> right-hand side is dimensionless
Distance := 5.0 * kg:
>>> dimensions mismatch in assignment
- >>> left-hand side has dimensions (1, 0, 0, 0, 0, 0, 0)
- >>> right-hand side has dimensions (0, 1, 0, 0, 0, 0, 0)
+ >>> left-hand side has dimension [L]
+ >>> right-hand side has dimension [M]
@end smallexample
@noindent
diff --git a/gcc/ada/s-atopri.adb b/gcc/ada/s-atopri.adb
index 1977ba4..d856c8c 100644
--- a/gcc/ada/s-atopri.adb
+++ b/gcc/ada/s-atopri.adb
@@ -31,6 +31,58 @@
package body System.Atomic_Primitives is
+ ----------------------
+ -- Lock_Free_Read_8 --
+ ----------------------
+
+ function Lock_Free_Read_8 (Ptr : Address) return uint8 is
+ begin
+ if Support_Atomic_Primitives then
+ return Atomic_Load_8 (Ptr, Acquire);
+ else
+ raise Program_Error;
+ end if;
+ end Lock_Free_Read_8;
+
+ ----------------------
+ -- Lock_Free_Read_16 --
+ ----------------------
+
+ function Lock_Free_Read_16 (Ptr : Address) return uint16 is
+ begin
+ if Support_Atomic_Primitives then
+ return Atomic_Load_16 (Ptr, Acquire);
+ else
+ raise Program_Error;
+ end if;
+ end Lock_Free_Read_16;
+
+ ----------------------
+ -- Lock_Free_Read_32 --
+ ----------------------
+
+ function Lock_Free_Read_32 (Ptr : Address) return uint32 is
+ begin
+ if Support_Atomic_Primitives then
+ return Atomic_Load_32 (Ptr, Acquire);
+ else
+ raise Program_Error;
+ end if;
+ end Lock_Free_Read_32;
+
+ ----------------------
+ -- Lock_Free_Read_64 --
+ ----------------------
+
+ function Lock_Free_Read_64 (Ptr : Address) return uint64 is
+ begin
+ if Support_Atomic_Primitives then
+ return Atomic_Load_64 (Ptr, Acquire);
+ else
+ raise Program_Error;
+ end if;
+ end Lock_Free_Read_64;
+
---------------------------
-- Lock_Free_Try_Write_8 --
---------------------------
@@ -44,7 +96,12 @@ package body System.Atomic_Primitives is
begin
if Expected /= Desired then
- Actual := Sync_Compare_And_Swap_8 (Ptr, Expected, Desired);
+
+ if Support_Atomic_Primitives then
+ Actual := Sync_Compare_And_Swap_8 (Ptr, Expected, Desired);
+ else
+ raise Program_Error;
+ end if;
if Actual /= Expected then
Expected := Actual;
@@ -68,7 +125,12 @@ package body System.Atomic_Primitives is
begin
if Expected /= Desired then
- Actual := Sync_Compare_And_Swap_16 (Ptr, Expected, Desired);
+
+ if Support_Atomic_Primitives then
+ Actual := Sync_Compare_And_Swap_16 (Ptr, Expected, Desired);
+ else
+ raise Program_Error;
+ end if;
if Actual /= Expected then
Expected := Actual;
@@ -92,7 +154,12 @@ package body System.Atomic_Primitives is
begin
if Expected /= Desired then
- Actual := Sync_Compare_And_Swap_32 (Ptr, Expected, Desired);
+
+ if Support_Atomic_Primitives then
+ Actual := Sync_Compare_And_Swap_32 (Ptr, Expected, Desired);
+ else
+ raise Program_Error;
+ end if;
if Actual /= Expected then
Expected := Actual;
@@ -102,4 +169,33 @@ package body System.Atomic_Primitives is
return True;
end Lock_Free_Try_Write_32;
+
+ ----------------------------
+ -- Lock_Free_Try_Write_64 --
+ ----------------------------
+
+ function Lock_Free_Try_Write_64
+ (Ptr : Address;
+ Expected : in out uint64;
+ Desired : uint64) return Boolean
+ is
+ Actual : uint64;
+
+ begin
+ if Expected /= Desired then
+
+ if Support_Atomic_Primitives then
+ Actual := Sync_Compare_And_Swap_64 (Ptr, Expected, Desired);
+ else
+ raise Program_Error;
+ end if;
+
+ if Actual /= Expected then
+ Expected := Actual;
+ return False;
+ end if;
+ end if;
+
+ return True;
+ end Lock_Free_Try_Write_64;
end System.Atomic_Primitives;
diff --git a/gcc/ada/s-atopri.ads b/gcc/ada/s-atopri.ads
index 80eeb5e..ba4b733 100644
--- a/gcc/ada/s-atopri.ads
+++ b/gcc/ada/s-atopri.ads
@@ -36,6 +36,8 @@
package System.Atomic_Primitives is
pragma Preelaborate;
+ type uint is mod 2 ** Long_Integer'Size;
+
type uint8 is mod 2**8
with Size => 8;
@@ -121,10 +123,10 @@ package System.Atomic_Primitives is
function Sync_Compare_And_Swap_64
(Ptr : Address;
Expected : uint64;
- Desired : uint64) return Boolean;
+ Desired : uint64) return uint64;
pragma Import (Intrinsic,
Sync_Compare_And_Swap_64,
- "__sync_bool_compare_and_swap_8");
+ "__sync_val_compare_and_swap_8");
--------------------------
-- Lock-free operations --
@@ -139,18 +141,13 @@ package System.Atomic_Primitives is
-- * Lock_Free_Try_Write_N tries to write the Desired value into Ptr only
-- if Expected and Desired mismatch.
- function Lock_Free_Read_8 (Ptr : Address) return uint8 is
- (Atomic_Load_8 (Ptr, Acquire));
+ function Lock_Free_Read_8 (Ptr : Address) return uint8;
- function Lock_Free_Read_16 (Ptr : Address) return uint16 is
- (Atomic_Load_16 (Ptr, Acquire));
+ function Lock_Free_Read_16 (Ptr : Address) return uint16;
- function Lock_Free_Read_32 (Ptr : Address) return uint32 is
- (Atomic_Load_32 (Ptr, Acquire));
+ function Lock_Free_Read_32 (Ptr : Address) return uint32;
- function Lock_Free_Read_64
- (Ptr : Address;
- Model : Mem_Model := Seq_Cst) return uint64 renames Atomic_Load_64;
+ function Lock_Free_Read_64 (Ptr : Address) return uint64;
function Lock_Free_Try_Write_8
(Ptr : Address;
@@ -169,8 +166,8 @@ package System.Atomic_Primitives is
function Lock_Free_Try_Write_64
(Ptr : Address;
- Expected : uint64;
- Desired : uint64) return Boolean renames Sync_Compare_And_Swap_64;
+ Expected : in out uint64;
+ Desired : uint64) return Boolean;
pragma Inline (Lock_Free_Read_8);
pragma Inline (Lock_Free_Read_16);
diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb
index b2be58f..0f2d254 100644
--- a/gcc/ada/sem_ch12.adb
+++ b/gcc/ada/sem_ch12.adb
@@ -7852,9 +7852,9 @@ package body Sem_Ch12 is
(N : Node_Id;
F_Node : Node_Id)
is
- Inst : constant Entity_Id := Entity (F_Node);
Decl : Node_Id;
Decls : List_Id;
+ Inst : Entity_Id;
Par_N : Node_Id;
function Enclosing_Body (N : Node_Id) return Node_Id;
@@ -7921,9 +7921,18 @@ package body Sem_Ch12 is
begin
if not Is_List_Member (F_Node) then
+ Decl := N;
Decls := List_Containing (N);
+ Inst := Entity (F_Node);
Par_N := Parent (Decls);
- Decl := N;
+
+ -- When processing a subprogram instantiation, utilize the actual
+ -- subprogram instantiation rather than its package wrapper as it
+ -- carries all the context information.
+
+ if Is_Wrapper_Package (Inst) then
+ Inst := Related_Instance (Inst);
+ end if;
-- If this is a package instance, check whether the generic is
-- declared in a previous instance and the current instance is
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 372ad8e..8a67b47 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -4941,6 +4941,15 @@ package body Sem_Prag is
then
Error_Msg_N
("Inline cannot apply to a formal subprogram", N);
+
+ -- If Subp is a renaming, it is the renamed entity that
+ -- will appear in any call, and be inlined. However, for
+ -- ASIS uses it is convenient to indicate that the renaming
+ -- itself is an inlined subprogram, so that some gnatcheck
+ -- rules can be applied in the absence of expansion.
+
+ elsif Nkind (Decl) = N_Subprogram_Renaming_Declaration then
+ Set_Inline_Flags (Subp);
end if;
end if;
diff --git a/gcc/ada/system-aix.ads b/gcc/ada/system-aix.ads
index 3f91af5..2dfe398 100644
--- a/gcc/ada/system-aix.ads
+++ b/gcc/ada/system-aix.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (AIX/PPC Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -142,6 +142,7 @@ 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 4ad3756..a06b1d2 100644
--- a/gcc/ada/system-aix64.ads
+++ b/gcc/ada/system-aix64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (PPC/AIX64 Version) --
-- --
--- Copyright (C) 2009-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -142,6 +142,7 @@ 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 79894e5..45668c9 100644
--- a/gcc/ada/system-darwin-ppc.ads
+++ b/gcc/ada/system-darwin-ppc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Darwin/PPC Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -158,6 +158,7 @@ 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-darwin-x86.ads b/gcc/ada/system-darwin-x86.ads
index efd93f6..908cf50 100644
--- a/gcc/ada/system-darwin-x86.ads
+++ b/gcc/ada/system-darwin-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Darwin/x86 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -158,6 +158,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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-x86_64.ads b/gcc/ada/system-darwin-x86_64.ads
index 27f1241..0e5e8c0 100644
--- a/gcc/ada/system-darwin-x86_64.ads
+++ b/gcc/ada/system-darwin-x86_64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Darwin/x86_64 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -158,6 +158,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-freebsd-x86.ads b/gcc/ada/system-freebsd-x86.ads
index cb03d56..57bff62 100644
--- a/gcc/ada/system-freebsd-x86.ads
+++ b/gcc/ada/system-freebsd-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (FreeBSD/x86 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/system-freebsd-x86_64.ads b/gcc/ada/system-freebsd-x86_64.ads
index 8f523a2..e99578d 100644
--- a/gcc/ada/system-freebsd-x86_64.ads
+++ b/gcc/ada/system-freebsd-x86_64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (FreeBSD/x86_64 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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-ia64.ads b/gcc/ada/system-hpux-ia64.ads
index 29b2a49..c1f2f94 100644
--- a/gcc/ada/system-hpux-ia64.ads
+++ b/gcc/ada/system-hpux-ia64.ads
@@ -132,6 +132,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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 f32ea6f..899a96c 100644
--- a/gcc/ada/system-hpux.ads
+++ b/gcc/ada/system-hpux.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (HP-UX Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ 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 154c01b..9a1eb21 100644
--- a/gcc/ada/system-linux-alpha.ads
+++ b/gcc/ada/system-linux-alpha.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/alpha Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -130,6 +130,7 @@ 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 3b4bb27..a23c2ea 100644
--- a/gcc/ada/system-linux-hppa.ads
+++ b/gcc/ada/system-linux-hppa.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU/Linux-HPPA Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ 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-ia64.ads b/gcc/ada/system-linux-ia64.ads
index 11be849..c0cb664 100644
--- a/gcc/ada/system-linux-ia64.ads
+++ b/gcc/ada/system-linux-ia64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/ia64 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -140,6 +140,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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 cbd8143..b967b14 100644
--- a/gcc/ada/system-linux-ppc.ads
+++ b/gcc/ada/system-linux-ppc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/PPC Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -140,6 +140,7 @@ 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 19ad000..8a59205 100644
--- a/gcc/ada/system-linux-s390.ads
+++ b/gcc/ada/system-linux-s390.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/s390 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -130,6 +130,7 @@ 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 6ed5749..028d055 100644
--- a/gcc/ada/system-linux-s390x.ads
+++ b/gcc/ada/system-linux-s390x.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/s390x Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -130,6 +130,7 @@ 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 344b7ef..67f290c 100644
--- a/gcc/ada/system-linux-sh4.ads
+++ b/gcc/ada/system-linux-sh4.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/sh4 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -140,6 +140,7 @@ 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 1f4f220..94155cf 100644
--- a/gcc/ada/system-linux-sparc.ads
+++ b/gcc/ada/system-linux-sparc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU/Linux-SPARC Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -130,6 +130,7 @@ 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-x86.ads b/gcc/ada/system-linux-x86.ads
index c0bd494..270ed06 100644
--- a/gcc/ada/system-linux-x86.ads
+++ b/gcc/ada/system-linux-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/x86 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -140,6 +140,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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-x86_64.ads b/gcc/ada/system-linux-x86_64.ads
index 1fd23fc..4c315d1 100644
--- a/gcc/ada/system-linux-x86_64.ads
+++ b/gcc/ada/system-linux-x86_64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/x86-64 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -140,6 +140,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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 8d718c8..7419ece 100644
--- a/gcc/ada/system-lynxos-ppc.ads
+++ b/gcc/ada/system-lynxos-ppc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (LynxOS PPC Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -146,6 +146,7 @@ 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-x86.ads b/gcc/ada/system-lynxos-x86.ads
index 18a4a36..70adfa98 100644
--- a/gcc/ada/system-lynxos-x86.ads
+++ b/gcc/ada/system-lynxos-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (LynxOS x86 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -146,6 +146,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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-x86_64.ads b/gcc/ada/system-mingw-x86_64.ads
index 9464259..b0b1222 100644
--- a/gcc/ada/system-mingw-x86_64.ads
+++ b/gcc/ada/system-mingw-x86_64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Windows Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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 9753650..7787984 100644
--- a/gcc/ada/system-mingw.ads
+++ b/gcc/ada/system-mingw.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Windows Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ 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 1afb18b..1b5d4c0 100644
--- a/gcc/ada/system-solaris-sparc.ads
+++ b/gcc/ada/system-solaris-sparc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (SUN Solaris Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ 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 4929c75..5d10154 100644
--- a/gcc/ada/system-solaris-sparcv9.ads
+++ b/gcc/ada/system-solaris-sparcv9.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Solaris Sparcv9 Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ 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-x86.ads b/gcc/ada/system-solaris-x86.ads
index cd722e3..3987ea8 100644
--- a/gcc/ada/system-solaris-x86.ads
+++ b/gcc/ada/system-solaris-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (x86 Solaris Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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-x86_64.ads b/gcc/ada/system-solaris-x86_64.ads
index 4f33678..ed78923 100644
--- a/gcc/ada/system-solaris-x86_64.ads
+++ b/gcc/ada/system-solaris-x86_64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (x86-64 Solaris Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -132,6 +132,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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-ia64.ads b/gcc/ada/system-vms-ia64.ads
index 010de3d..f8ed51a 100644
--- a/gcc/ada/system-vms-ia64.ads
+++ b/gcc/ada/system-vms-ia64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (OpenVMS 64bit Itanium GCC_ZCX DEC Threads Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -150,6 +150,7 @@ private
Stack_Check_Probes : constant Boolean := True;
Stack_Check_Limits : constant Boolean := False;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
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 11f2853..9a55d35 100644
--- a/gcc/ada/system-vms_64.ads
+++ b/gcc/ada/system-vms_64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (OpenVMS 64bit GCC_ZCX DEC Threads Version) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -150,6 +150,7 @@ 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 484d40d..019458d 100644
--- a/gcc/ada/system-vxworks-arm.ads
+++ b/gcc/ada/system-vxworks-arm.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks Version ARM) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -145,6 +145,7 @@ 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 429ca5d..99b7cd3 100644
--- a/gcc/ada/system-vxworks-m68k.ads
+++ b/gcc/ada/system-vxworks-m68k.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks version M68K) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -145,6 +145,7 @@ 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 3dbb835..1183ed7 100644
--- a/gcc/ada/system-vxworks-mips.ads
+++ b/gcc/ada/system-vxworks-mips.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks Version Mips) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -145,6 +145,7 @@ 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 62d604f..d1b75d0 100644
--- a/gcc/ada/system-vxworks-ppc.ads
+++ b/gcc/ada/system-vxworks-ppc.ads
@@ -154,6 +154,7 @@ 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 856161f..edf4af4 100644
--- a/gcc/ada/system-vxworks-sparcv9.ads
+++ b/gcc/ada/system-vxworks-sparcv9.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks Version Sparc/64) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -147,6 +147,7 @@ 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-x86.ads b/gcc/ada/system-vxworks-x86.ads
index 14388d8..a2df22b 100644
--- a/gcc/ada/system-vxworks-x86.ads
+++ b/gcc/ada/system-vxworks-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 5 Version x86) --
-- --
--- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -145,6 +145,7 @@ private
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Limits : constant Boolean := True;
Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
Support_Composite_Assign : constant Boolean := True;
Support_Composite_Compare : constant Boolean := True;
Support_Long_Shifts : constant Boolean := True;
diff --git a/gcc/ada/targparm.adb b/gcc/ada/targparm.adb
index 193858a..ae80155 100644
--- a/gcc/ada/targparm.adb
+++ b/gcc/ada/targparm.adb
@@ -57,6 +57,7 @@ package body Targparm is
PAS, -- Preallocated_Stacks
RTX, -- RTX_RTSS_Kernel_Module
SAG, -- Support_Aggregates
+ SAP, -- Support_Atomic_Primitives
SCA, -- Support_Composite_Assign
SCC, -- Support_Composite_Compare
SCD, -- Stack_Check_Default
@@ -93,6 +94,7 @@ package body Targparm is
PAS_Str : aliased constant Source_Buffer := "Preallocated_Stacks";
RTX_Str : aliased constant Source_Buffer := "RTX_RTSS_Kernel_Module";
SAG_Str : aliased constant Source_Buffer := "Support_Aggregates";
+ SAP_Str : aliased constant Source_Buffer := "Support_Atomic_Primitives";
SCA_Str : aliased constant Source_Buffer := "Support_Composite_Assign";
SCC_Str : aliased constant Source_Buffer := "Support_Composite_Compare";
SCD_Str : aliased constant Source_Buffer := "Stack_Check_Default";
@@ -129,6 +131,7 @@ package body Targparm is
PAS_Str'Access,
RTX_Str'Access,
SAG_Str'Access,
+ SAP_Str'Access,
SCA_Str'Access,
SCC_Str'Access,
SCD_Str'Access,
@@ -586,6 +589,7 @@ package body Targparm is
when PAS => Preallocated_Stacks_On_Target := Result;
when RTX => RTX_RTSS_Kernel_Module_On_Target := Result;
when SAG => Support_Aggregates_On_Target := Result;
+ when SAP => Support_Atomic_Primitives_On_Target := Result;
when SCA => Support_Composite_Assign_On_Target := Result;
when SCC => Support_Composite_Compare_On_Target := Result;
when SCD => Stack_Check_Default_On_Target := Result;
diff --git a/gcc/ada/targparm.ads b/gcc/ada/targparm.ads
index be1c9af..e3210c9 100644
--- a/gcc/ada/targparm.ads
+++ b/gcc/ada/targparm.ads
@@ -408,6 +408,14 @@ package Targparm is
-- are available. If any of these routines is not available, then
-- this flag is False, and the use of aggregates is not permitted.
+ Support_Atomic_Primitives_On_Target : Boolean := False;
+ -- If this flag is True, then the back-end support GCC built-in atomic
+ -- operations for memory model such as atomic load or atomic compare
+ -- exchange (see the GCC manual for more information). If the flag is
+ -- False, then the back-end doesn't provide this support. Note this flag is
+ -- set to True only if the target supports all atomic primitives up to 64
+ -- bits. ??? To be modified.
+
Support_Composite_Assign_On_Target : Boolean := True;
-- The assignment of composite objects other than small records and
-- arrays whose size is 64-bits or less and is set by an explicit