From: Arnaud Charlet Date: Wed, 12 May 2021 09:28:29 +0000 (-0400) Subject: [Ada] Code cleanups in System.Atomic_Counters X-Git-Tag: basepoints/gcc-13~6191 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=347d939028d648d55e72738c7500743ddcc70147;p=thirdparty%2Fgcc.git [Ada] Code cleanups in System.Atomic_Counters gcc/ada/ * libgnat/s-atocou.ads, libgnat/s-atocou__builtin.adb: Code cleanups. --- diff --git a/gcc/ada/libgnat/s-atocou.ads b/gcc/ada/libgnat/s-atocou.ads index a75173acaa10..9488b6dd7318 100644 --- a/gcc/ada/libgnat/s-atocou.ads +++ b/gcc/ada/libgnat/s-atocou.ads @@ -101,7 +101,6 @@ private type Atomic_Counter is record Value : aliased Atomic_Unsigned := 1; - pragma Atomic (Value); end record; end System.Atomic_Counters; diff --git a/gcc/ada/libgnat/s-atocou__builtin.adb b/gcc/ada/libgnat/s-atocou__builtin.adb index 2ca8b9ec6e9e..d87f9ad74943 100644 --- a/gcc/ada/libgnat/s-atocou__builtin.adb +++ b/gcc/ada/libgnat/s-atocou__builtin.adb @@ -51,24 +51,19 @@ package body System.Atomic_Counters is procedure Decrement (Item : aliased in out Atomic_Unsigned) is begin - if Sync_Sub_And_Fetch (Item'Unrestricted_Access, 1) = 0 then + if Sync_Sub_And_Fetch (Item'Unchecked_Access, 1) = 0 then null; end if; end Decrement; function Decrement (Item : aliased in out Atomic_Unsigned) return Boolean is begin - return Sync_Sub_And_Fetch (Item'Unrestricted_Access, 1) = 0; + return Sync_Sub_And_Fetch (Item'Unchecked_Access, 1) = 0; end Decrement; function Decrement (Item : in out Atomic_Counter) return Boolean is begin - -- Note: the use of Unrestricted_Access here is required because we - -- are obtaining an access-to-volatile pointer to a non-volatile object. - -- This is not allowed for [Unchecked_]Access, but is safe in this case - -- because we know that no aliases are being created. - - return Sync_Sub_And_Fetch (Item.Value'Unrestricted_Access, 1) = 0; + return Sync_Sub_And_Fetch (Item.Value'Unchecked_Access, 1) = 0; end Decrement; --------------- @@ -77,17 +72,12 @@ package body System.Atomic_Counters is procedure Increment (Item : aliased in out Atomic_Unsigned) is begin - Sync_Add_And_Fetch (Item'Unrestricted_Access, 1); + Sync_Add_And_Fetch (Item'Unchecked_Access, 1); end Increment; procedure Increment (Item : in out Atomic_Counter) is begin - -- Note: the use of Unrestricted_Access here is required because we are - -- obtaining an access-to-volatile pointer to a non-volatile object. - -- This is not allowed for [Unchecked_]Access, but is safe in this case - -- because we know that no aliases are being created. - - Sync_Add_And_Fetch (Item.Value'Unrestricted_Access, 1); + Sync_Add_And_Fetch (Item.Value'Unchecked_Access, 1); end Increment; ----------------