diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb index ae7def7e3bd..6516d3bc199 100644 --- a/gcc/ada/exp_attr.adb +++ b/gcc/ada/exp_attr.adb @@ -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 | diff --git a/gcc/ada/s-atopri.adb b/gcc/ada/s-atopri.adb index 50e7346f80e..145cbb6c9db 100644 --- a/gcc/ada/s-atopri.adb +++ b/gcc/ada/s-atopri.adb @@ -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; diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index 35adaaf6a61..b2af6ae85b8 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -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 -- diff --git a/gcc/ada/sem_ch9.adb b/gcc/ada/sem_ch9.adb index e033afa97df..6ee0bceeb81 100644 --- a/gcc/ada/sem_ch9.adb +++ b/gcc/ada/sem_ch9.adb @@ -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 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; - -- 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??? + 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 diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 8675d54d35a..9d095309f82 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -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 -- ----------------- diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads index 282ae3a0fb2..8d1f7cfadb2 100644 --- a/gcc/ada/sem_util.ads +++ b/gcc/ada/sem_util.ads @@ -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 diff --git a/gcc/ada/snames.ads-tmpl b/gcc/ada/snames.ads-tmpl index 27ee72e2c89..d0c20153b0a 100644 --- a/gcc/ada/snames.ads-tmpl +++ b/gcc/ada/snames.ads-tmpl @@ -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, diff --git a/gcc/ada/system-aix.ads b/gcc/ada/system-aix.ads index 2dfe3988fcc..19d65bdfcdd 100644 --- a/gcc/ada/system-aix.ads +++ b/gcc/ada/system-aix.ads @@ -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; diff --git a/gcc/ada/system-aix64.ads b/gcc/ada/system-aix64.ads index a06b1d2123e..568c24f2569 100644 --- a/gcc/ada/system-aix64.ads +++ b/gcc/ada/system-aix64.ads @@ -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; diff --git a/gcc/ada/system-darwin-ppc.ads b/gcc/ada/system-darwin-ppc.ads index 45668c99808..d45ab4ee846 100644 --- a/gcc/ada/system-darwin-ppc.ads +++ b/gcc/ada/system-darwin-ppc.ads @@ -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; diff --git a/gcc/ada/system-hpux.ads b/gcc/ada/system-hpux.ads index 899a96c94c7..47793e55f67 100644 --- a/gcc/ada/system-hpux.ads +++ b/gcc/ada/system-hpux.ads @@ -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; diff --git a/gcc/ada/system-linux-alpha.ads b/gcc/ada/system-linux-alpha.ads index 9a1eb21df01..5d845020446 100644 --- a/gcc/ada/system-linux-alpha.ads +++ b/gcc/ada/system-linux-alpha.ads @@ -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; diff --git a/gcc/ada/system-linux-hppa.ads b/gcc/ada/system-linux-hppa.ads index a23c2ead89e..5ec908708bb 100644 --- a/gcc/ada/system-linux-hppa.ads +++ b/gcc/ada/system-linux-hppa.ads @@ -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; diff --git a/gcc/ada/system-linux-ppc.ads b/gcc/ada/system-linux-ppc.ads index b967b147b46..fac85a52fe5 100644 --- a/gcc/ada/system-linux-ppc.ads +++ b/gcc/ada/system-linux-ppc.ads @@ -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; diff --git a/gcc/ada/system-linux-s390.ads b/gcc/ada/system-linux-s390.ads index 8a5920534c2..28107a0b464 100644 --- a/gcc/ada/system-linux-s390.ads +++ b/gcc/ada/system-linux-s390.ads @@ -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; diff --git a/gcc/ada/system-linux-s390x.ads b/gcc/ada/system-linux-s390x.ads index 028d055fa21..135b5a3b174 100644 --- a/gcc/ada/system-linux-s390x.ads +++ b/gcc/ada/system-linux-s390x.ads @@ -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; diff --git a/gcc/ada/system-linux-sh4.ads b/gcc/ada/system-linux-sh4.ads index 67f290c5042..8ee07e374db 100644 --- a/gcc/ada/system-linux-sh4.ads +++ b/gcc/ada/system-linux-sh4.ads @@ -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; diff --git a/gcc/ada/system-linux-sparc.ads b/gcc/ada/system-linux-sparc.ads index 94155cfe43b..ff93463cf86 100644 --- a/gcc/ada/system-linux-sparc.ads +++ b/gcc/ada/system-linux-sparc.ads @@ -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; diff --git a/gcc/ada/system-lynxos-ppc.ads b/gcc/ada/system-lynxos-ppc.ads index 7419ecef988..3f701b2dcf9 100644 --- a/gcc/ada/system-lynxos-ppc.ads +++ b/gcc/ada/system-lynxos-ppc.ads @@ -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; diff --git a/gcc/ada/system-mingw.ads b/gcc/ada/system-mingw.ads index 7787984f2aa..dfb485208cf 100644 --- a/gcc/ada/system-mingw.ads +++ b/gcc/ada/system-mingw.ads @@ -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; diff --git a/gcc/ada/system-solaris-sparc.ads b/gcc/ada/system-solaris-sparc.ads index 1b5d4c0d216..ac695c543fe 100644 --- a/gcc/ada/system-solaris-sparc.ads +++ b/gcc/ada/system-solaris-sparc.ads @@ -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; diff --git a/gcc/ada/system-solaris-sparcv9.ads b/gcc/ada/system-solaris-sparcv9.ads index 5d1015437d7..6c059244e97 100644 --- a/gcc/ada/system-solaris-sparcv9.ads +++ b/gcc/ada/system-solaris-sparcv9.ads @@ -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; diff --git a/gcc/ada/system-vms_64.ads b/gcc/ada/system-vms_64.ads index 9a55d3598a7..946f0341d1c 100644 --- a/gcc/ada/system-vms_64.ads +++ b/gcc/ada/system-vms_64.ads @@ -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; diff --git a/gcc/ada/system-vxworks-arm.ads b/gcc/ada/system-vxworks-arm.ads index 019458db20d..ae8ddd51065 100644 --- a/gcc/ada/system-vxworks-arm.ads +++ b/gcc/ada/system-vxworks-arm.ads @@ -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; diff --git a/gcc/ada/system-vxworks-m68k.ads b/gcc/ada/system-vxworks-m68k.ads index 99b7cd3ea8b..d747792a56e 100644 --- a/gcc/ada/system-vxworks-m68k.ads +++ b/gcc/ada/system-vxworks-m68k.ads @@ -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; diff --git a/gcc/ada/system-vxworks-mips.ads b/gcc/ada/system-vxworks-mips.ads index 1183ed7abdd..47b46fa2f7d 100644 --- a/gcc/ada/system-vxworks-mips.ads +++ b/gcc/ada/system-vxworks-mips.ads @@ -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; diff --git a/gcc/ada/system-vxworks-ppc.ads b/gcc/ada/system-vxworks-ppc.ads index d1b75d00cf6..62d604f6319 100644 --- a/gcc/ada/system-vxworks-ppc.ads +++ b/gcc/ada/system-vxworks-ppc.ads @@ -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; diff --git a/gcc/ada/system-vxworks-sparcv9.ads b/gcc/ada/system-vxworks-sparcv9.ads index edf4af4ccad..96601676a24 100644 --- a/gcc/ada/system-vxworks-sparcv9.ads +++ b/gcc/ada/system-vxworks-sparcv9.ads @@ -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;