summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch9.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-07-18 11:02:42 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-07-18 11:02:42 +0000
commit0adbccedb7aa45321ef1d4f870278fc0cba6aefb (patch)
tree03c3c732e2769e977e4aa9e687237e1734f097e8 /gcc/ada/sem_ch9.adb
parentd7740b707e445ee8bdf6158854a050d62258a5da (diff)
downloadgcc-0adbccedb7aa45321ef1d4f870278fc0cba6aefb.tar.gz
2014-07-18 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb Last_Aggregate_Assignment is now Node 30. (Last_Aggregate_Assignment): Include constants in the assertion. Update the underlying node. (Set_Last_Aggregate_Assignment): Include constants in the assertion. Update the underlying node. (Write_Field11_Name): Remove the entry for Last_Aggregate_Assignment. (Write_Field30_Name): Add an entry for Last_Aggregate_Assignment. * einfo.ads Update the node designation and usage of attribute Last_Aggregate_Assignment. * exp_aggr.adb (Expand_Array_Aggregate): Store the last assignment statement used to initialize a controlled object. (Late_Expansion): Store the last assignment statement used to initialize a controlled record or an array of controlled objects. * exp_ch3.adb (Expand_N_Object_Declaration): Default initialization of objects is now performed in a separate routine. (Default_Initialize_Object): New routine. * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Add formal parameter Obj_Id. Update the comment on usage. (Find_Last_Init): Remove formal parameter Typ. Update comment on usage. Reimplement the logic. (Find_Last_Init_In_Block): New routine. (Is_Init_Call): Add formal parameter Init_Typ. Update the comment on usage. Account for the type init proc when trying to determine whether a statement is an initialization call. (Make_Adjust_Call): Rename formal parameter For_Parent to Skip_Self. Update all occurrences of For_Parent. Account for non-tagged types. Update the call to Make_Call. (Make_Call): Rename formal parameter For_Parent to Skip_Self. Update comment on usage. Update all occurrences of For_Parent. (Make_Final_Call): Rename formal parameter For_Parent to Skip_Self. Update all occurrences of For_Parent. Account for non-tagged types. Update the call to Make_Call. (Process_Object_Declaration): Most variables and constants are now local to the routine. * exp_ch7.ads (Make_Adjust_Call): Rename formal parameter For_Parent to Skip_Self. Update the comment on usage. (Make_Final_Call): Rename formal parameter For_Parent to Skip_Self. Update the comment on usage. 2014-07-18 Ed Schonberg <schonberg@adacore.com> * sem_ch9.adb (Analyze_Requeue): The entry being referenced can be a procedure that is implemented by entry, and have a formal that is a synchronized interface. It does not have to be declared as a protected operation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212814 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_ch9.adb')
-rw-r--r--gcc/ada/sem_ch9.adb5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/ada/sem_ch9.adb b/gcc/ada/sem_ch9.adb
index 9dcd7de94aa..fb479561ed4 100644
--- a/gcc/ada/sem_ch9.adb
+++ b/gcc/ada/sem_ch9.adb
@@ -2436,10 +2436,11 @@ package body Sem_Ch9 is
-- AI05-0225: the target protected object of a requeue must be a
-- variable. This is a binding interpretation that applies to all
- -- versions of the language.
+ -- versions of the language. Note that the subprogram does not have
+ -- to be a protected operation: it can be an primitive implemented
+ -- by entry with a formal that is a protected interface.
if Present (Target_Obj)
- and then Ekind (Scope (Entry_Id)) in Protected_Kind
and then not Is_Variable (Target_Obj)
then
Error_Msg_N