diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index db6a4a4..469177c 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -15692,18 +15692,17 @@
    ------------------------------
 
    procedure Resolve_Aspect_Aggregate
-    (Typ :  Entity_Id;
+    (Typ  : Entity_Id;
      Expr : Node_Id)
    is
+      function Valid_Empty          (E : Entity_Id) return Boolean;
+      function Valid_Add_Named      (E : Entity_Id) return Boolean;
+      function Valid_Add_Unnamed    (E : Entity_Id) return Boolean;
+      function Valid_New_Indexed    (E : Entity_Id) return Boolean;
+      function Valid_Assign_Indexed (E : Entity_Id) return Boolean;
       --  Predicates that establish the legality of each possible operation in
       --  an Aggregate aspect.
 
-      function Valid_Empty             (E : Entity_Id) return Boolean;
-      function Valid_Add_Named         (E : Entity_Id) return Boolean;
-      function Valid_Add_Unnamed       (E : Entity_Id) return Boolean;
-      function Valid_New_Indexed       (E : Entity_Id) return Boolean;
-      function Valid_Assign_Indexed    (E : Entity_Id) return Boolean;
-
       generic
         with function Pred (Id : Node_Id) return Boolean;
       procedure Resolve_Operation (Subp_Id : Node_Id);
@@ -15726,7 +15725,7 @@
       end Valid_Assign_Indexed;
 
       -----------------
-      -- Valid_Emoty --
+      -- Valid_Empty --
       -----------------
 
       function Valid_Empty (E :  Entity_Id) return Boolean is
@@ -15751,7 +15750,7 @@
       -- Valid_Add_Named --
       ---------------------
 
-      function Valid_Add_Named  (E : Entity_Id) return Boolean is
+      function Valid_Add_Named (E : Entity_Id) return Boolean is
          F2, F3 : Entity_Id;
       begin
          if Ekind (E) = E_Procedure
@@ -15850,6 +15849,9 @@
       procedure Resolve_Assign_Indexed
                                 is new Resolve_Operation
                                                       (Valid_Assign_Indexed);
+
+   --  Start of processing for Resolve_Aspect_Aggregate
+
    begin
       Assoc := First (Component_Associations (Expr));
 
