diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-05-15 11:29:46 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-05-15 11:29:46 +0200 |
commit | 88e7531bebc927b249c2055caddcb93c43359820 (patch) | |
tree | 4a1bddd2f4929ab05a86932cff22860124f1fb69 /gcc/ada/aspects.adb | |
parent | db664118be5bc2ea3e04784d45da659b13af1ef8 (diff) | |
download | gcc-88e7531bebc927b249c2055caddcb93c43359820.zip gcc-88e7531bebc927b249c2055caddcb93c43359820.tar.gz gcc-88e7531bebc927b249c2055caddcb93c43359820.tar.bz2 |
[multiple changes]
2012-05-15 Robert Dewar <dewar@adacore.com>
* g-comlin.adb, g-comlin.ads: Minor reformatting.
2012-05-15 Vincent Pucci <pucci@adacore.com>
* aspects.adb, aspects.adb: Reordering of the Aspect_Idi list. New
aspect Aspect_Lock_Free.
* einfo.adb, einfo.ads: New flag Uses_Lock_Free (flag 188).
(Set_Uses_Lock_Free): New routine.
(Uses_Lock_Free): New routine.
* exp_ch7.adb (Is_Simple_Protected_Type): Return False for
lock-free implementation.
* exp_ch9.adb (Allows_Lock_Free_Implementation): Moved to Sem_Ch9.
(Build_Lock_Free_Unprotected_Subprogram_Body): Protected
procedure uses __sync_synchronise. Check both Object_Size
and Value_Size.
(Expand_N_Protected_Body): Lock_Free_Active
renames Lock_Free_On.
(Expand_N_Protected_Type_Declaration):
_Object field removed for lock-free implementation.
(Install_Private_Data_Declarations): Protection object removed
for lock-free implementation.
(Make_Initialize_Protection):
Protection object initialization removed for lock-free implementation.
* rtsfind.ads: RE_Atomic_Synchronize and RE_Relaxed added.
* sem_ch13.adb (Analyze_Aspect_Specifications): Aspect_Lock_Free
analysis added.
* sem_ch9.adb (Allows_Lock_Free_Implementation): New routine.
(Analyze_Protected_Body): Allows_Lock_Free_Implementation call added.
(Analyze_Protected_Type_Declaration):
Allows_Lock_Free_Implementation call added.
(Analyze_Single_Protected_Declaration): Second analysis of
aspects removed.
* s-atopri.ads: Header added.
(Atomic_Synchronize): New routine.
2012-05-15 Robert Dewar <dewar@adacore.com>
* exp_ch7.ads: Add comment.
From-SVN: r187505
Diffstat (limited to 'gcc/ada/aspects.adb')
-rw-r--r-- | gcc/ada/aspects.adb | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/gcc/ada/aspects.adb b/gcc/ada/aspects.adb index b155a08..86e7091 100644 --- a/gcc/ada/aspects.adb +++ b/gcc/ada/aspects.adb @@ -242,11 +242,13 @@ package body Aspects is Aspect_Ada_2012 => Aspect_Ada_2005, Aspect_Address => Aspect_Address, Aspect_Alignment => Aspect_Alignment, + Aspect_All_Calls_Remote => Aspect_All_Calls_Remote, Aspect_Asynchronous => Aspect_Asynchronous, Aspect_Atomic => Aspect_Atomic, Aspect_Atomic_Components => Aspect_Atomic_Components, Aspect_Attach_Handler => Aspect_Attach_Handler, Aspect_Bit_Order => Aspect_Bit_Order, + Aspect_Compiler_Unit => Aspect_Compiler_Unit, Aspect_Component_Size => Aspect_Component_Size, Aspect_Constant_Indexing => Aspect_Constant_Indexing, Aspect_Contract_Case => Aspect_Contract_Case, @@ -259,6 +261,7 @@ package body Aspects is Aspect_Discard_Names => Aspect_Discard_Names, Aspect_Dispatching_Domain => Aspect_Dispatching_Domain, Aspect_Dynamic_Predicate => Aspect_Predicate, + Aspect_Elaborate_Body => Aspect_Elaborate_Body, Aspect_External_Tag => Aspect_External_Tag, Aspect_Favor_Top_Level => Aspect_Favor_Top_Level, Aspect_Implicit_Dereference => Aspect_Implicit_Dereference, @@ -266,24 +269,12 @@ package body Aspects is Aspect_Independent_Components => Aspect_Independent_Components, Aspect_Inline => Aspect_Inline, Aspect_Inline_Always => Aspect_Inline, + Aspect_Input => Aspect_Input, Aspect_Interrupt_Handler => Aspect_Interrupt_Handler, Aspect_Interrupt_Priority => Aspect_Interrupt_Priority, - Aspect_Iterator_Element => Aspect_Iterator_Element, - Aspect_All_Calls_Remote => Aspect_All_Calls_Remote, - Aspect_Compiler_Unit => Aspect_Compiler_Unit, - Aspect_Elaborate_Body => Aspect_Elaborate_Body, - Aspect_Preelaborate => Aspect_Preelaborate, - Aspect_Preelaborate_05 => Aspect_Preelaborate_05, - Aspect_Pure => Aspect_Pure, - Aspect_Pure_05 => Aspect_Pure_05, - Aspect_Pure_12 => Aspect_Pure_12, - Aspect_Remote_Call_Interface => Aspect_Remote_Call_Interface, - Aspect_Remote_Types => Aspect_Remote_Types, - Aspect_Scalar_Storage_Order => Aspect_Scalar_Storage_Order, - Aspect_Shared_Passive => Aspect_Shared_Passive, - Aspect_Universal_Data => Aspect_Universal_Data, - Aspect_Input => Aspect_Input, Aspect_Invariant => Aspect_Invariant, + Aspect_Iterator_Element => Aspect_Iterator_Element, + Aspect_Lock_Free => Aspect_Lock_Free, Aspect_Machine_Radix => Aspect_Machine_Radix, Aspect_No_Return => Aspect_No_Return, Aspect_Object_Size => Aspect_Object_Size, @@ -295,12 +286,21 @@ package body Aspects is Aspect_Pre => Aspect_Pre, Aspect_Precondition => Aspect_Pre, Aspect_Predicate => Aspect_Predicate, + Aspect_Preelaborate => Aspect_Preelaborate, + Aspect_Preelaborate_05 => Aspect_Preelaborate_05, Aspect_Preelaborable_Initialization => Aspect_Preelaborable_Initialization, Aspect_Priority => Aspect_Priority, + Aspect_Pure => Aspect_Pure, + Aspect_Pure_05 => Aspect_Pure_05, + Aspect_Pure_12 => Aspect_Pure_12, Aspect_Pure_Function => Aspect_Pure_Function, Aspect_Remote_Access_Type => Aspect_Remote_Access_Type, + Aspect_Remote_Call_Interface => Aspect_Remote_Call_Interface, + Aspect_Remote_Types => Aspect_Remote_Types, Aspect_Read => Aspect_Read, + Aspect_Scalar_Storage_Order => Aspect_Scalar_Storage_Order, Aspect_Shared => Aspect_Atomic, + Aspect_Shared_Passive => Aspect_Shared_Passive, Aspect_Simple_Storage_Pool => Aspect_Simple_Storage_Pool, Aspect_Simple_Storage_Pool_Type => Aspect_Simple_Storage_Pool_Type, Aspect_Size => Aspect_Size, @@ -316,6 +316,7 @@ package body Aspects is Aspect_Type_Invariant => Aspect_Invariant, Aspect_Unchecked_Union => Aspect_Unchecked_Union, Aspect_Universal_Aliasing => Aspect_Universal_Aliasing, + Aspect_Universal_Data => Aspect_Universal_Data, Aspect_Unmodified => Aspect_Unmodified, Aspect_Unreferenced => Aspect_Unreferenced, Aspect_Unreferenced_Objects => Aspect_Unreferenced_Objects, |