aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/aspects.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2012-05-15 11:29:46 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2012-05-15 11:29:46 +0200
commit88e7531bebc927b249c2055caddcb93c43359820 (patch)
tree4a1bddd2f4929ab05a86932cff22860124f1fb69 /gcc/ada/aspects.adb
parentdb664118be5bc2ea3e04784d45da659b13af1ef8 (diff)
downloadgcc-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.adb31
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,