]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] Disable lock free protected implementation if target lacks support
authorSteve Baird <baird@adacore.com>
Mon, 22 Aug 2022 22:25:28 +0000 (15:25 -0700)
committerMarc Poulhiès <poulhies@adacore.com>
Tue, 6 Sep 2022 07:14:23 +0000 (09:14 +0200)
Do not select a lock free implementation if Targparm.Support_Atomic_Primitives
is False (which indicates that the target cannot support it).

gcc/ada/

* sem_ch9.adb
(Allows_Lock_Free_Implementation): Return False if
Support_Atomic_Primitives is False.

gcc/ada/sem_ch9.adb

index 7f4f65e93a3400797d956be724fd23f3126a7181..ccb3dbf9226312b7724955c84dce1418353599cf 100644 (file)
@@ -64,6 +64,7 @@ with Sinfo;          use Sinfo;
 with Sinfo.Nodes;    use Sinfo.Nodes;
 with Sinfo.Utils;    use Sinfo.Utils;
 with Style;
+with Targparm;       use Targparm;
 with Tbuild;         use Tbuild;
 with Uintp;          use Uintp;
 
@@ -649,6 +650,10 @@ package body Sem_Ch9 is
             --  Start of processing for Satisfies_Lock_Free_Requirements
 
             begin
+               if not Support_Atomic_Primitives_On_Target then
+                  return False;
+               end if;
+
                --  Get the number of errors detected by the compiler so far
 
                if Lock_Free_Given then