aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Hainque <hainque@adacore.com>2018-05-31 10:46:58 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-05-31 10:46:58 +0000
commitc9f357688263239dee41cef4762f0ad78c1bb442 (patch)
treef46cf7026acbf95290b94b8b0054d1954f26f7b7
parent1b6f8e9778b58e190f40a1137eaba618c529110f (diff)
downloadgcc-c9f357688263239dee41cef4762f0ad78c1bb442.zip
gcc-c9f357688263239dee41cef4762f0ad78c1bb442.tar.gz
gcc-c9f357688263239dee41cef4762f0ad78c1bb442.tar.bz2
[Ada] Update comment on __atomic_compare_exchange in s-atomic_primitives
Remove mention of unavailability, long obsolete, and reword suggestion of use to indicate that we might want to switch to an internal interface using them. The current wording suggests just that we should bind the current Sync_Compare_And_Swap Ada subprograms to __atomic_compare builtins instead of __sync_compare, which would be highly confusing. 2018-05-31 Olivier Hainque <hainque@adacore.com> gcc/ada/ * libgnat/s-atopri.ads: Update comment on __atomic_compare_exchange builtins. From-SVN: r261008
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/libgnat/s-atopri.ads26
2 files changed, 19 insertions, 12 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 446d652..6150102 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2018-05-31 Olivier Hainque <hainque@adacore.com>
+
+ * libgnat/s-atopri.ads: Update comment on __atomic_compare_exchange
+ builtins.
+
2018-05-31 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (Call_to_gnu): If this is a function call and
diff --git a/gcc/ada/libgnat/s-atopri.ads b/gcc/ada/libgnat/s-atopri.ads
index d249ec2..5cb1546 100644
--- a/gcc/ada/libgnat/s-atopri.ads
+++ b/gcc/ada/libgnat/s-atopri.ads
@@ -92,18 +92,6 @@ package System.Atomic_Primitives is
Sync_Compare_And_Swap_8,
"__sync_val_compare_and_swap_1");
- -- ??? Should use __atomic_compare_exchange_1 (doesn't work yet):
- -- function Sync_Compare_And_Swap_8
- -- (Ptr : Address;
- -- Expected : Address;
- -- Desired : uint8;
- -- Weak : Boolean := False;
- -- Success_Model : Mem_Model := Seq_Cst;
- -- Failure_Model : Mem_Model := Seq_Cst) return Boolean;
- -- pragma Import (Intrinsic,
- -- Sync_Compare_And_Swap_8,
- -- "__atomic_compare_exchange_1");
-
function Sync_Compare_And_Swap_16
(Ptr : Address;
Expected : uint16;
@@ -128,6 +116,20 @@ package System.Atomic_Primitives is
Sync_Compare_And_Swap_64,
"__sync_val_compare_and_swap_8");
+ -- ??? We might want to switch to the __atomic series of builtins for
+ -- compare-and-swap operations at some point.
+
+ -- function Atomic_Compare_Exchange_8
+ -- (Ptr : Address;
+ -- Expected : Address;
+ -- Desired : uint8;
+ -- Weak : Boolean := False;
+ -- Success_Model : Mem_Model := Seq_Cst;
+ -- Failure_Model : Mem_Model := Seq_Cst) return Boolean;
+ -- pragma Import (Intrinsic,
+ -- Atomic_Compare_Exchange_8,
+ -- "__atomic_compare_exchange_1");
+
--------------------------
-- Lock-free operations --
--------------------------