sem_prag.adb: Minor reformatting.
authorGary Dismukes <dismukes@adacore.com>
Thu, 12 Jan 2017 13:59:45 +0000 (13:59 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 12 Jan 2017 13:59:45 +0000 (14:59 +0100)
2017-01-12  Gary Dismukes  <dismukes@adacore.com>

* sem_prag.adb: Minor reformatting.
* sem_util.adb (Unique_Entity): fix result for
bodies of entry families.

From-SVN: r244363

gcc/ada/ChangeLog
gcc/ada/sem_prag.adb
gcc/ada/sem_util.adb

index a7d230b..321b2e6 100644 (file)
@@ -1,3 +1,9 @@
+2017-01-12  Gary Dismukes  <dismukes@adacore.com>
+
+       * sem_prag.adb: Minor reformatting.
+       * sem_util.adb (Unique_Entity): fix result for
+       bodies of entry families.
+
 2017-01-12  Justin Squirek  <squirek@adacore.com>
 
        * sem_prag.adb (Analyze_Pragma): Add appropriate calls to
index 58dd3e8..6bf680f 100644 (file)
@@ -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 --
index b1f80ae..a4e733a 100644 (file)
@@ -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;