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.ads | |
parent | db664118be5bc2ea3e04784d45da659b13af1ef8 (diff) | |
download | gcc-88e7531bebc927b249c2055caddcb93c43359820.tar.gz |
[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.ads')
-rw-r--r-- | gcc/ada/aspects.ads | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ada/aspects.ads b/gcc/ada/aspects.ads index 781651feeb9..523412bd0e8 100644 --- a/gcc/ada/aspects.ads +++ b/gcc/ada/aspects.ads @@ -142,7 +142,12 @@ package Aspects is Aspect_Unreferenced, -- GNAT Aspect_Unreferenced_Objects, -- GNAT Aspect_Volatile, - Aspect_Volatile_Components); + Aspect_Volatile_Components, + + -- Aspects that have a static boolean value but don't correspond to + -- pragmas + + Aspect_Lock_Free); -- The following array indicates aspects that accept 'Class @@ -182,6 +187,7 @@ package Aspects is Aspect_Dimension_System => True, Aspect_Favor_Top_Level => True, Aspect_Inline_Always => True, + Aspect_Lock_Free => True, Aspect_Object_Size => True, Aspect_Persistent_BSS => True, Aspect_Predicate => True, @@ -352,6 +358,7 @@ package Aspects is Aspect_Interrupt_Priority => Name_Interrupt_Priority, Aspect_Invariant => Name_Invariant, Aspect_Iterator_Element => Name_Iterator_Element, + Aspect_Lock_Free => Name_Lock_Free, Aspect_Machine_Radix => Name_Machine_Radix, Aspect_No_Return => Name_No_Return, Aspect_Object_Size => Name_Object_Size, |