From 872fc7b53d4b2540b50c905fcfca78dcd9bf2ccb Mon Sep 17 00:00:00 2001 From: Gary Dismukes Date: Thu, 12 Jan 2017 13:59:45 +0000 Subject: sem_prag.adb: Minor reformatting. 2017-01-12 Gary Dismukes * sem_prag.adb: Minor reformatting. * sem_util.adb (Unique_Entity): fix result for bodies of entry families. From-SVN: r244363 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/sem_prag.adb | 4 ++-- gcc/ada/sem_util.adb | 15 +++++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) (limited to 'gcc') diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index a7d230b..321b2e6 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2017-01-12 Gary Dismukes + + * sem_prag.adb: Minor reformatting. + * sem_util.adb (Unique_Entity): fix result for + bodies of entry families. + 2017-01-12 Justin Squirek * sem_prag.adb (Analyze_Pragma): Add appropriate calls to diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 58dd3e8..6bf680f 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -3296,7 +3296,7 @@ package body Sem_Prag is elsif Ekind (Item_Id) = E_Constant then Error_Msg_Name_1 := Chars (Encap_Id); SPARK_Msg_NE - (Fix_Msg (Encap_Typ, "consant & cannot act as constituent of " + (Fix_Msg (Encap_Typ, "constant & cannot act as constituent of " & "single protected type %"), Indic, Item_Id); -- The constituent is a package instantiation @@ -11831,7 +11831,7 @@ package body Sem_Prag is procedure Resolve_Suppressible (Policy : Node_Id); -- Converts the assertion policy 'Suppressible' to either Check or - -- ignore based on whether checks are suppressed via -gnatp or ??? + -- Ignore based on whether checks are suppressed via -gnatp or ??? -------------------------- -- Resolve_Suppressible -- diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index b1f80ae..a4e733a 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -20658,14 +20658,25 @@ package body Sem_Util is when Entry_Kind => if Nkind (Parent (E)) = N_Entry_Body then declare + Prot_Type : Entity_Id; Prot_Item : Entity_Id; begin + if Ekind (E) = E_Entry then + Prot_Type := Scope (E); + else + -- Bodies of entry families are nested within an extra + -- scope that contains an entry index declaration. + Prot_Type := Scope (Scope (E)); + end if; + + pragma Assert (Ekind (Prot_Type) = E_Protected_Type); + -- Traverse the entity list of the protected type and locate -- an entry declaration which matches the entry body. - Prot_Item := First_Entity (Scope (E)); + Prot_Item := First_Entity (Prot_Type); while Present (Prot_Item) loop - if Ekind (Prot_Item) = E_Entry + if Ekind (Prot_Item) in Entry_Kind and then Corresponding_Body (Parent (Prot_Item)) = E then U := Prot_Item; -- cgit v1.1