summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch9.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-08 10:04:58 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-08 10:04:58 +0000
commit9a479e51d22488263483664926743148ca8e7f5b (patch)
treed43dbb67c7611ef8ce3182ec8f37d1efc078dd4c /gcc/ada/sem_ch9.adb
parentd1dc14a06fb1e9f8eeb978a397a4b200bc879b36 (diff)
downloadgcc-9a479e51d22488263483664926743148ca8e7f5b.tar.gz
2010-10-08 Thomas Quinot <quinot@adacore.com>
* sem_ch4.adb: Minor reformatting. 2010-10-08 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb: Flag 232 (formerly Implemented_By_Entry) is now unused. (Implemented_By_Entry): Removed. (Set_Implemented_By_Entry): Removed. (Write_Entity_Flags): Remove the output for Implemented_By_Entry. * einfo.ads: Remove flag Implemented_By_Entry and its usage in entities. (Implemented_By_Entry): Removed along with its associated pragma Inline. (Set_Implemented_By_Entry): Removed along with its associated pragma Inline. * exp_ch9.adb: Alphabetize with and use clauses of Exp_Ch9. (Build_Dispatching_Call_Equivalent): New routine. (Build_Dispatching_Requeue): New routine. (Build_Dispatching_Requeue_To_Any): New routine. (Build_Normal_Requeue): New routine. (Build_Skip_Statement): New routine. (Expand_N_Requeue_Statement): Rewritten. The logic has been split into several subroutines. * par-prag.adb: Replace Pragma_Implemented_By_Entry by Pragma_Implemented. * sem_ch3.adb (Check_Abstract_Overriding): Perform checks concerning pragma Implemented. (Check_Pragma_Implemented): New routines. (Inherit_Pragma_Implemented): New routine. * sem_ch9.adb (Analyze_Requeue): Update the predicate which detects a dispatching requeue. * sem_prag.adb: Update array Sig_Flags by removing Implemented_By_Entry and adding Implemented. (Ada_2012_Pragma): New routine. (Analyze_Pragma, case Implemented): Perform all necessary checks concerning pragma Implemented and register the pragma as a representation item with the procedure_LOCAL_NAME. (Analyze_Pragma, case Implemented_By_Entry): Removed. * sem_util.adb (Implementation_Kind): New routine. * sem_util.ads (Implementation_Kind): New routine. * snames.ads-tmpl: Remove Name_Implemented_By_Entry and add Name_Implemented. Remove pragma name Pragma_Implemented_By_Entry and add Pragma_Implemented. Add special names By_Any, By_Entry and By_Protected_Procedure. 2010-10-08 Javier Miranda <miranda@adacore.com> * exp_ch3.adb (Expand_Freeeze_Record_Type): Code cleanup: remove local variable Has_Static_DT by invocation of function Building_Static_DT. 2010-10-08 Vincent Celier <celier@adacore.com> * g-dirope.adb (Remove_Dir): Do not change the current directory when doing a recursive remove of a subdirectory. 2010-10-08 Javier Miranda <miranda@adacore.com> * exp_ch6.ad (Freeze_Subprogram): Factorize code. * exp_disp.adb (Make_Secondary_DT): Factorize code. (Make_DT): Factorize code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165154 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_ch9.adb')
-rw-r--r--gcc/ada/sem_ch9.adb15
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/ada/sem_ch9.adb b/gcc/ada/sem_ch9.adb
index 792a9dad4c5..136dfb353b4 100644
--- a/gcc/ada/sem_ch9.adb
+++ b/gcc/ada/sem_ch9.adb
@@ -1423,18 +1423,17 @@ package body Sem_Ch9 is
Entry_Id := Entity (Entry_Name);
end if;
- -- Ada 2005 (AI05-0030): Potential dispatching requeue statement. The
+ -- Ada 2012 (AI05-0030): Potential dispatching requeue statement. The
-- target type must be a concurrent interface class-wide type and the
- -- entry name must be a procedure, flagged by pragma Implemented_By_
- -- Entry.
+ -- target must be a procedure, flagged by pragma Implemented.
Is_Disp_Req :=
- Ada_Version >= Ada_05
+ Ada_Version >= Ada_2012
and then Present (Target_Obj)
and then Is_Class_Wide_Type (Etype (Target_Obj))
and then Is_Concurrent_Interface (Etype (Target_Obj))
and then Ekind (Entry_Id) = E_Procedure
- and then Implemented_By_Entry (Entry_Id);
+ and then Has_Rep_Pragma (Entry_Id, Name_Implemented);
-- Resolve entry, and check that it is subtype conformant with the
-- enclosing construct if this construct has formals (RM 9.5.4(5)).
@@ -1462,11 +1461,13 @@ package body Sem_Ch9 is
return;
end if;
- -- Ada 2005 (AI05-0030): Perform type conformance after skipping
+ -- Ada 2012 (AI05-0030): Perform type conformance after skipping
-- the first parameter of Entry_Id since it is the interface
-- controlling formal.
- if Is_Disp_Req then
+ if Ada_Version >= Ada_2012
+ and then Is_Disp_Req
+ then
declare
Enclosing_Formal : Entity_Id;
Target_Formal : Entity_Id;