re PR ada/54125 (s-atopri.adb:40:10: "Support_Atomic_Primitives" is undefined broke...
authorVincent Pucci <pucci@adacore.com>
Mon, 6 Aug 2012 08:12:10 +0000 (10:12 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 6 Aug 2012 08:12:10 +0000 (10:12 +0200)
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.

From-SVN: r190163

28 files changed:
gcc/ada/exp_attr.adb
gcc/ada/s-atopri.adb
gcc/ada/sem_attr.adb
gcc/ada/sem_ch9.adb
gcc/ada/sem_util.adb
gcc/ada/sem_util.ads
gcc/ada/snames.ads-tmpl
gcc/ada/system-aix.ads
gcc/ada/system-aix64.ads
gcc/ada/system-darwin-ppc.ads
gcc/ada/system-hpux.ads
gcc/ada/system-linux-alpha.ads
gcc/ada/system-linux-hppa.ads
gcc/ada/system-linux-ppc.ads
gcc/ada/system-linux-s390.ads
gcc/ada/system-linux-s390x.ads
gcc/ada/system-linux-sh4.ads
gcc/ada/system-linux-sparc.ads
gcc/ada/system-lynxos-ppc.ads
gcc/ada/system-mingw.ads
gcc/ada/system-solaris-sparc.ads
gcc/ada/system-solaris-sparcv9.ads
gcc/ada/system-vms_64.ads
gcc/ada/system-vxworks-arm.ads
gcc/ada/system-vxworks-m68k.ads
gcc/ada/system-vxworks-mips.ads
gcc/ada/system-vxworks-ppc.ads
gcc/ada/system-vxworks-sparcv9.ads

index ae7def7e3bd2781e0de44c1341a0bf990dd5d912..6516d3bc1995c72c51e5b7530f1044f5f3ff62cf 100644 (file)
@@ -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             |
index 50e7346f80ee28b06b31731f5236afdebb9457ee..145cbb6c9dbeb6c7eef5caa27d21056dc3d8d0ed 100644 (file)
@@ -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;
index 35adaaf6a613d04c25f17d200b117ce622f135d5..b2af6ae85b84dc9a499a2a6454318650f1226d64 100644 (file)
@@ -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 --
index e033afa97dfa1bdb9602463c898bff647260c483..6ee0bceeb81eb3cde6293a3c08150fc2748e5450 100644 (file)
@@ -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
index 8675d54d35a1f77c20a4b10e7afea61e2624c5a4..9d095309f82f1363c4a49cf7dc9d5a847ff8e62b 100644 (file)
@@ -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 --
    -----------------
index 282ae3a0fb28a7e0c173d5051012efafb940464f..8d1f7cfadb22f7a4cf53876d9c7575d9ef164301 100644 (file)
@@ -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
 
index 27ee72e2c89017db9e961e90310ffa4af9d7d713..d0c20153b0a5e4ed8aa689dd2e65e0816257dd9f 100644 (file)
@@ -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,
index 2dfe3988fcc6bf7eaf9ac1fc073fb6f99b24b857..19d65bdfcddb17319d1b6bd7cd5853cf1eca20ef 100644 (file)
@@ -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;
index a06b1d2123eb3d405a2a329b3ae72e5fb77663af..568c24f2569730666159f3488787bfdfa05b412e 100644 (file)
@@ -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;
index 45668c998081cac1d784b1e8eb13eb0e4511238a..d45ab4ee846c08c52f7a9bcb72fcb56285c073cd 100644 (file)
@@ -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;
index 899a96c94c7b81445af15a21874a0b3a874aea1a..47793e55f670f79510065ef9cc8979c4d31f2856 100644 (file)
@@ -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;
index 9a1eb21df0173258b2704efccea91c02bc55dbdb..5d845020446f9b1b32a4ad84d5211e6be83b8650 100644 (file)
@@ -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;
index a23c2ead89e63b31ed77ca05307bf876d9023379..5ec908708bb8772ecb051af145a5772248b6a3e8 100644 (file)
@@ -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;
index b967b147b4614d8a7cb4d340f74b4118000fea9c..fac85a52fe5896c13a89901638d7c2bd55fb36b3 100644 (file)
@@ -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;
index 8a5920534c2935bab2c005a91e3dce85870322b5..28107a0b46422583c26c18ee5a6550a4890050f4 100644 (file)
@@ -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;
index 028d055fa21264832fbcc0b55861688790c2d48b..135b5a3b174e9e195effe51b189d120e65064892 100644 (file)
@@ -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;
index 67f290c5042e94947c2b5bb7d9e18a51e8148a60..8ee07e374db60dffa797a73d7685c9762790b589 100644 (file)
@@ -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;
index 94155cfe43b96acb81f6137f00c73ba516b9d060..ff93463cf8668d35d810e2c2fa6511a068c44428 100644 (file)
@@ -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;
index 7419ecef9880245508c674cc7acb4b50f86171b2..3f701b2dcf9776fea365557c2f266ff615a3fc28 100644 (file)
@@ -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;
index 7787984f2aa7235225924b9f3ed26df94ad1660f..dfb485208cf87877fa3ac321dae37434ff676ce3 100644 (file)
@@ -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;
index 1b5d4c0d2168a7f4e7401f60bcc529bd0d972a2b..ac695c543fe32d217d84a0d385d00d01300a5503 100644 (file)
@@ -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;
index 5d1015437d72ec4f3bcbf0a6e133a5bbfe70c76f..6c059244e97eacbe0682baa960dcb47b8c27637c 100644 (file)
@@ -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;
index 9a55d3598a7a64ea5fc38702cd6fd89bb045b5a1..946f0341d1cbd553aed0b3d7d51f9b9041734f2b 100644 (file)
@@ -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;
index 019458db20d25542338a728095cd25952e6b14c5..ae8ddd510655251708f0fde111718e0d5ded1049 100644 (file)
@@ -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;
index 99b7cd3ea8b0644ab11e839acb6bb7062a3f6d04..d747792a56ef5b307bf98ed9896856387a180985 100644 (file)
@@ -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;
index 1183ed7abdda09801d27d87d7def373cb20528c2..47b46fa2f7d459fa207dd942385775d9beb8eb63 100644 (file)
@@ -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;
index d1b75d00cf6e4512a1f4d4d4e6a7deb69a14703d..62d604f63192f2c1dbc77d0697a7f3edb822d8fb 100644 (file)
@@ -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;
index edf4af4ccad86d882513964e8f7cd24e1f1b743f..96601676a24ebaa3187f759ec95b5f156a48580c 100644 (file)
@@ -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;