[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Thu, 17 Jul 2014 07:27:38 +0000 (09:27 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 17 Jul 2014 07:27:38 +0000 (09:27 +0200)
2014-07-17  Gary Dismukes  <dismukes@adacore.com>

* exp_disp.adb: Minor reformatting.
* exp_disp.adb: Minor code reorganization.

2014-07-17  Thomas Quinot  <quinot@adacore.com>

* gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Do not
require an explicit SSO attribute definition clause on a composite type
just because one of its components has one.

2014-07-17  Robert Dewar  <dewar@adacore.com>

* sem_attr.adb (Analyze_Attribute, case Loop_Entry): Rewrite
attribute out of existence if the enclosing pragma is ignored.
* sem_util.adb: Minor reformatting.

2014-07-17  Ed Schonberg  <schonberg@adacore.com>

* exp_aggr.adb (Expand_Array_Aggregate): Handle properly an
array aggregate expanded into assignments when it appears as a
local declaration in an inlined body.

2014-07-17  Doug Rupp  <rupp@adacore.com>

* init.c [__ANDROID__]: Modify for ZCX.
* exp_aggr.adb: Minor reformatting
* sigtramp-armvxw.c, sigtramp-ppcvxw.c: Update comments.

2014-07-17  Robert Dewar  <dewar@adacore.com>

* a-strunb-shared.ads, a-stwiun-shared.ads, a-stzunb-shared.ads,
exp_ch7.adb, g-pehage.ads, g-socket.ads, gnat_ugn.texi, gnat_ugx.texi,
scng.adb: Remove incorrect usage "allow to" and "allows to".

2014-07-17  Robert Dewar  <dewar@adacore.com>

* exp_dist.adb: Minor reformatting.

From-SVN: r212737

19 files changed:
gcc/ada/ChangeLog
gcc/ada/a-strunb-shared.ads
gcc/ada/a-stwiun-shared.ads
gcc/ada/a-stzunb-shared.ads
gcc/ada/exp_aggr.adb
gcc/ada/exp_ch7.adb
gcc/ada/exp_disp.adb
gcc/ada/exp_dist.adb
gcc/ada/freeze.adb
gcc/ada/g-pehage.ads
gcc/ada/g-socket.ads
gcc/ada/gnat_rm.texi
gcc/ada/gnat_ugn.texi
gcc/ada/init.c
gcc/ada/scng.adb
gcc/ada/sem_attr.adb
gcc/ada/sem_util.adb
gcc/ada/sigtramp-armvxw.c
gcc/ada/sigtramp-ppcvxw.c

index 3102148..9b591d8 100644 (file)
@@ -1,3 +1,42 @@
+2014-07-17  Gary Dismukes  <dismukes@adacore.com>
+
+       * exp_disp.adb: Minor reformatting.
+       * exp_disp.adb: Minor code reorganization.
+
+2014-07-17  Thomas Quinot  <quinot@adacore.com>
+
+       * gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Do not
+       require an explicit SSO attribute definition clause on a composite type
+       just because one of its components has one.
+
+2014-07-17  Robert Dewar  <dewar@adacore.com>
+
+       * sem_attr.adb (Analyze_Attribute, case Loop_Entry): Rewrite
+       attribute out of existence if the enclosing pragma is ignored.
+       * sem_util.adb: Minor reformatting.
+
+2014-07-17  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_aggr.adb (Expand_Array_Aggregate): Handle properly an
+       array aggregate expanded into assignments when it appears as a
+       local declaration in an inlined body.
+
+2014-07-17  Doug Rupp  <rupp@adacore.com>
+
+       * init.c [__ANDROID__]: Modify for ZCX.
+       * exp_aggr.adb: Minor reformatting
+       * sigtramp-armvxw.c, sigtramp-ppcvxw.c: Update comments.
+
+2014-07-17  Robert Dewar  <dewar@adacore.com>
+
+       * a-strunb-shared.ads, a-stwiun-shared.ads, a-stzunb-shared.ads,
+       exp_ch7.adb, g-pehage.ads, g-socket.ads, gnat_ugn.texi, gnat_ugx.texi,
+       scng.adb: Remove incorrect usage "allow to" and "allows to".
+
+2014-07-17  Robert Dewar  <dewar@adacore.com>
+
+       * exp_dist.adb: Minor reformatting.
+
 2014-07-17  Bob Duff  <duff@adacore.com>
 
        * gnat_ugn.texi: Improve documentation of Unrestricted_Access.
index 3ec961f..1a00780 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2014, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -64,9 +64,9 @@
    --     preallocated memory can used later by Append/Insert operations
    --     without reallocation.
 
-   --  Reference counting uses GCC builtin atomic operations, which allows to
-   --  safely share internal data between Ada tasks. Nevertheless, this doesn't
-   --  make objects of Unbounded_String thread-safe: each instance can't be
+   --  Reference counting uses GCC builtin atomic operations, which allows safe
+   --  sharing of internal data between Ada tasks. Nevertheless, this does not
+   --  make objects of Unbounded_String thread-safe: an instance cannot be
    --  accessed by several tasks simultaneously.
 
 with Ada.Strings.Maps;
index b3b62af..20c2d42 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2014, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -471,10 +471,10 @@ private
    --     preallocated memory can used later by Append/Insert operations
    --     without reallocation.
 
-   --  Reference counting uses GCC builtin atomic operations, which allows to
-   --  safely share internal data between Ada tasks. Nevertheless, this not
-   --  make objects of Unbounded_Wide_String thread-safe, so each instance
-   --  can't be accessed by several tasks simultaneously.
+   --  Reference counting uses GCC builtin atomic operations, which allows safe
+   --  sharing of internal data between Ada tasks. Nevertheless, this does not
+   --  make objects of Unbounded_String thread-safe: an instance cannot be
+   --  accessed by several tasks simultaneously.
 
    pragma Stream_Convert (Unbounded_Wide_String, To_Unbounded, To_Wide_String);
    --  Provide stream routines without dragging in Ada.Streams
index 66c0427..3c9e016 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2014, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -485,10 +485,10 @@ private
    --     preallocated memory can used later by Append/Insert operations
    --     without reallocation.
 
-   --  Reference counting uses GCC builtin atomic operations, which allows to
-   --  safely share internal data between Ada tasks. Nevertheless, this not
-   --  make objects of Unbounded_Wide_Wide_String thread-safe, so each instance
-   --  can't be accessed by several tasks simultaneously.
+   --  Reference counting uses GCC builtin atomic operations, which allows safe
+   --  sharing of internal data between Ada tasks. Nevertheless, this does not
+   --  make objects of Unbounded_String thread-safe: an instance cannot be
+   --  accessed by several tasks simultaneously.
 
    pragma Stream_Convert
      (Unbounded_Wide_Wide_String, To_Unbounded, To_Wide_Wide_String);
index 1bc6fb6..c3d7a1f 100644 (file)
@@ -5235,7 +5235,17 @@ package body Exp_Aggr is
              Scalar_Comp => Is_Scalar_Type (Ctyp));
       end;
 
-      if Comes_From_Source (Tmp) then
+      --  If the aggregate is the expression in a declaration, the expanded
+      --  code must be inserted after it. The defining entity might not come
+      --  from source if this is part of an inlined body, but the declaration
+      --  itself will.
+
+      if Comes_From_Source (Tmp)
+        or else
+          (Nkind (Parent (N)) = N_Object_Declaration
+            and then Comes_From_Source (Parent (N))
+            and then Tmp = Defining_Entity (Parent (N)))
+      then
          declare
             Node_After : constant Node_Id := Next (Parent_Node);
 
index 08b47f6..b98362f 100644 (file)
@@ -215,7 +215,7 @@ package body Exp_Ch7 is
    --    A classwide type can always potentially have controlled components
    --    but the record controller of the corresponding actual type may not
    --    be known at compile time so the dispatch table contains a special
-   --    field that allows to compute the offset of the record controller
+   --    field that allows computation of the offset of the record controller
    --    dynamically. See s-finimp.Deep_Tag_Attach and a-tags.RC_Offset.
 
    --  Here is a simple example of the expansion of a controlled block :
index 34db312..e1032bb 100644 (file)
@@ -90,13 +90,13 @@ package body Exp_Disp is
    --  an alias of a predefined dispatching primitive (i.e. through a renaming)
 
    function New_Value (From : Node_Id) return Node_Id;
-   --  From is the original Expression. New_Value is equivalent to a call
-   --  to Duplicate_Subexpr with an explicit dereference when From is an
-   --  access parameter.
+   --  From is the original Expression. New_Value is equivalent to a call to
+   --  Duplicate_Subexpr with an explicit dereference when From is an access
+   --  parameter.
 
    function Original_View_In_Visible_Part (Typ : Entity_Id) return Boolean;
-   --  Check if the type has a private view or if the public view appears
-   --  in the visible part of a package spec.
+   --  Check if the type has a private view or if the public view appears in
+   --  the visible part of a package spec.
 
    function Prim_Op_Kind
      (Prim : Entity_Id;
@@ -131,10 +131,10 @@ package body Exp_Disp is
          return;
       end if;
 
-      --  Apply_Tag_Checks is called directly from the semantics, so we need
-      --  a check to see whether expansion is active before proceeding. In
-      --  addition, there is no need to expand the call when compiling under
-      --  restriction No_Dispatching_Calls; the semantic analyzer has
+      --  Apply_Tag_Checks is called directly from the semantics, so we
+      --  need a check to see whether expansion is active before proceeding.
+      --  In addition, there is no need to expand the call when compiling
+      --  under restriction No_Dispatching_Calls; the semantic analyzer has
       --  previously notified the violation of this restriction.
 
       if not Expander_Active
@@ -221,11 +221,10 @@ package body Exp_Disp is
             elsif Find_Controlling_Arg (Param) = Ctrl_Arg then
                null;
 
-            --  "=" is the only dispatching operation allowed to get
-            --  operands with incompatible tags (it just returns false).
-            --  We use Duplicate_Subexpr_Move_Checks instead of calling
-            --  Relocate_Node because the value will be duplicated to
-            --  check the tags.
+            --  "=" is the only dispatching operation allowed to get operands
+            --  with incompatible tags (it just returns false). We use
+            --  Duplicate_Subexpr_Move_Checks instead of calling Relocate_Node
+            --  because the value will be duplicated to check the tags.
 
             elsif Subp = Eq_Prim_Op then
                null;
@@ -251,6 +250,7 @@ package body Exp_Disp is
 
             else
                --  Generate code for tag equality check
+
                --  Perhaps should have Checks.Apply_Tag_Equality_Check???
 
                Insert_Action (Ctrl_Arg,
@@ -347,8 +347,8 @@ package body Exp_Disp is
                Build_Dispatch_Tables
                  (Declarations (Proper_Body (Unit (Library_Unit (D)))));
 
-            --  Handle full type declarations and derivations of library
-            --  level tagged types
+            --  Handle full type declarations and derivations of library level
+            --  tagged types
 
             elsif Nkind_In (D, N_Full_Type_Declaration,
                                N_Derived_Type_Definition)
@@ -497,7 +497,7 @@ package body Exp_Disp is
       Set_Can_Never_Be_Null (Anon_Type);
 
       --  Decorate the size and alignment attributes of the anonymous access
-      --  type, as required by gigi.
+      --  type, as required by the back end.
 
       Layout_Type (Anon_Type);
 
@@ -537,8 +537,7 @@ package body Exp_Disp is
          CPP_Typ  := Enclosing_CPP_Parent (Typ);
          Tag_Comp := First_Tag_Component (CPP_Typ);
 
-         --  If the number of primitives is already set in the tag component
-         --  then use it
+         --  If number of primitives already set in the tag component, use it
 
          if Present (Tag_Comp)
            and then DT_Entry_Count (Tag_Comp) /= No_Uint
@@ -693,8 +692,8 @@ package body Exp_Disp is
          return;
       end if;
 
-      --  Expand_Dispatching_Call is called directly from the semantics,
-      --  so we only proceed if the expander is active.
+      --  Expand_Dispatching_Call is called directly from the semantics, so we
+      --  only proceed if the expander is active.
 
       if not Expander_Active
 
@@ -1069,8 +1068,8 @@ package body Exp_Disp is
          Set_SCIL_Node (SCIL_Related_Node, SCIL_Node);
       end if;
 
-      --  Suppress all checks during the analysis of the expanded code
-      --  to avoid the generation of spurious warnings under ZFP run-time.
+      --  Suppress all checks during the analysis of the expanded code to avoid
+      --  the generation of spurious warnings under ZFP run-time.
 
       Analyze_And_Resolve (Call_Node, Call_Typ, Suppress => All_Checks);
    end Expand_Dispatching_Call;
@@ -1246,9 +1245,8 @@ package body Exp_Disp is
 
          Analyze (N);
 
-         --  If the target is a class-wide interface we change the type of the
-         --  data returned by IW_Convert to indicate that this is a dispatching
-         --  call.
+         --  If target is a class-wide interface, change the type of the data
+         --  returned by IW_Convert to indicate this is a dispatching call.
 
          declare
             New_Itype : Entity_Id;
@@ -1277,8 +1275,8 @@ package body Exp_Disp is
 
       if not Is_Access_Type (Etype (N)) then
 
-         --  Statically displace the pointer to the object to reference
-         --  the component containing the secondary dispatch table.
+         --  Statically displace the pointer to the object to reference the
+         --  component containing the secondary dispatch table.
 
          Rewrite (N,
            Convert_Tag_To_Interface (Class_Wide_Type (Iface_Typ),
@@ -1337,9 +1335,9 @@ package body Exp_Disp is
               Make_Simple_Return_Statement (Loc,
                 Unchecked_Convert_To (Etype (N),
                   Make_Attribute_Reference (Loc,
-                    Prefix =>
+                    Prefix         =>
                       Make_Selected_Component (Loc,
-                        Prefix =>
+                        Prefix        =>
                           Unchecked_Convert_To
                             (Defining_Identifier (New_Typ_Decl),
                              Make_Identifier (Loc, Name_uO)),
@@ -1360,8 +1358,7 @@ package body Exp_Disp is
                                        (RTE (RE_Null_Address), Loc)),
 
                  Then_Statements => New_List (
-                   Make_Simple_Return_Statement (Loc,
-                     Make_Null (Loc))),
+                   Make_Simple_Return_Statement (Loc, Make_Null (Loc))),
                  Else_Statements => Stats));
             end if;
 
@@ -1496,8 +1493,8 @@ package body Exp_Disp is
             if Actual_Typ = Formal_Typ then
                null;
 
-            --  No need to displace the pointer if the interface type is
-            --  parent of the type of the actual because in this case the
+            --  No need to displace the pointer if the interface type is a
+            --  parent of the type of the actual because in this case the
             --  interface primitives are located in the primary dispatch table.
 
             elsif Is_Ancestor (Formal_Typ, Actual_Typ,
@@ -1505,8 +1502,8 @@ package body Exp_Disp is
             then
                null;
 
-            --  Implicit conversion to the class-wide formal type to force
-            --  the displacement of the pointer.
+            --  Implicit conversion to the class-wide formal type to force the
+            --  displacement of the pointer.
 
             else
                --  Normally, expansion of actuals for calls to build-in-place
@@ -1571,10 +1568,11 @@ package body Exp_Disp is
 
                if From_Limited_With (Actual_Typ) then
 
-                  --  If the type of the actual parameter comes from a limited
-                  --  with-clause and the non-limited view is already available
-                  --  we replace the anonymous access type by a duplicate
-                  --  declaration whose designated type is the non-limited view
+                  --  If the type of the actual parameter comes from a
+                  --  limited with-clause and the non-limited view is already
+                  --  available, we replace the anonymous access type by
+                  --  a duplicate declaration whose designated type is the
+                  --  non-limited view.
 
                   if Ekind (Actual_DDT) = E_Incomplete_Type
                     and then Present (Non_Limited_View (Actual_DDT))
@@ -1962,12 +1960,12 @@ package body Exp_Disp is
 
             Thunk_Code :=
               Make_Subprogram_Body (Loc,
-                Specification =>
+                Specification              =>
                   Make_Function_Specification (Loc,
                     Defining_Unit_Name       => Thunk_Id,
                     Parameter_Specifications => Formals,
                     Result_Definition        => Result_Def),
-                Declarations => Decl,
+                Declarations               => Decl,
                 Handled_Statement_Sequence =>
                   Make_Handled_Sequence_Of_Statements (Loc,
                     Statements => New_List (
@@ -2007,9 +2005,7 @@ package body Exp_Disp is
 
       E := Next_Entity (Typ);
       while Present (E) loop
-         if Ekind (E) = E_Function
-           and then Is_Constructor (E)
-         then
+         if Ekind (E) = E_Function and then Is_Constructor (E) then
             return True;
          end if;
 
@@ -2026,7 +2022,7 @@ package body Exp_Disp is
    function Has_DT (Typ : Entity_Id) return Boolean is
    begin
       return not Is_Interface (Typ)
-               and then not Restriction_Active (No_Dispatching_Calls);
+        and then not Restriction_Active (No_Dispatching_Calls);
    end Has_DT;
 
    ----------------------------------
@@ -2143,15 +2139,15 @@ package body Exp_Disp is
    begin
       --  In VM targets we don't restrict the functionality of this test to
       --  compiling in Ada 2005 mode since in VM targets any tagged type has
-      --  these primitives
+      --  these primitives.
 
       return (Ada_Version >= Ada_2005 or else not Tagged_Type_Expansion)
-        and then (Chars (E) = Name_uDisp_Asynchronous_Select or else
-                  Chars (E) = Name_uDisp_Conditional_Select  or else
-                  Chars (E) = Name_uDisp_Get_Prim_Op_Kind    or else
-                  Chars (E) = Name_uDisp_Get_Task_Id         or else
-                  Chars (E) = Name_uDisp_Requeue             or else
-                  Chars (E) = Name_uDisp_Timed_Select);
+        and then Nam_In (Chars (E), Name_uDisp_Asynchronous_Select,
+                                    Name_uDisp_Conditional_Select,
+                                    Name_uDisp_Get_Prim_Op_Kind,
+                                    Name_uDisp_Get_Task_Id,
+                                    Name_uDisp_Requeue,
+                                    Name_uDisp_Timed_Select);
    end Is_Predefined_Interface_Primitive;
 
    ----------------------------------------
@@ -2234,13 +2230,15 @@ package body Exp_Disp is
       if Is_Interface (Typ) then
          return
            Make_Subprogram_Body (Loc,
-             Specification => Make_Disp_Asynchronous_Select_Spec (Typ),
-             Declarations  => New_List,
+             Specification              =>
+               Make_Disp_Asynchronous_Select_Spec (Typ),
+             Declarations               => New_List,
              Handled_Statement_Sequence =>
                Make_Handled_Sequence_Of_Statements (Loc,
-                 New_List (Make_Assignment_Statement (Loc,
-                   Name       => Make_Identifier (Loc, Name_uF),
-                   Expression => New_Occurrence_Of (Standard_False, Loc)))));
+                 New_List (
+                   Make_Assignment_Statement (Loc,
+                     Name       => Make_Identifier (Loc, Name_uF),
+                     Expression => New_Occurrence_Of (Standard_False, Loc)))));
       end if;
 
       if Is_Concurrent_Record_Type (Typ) then
@@ -2261,7 +2259,7 @@ package body Exp_Disp is
          else
             Tag_Node :=
               Make_Attribute_Reference (Loc,
-                Prefix => New_Occurrence_Of (Typ, Loc),
+                Prefix         => New_Occurrence_Of (Typ, Loc),
                 Attribute_Name => Name_Tag);
          end if;
 
@@ -2269,16 +2267,14 @@ package body Exp_Disp is
            Make_Object_Declaration (Loc,
              Defining_Identifier =>
                Make_Defining_Identifier (Loc, Name_uI),
-             Object_Definition =>
+             Object_Definition   =>
                New_Occurrence_Of (Standard_Integer, Loc),
-             Expression =>
+             Expression          =>
                Make_Function_Call (Loc,
-                 Name =>
+                 Name                   =>
                    New_Occurrence_Of (RTE (RE_Get_Entry_Index), Loc),
                  Parameter_Associations =>
-                   New_List (
-                     Tag_Node,
-                     Make_Identifier (Loc, Name_uS)))));
+                   New_List (Tag_Node, Make_Identifier (Loc, Name_uS)))));
 
          if Ekind (Conc_Typ) = E_Protected_Type then
 
@@ -2288,9 +2284,8 @@ package body Exp_Disp is
             Com_Block := Make_Temporary (Loc, 'B');
             Append_To (Decls,
               Make_Object_Declaration (Loc,
-                Defining_Identifier =>
-                  Com_Block,
-                Object_Definition =>
+                Defining_Identifier => Com_Block,
+                Object_Definition   =>
                   New_Occurrence_Of (RTE (RE_Communication_Block), Loc)));
 
             --  Build T._object'Access for calls below
@@ -2320,7 +2315,7 @@ package body Exp_Disp is
 
                   Append_To (Stmts,
                     Make_Procedure_Call_Statement (Loc,
-                      Name =>
+                      Name                   =>
                         New_Occurrence_Of (RTE (RE_Protected_Entry_Call), Loc),
                       Parameter_Associations =>
                         New_List (
@@ -2351,10 +2346,9 @@ package body Exp_Disp is
                 Expression =>
                   Make_Unchecked_Type_Conversion (Loc,
                     Subtype_Mark =>
-                      New_Occurrence_Of (
-                        RTE (RE_Dummy_Communication_Block), Loc),
-                    Expression =>
-                      New_Occurrence_Of (Com_Block, Loc))));
+                      New_Occurrence_Of
+                        (RTE (RE_Dummy_Communication_Block), Loc),
+                    Expression   => New_Occurrence_Of (Com_Block, Loc))));
 
             --  Generate:
             --    F := False;
@@ -2380,7 +2374,7 @@ package body Exp_Disp is
 
             Append_To (Stmts,
               Make_Procedure_Call_Statement (Loc,
-                Name =>
+                Name                   =>
                   New_Occurrence_Of (RTE (RE_Task_Entry_Call), Loc),
                 Parameter_Associations =>
                   New_List (
@@ -2391,7 +2385,7 @@ package body Exp_Disp is
                     Make_Unchecked_Type_Conversion (Loc,  --  entry index
                       Subtype_Mark =>
                         New_Occurrence_Of (RTE (RE_Task_Entry_Index), Loc),
-                      Expression => Make_Identifier (Loc, Name_uI)),
+                      Expression   => Make_Identifier (Loc, Name_uI)),
 
                     Make_Identifier (Loc, Name_uP),       --  parameter block
                     New_Occurrence_Of                     --  Asynchronous_Call
@@ -2442,38 +2436,29 @@ package body Exp_Disp is
       Append_List_To (Params, New_List (
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uT),
-          Parameter_Type =>
-            New_Occurrence_Of (Typ, Loc),
-          In_Present  => True,
-          Out_Present => True),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uT),
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc),
+          In_Present          => True,
+          Out_Present         => True),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uS),
-          Parameter_Type =>
-            New_Occurrence_Of (Standard_Integer, Loc)),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uS),
+          Parameter_Type      => New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uP),
-          Parameter_Type =>
-            New_Occurrence_Of (RTE (RE_Address), Loc)),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uP),
+          Parameter_Type      => New_Occurrence_Of (RTE (RE_Address), Loc)),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uB),
-          Parameter_Type =>
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uB),
+          Parameter_Type      =>
             New_Occurrence_Of (RTE (RE_Dummy_Communication_Block), Loc),
-          Out_Present => True),
+          Out_Present         => True),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uF),
-          Parameter_Type =>
-            New_Occurrence_Of (Standard_Boolean, Loc),
-          Out_Present => True)));
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uF),
+          Parameter_Type      => New_Occurrence_Of (Standard_Boolean, Loc),
+          Out_Present         => True)));
 
       return
         Make_Procedure_Specification (Loc,
@@ -2573,10 +2558,9 @@ package body Exp_Disp is
       if Is_Interface (Typ) then
          return
            Make_Subprogram_Body (Loc,
-             Specification =>
+             Specification              =>
                Make_Disp_Conditional_Select_Spec (Typ),
-             Declarations =>
-               No_List,
+             Declarations               => No_List,
              Handled_Statement_Sequence =>
                Make_Handled_Sequence_Of_Statements (Loc,
                  New_List (Make_Assignment_Statement (Loc,
@@ -2595,9 +2579,8 @@ package body Exp_Disp is
 
          Append_To (Decls,
            Make_Object_Declaration (Loc,
-             Defining_Identifier =>
-               Make_Defining_Identifier (Loc, Name_uI),
-             Object_Definition =>
+             Defining_Identifier => Make_Defining_Identifier (Loc, Name_uI),
+             Object_Definition   =>
                New_Occurrence_Of (Standard_Integer, Loc)));
 
          --  Generate:
@@ -2622,9 +2605,8 @@ package body Exp_Disp is
          Blk_Nam := Make_Temporary (Loc, 'B');
          Append_To (Decls,
            Make_Object_Declaration (Loc,
-             Defining_Identifier =>
-               Blk_Nam,
-             Object_Definition =>
+             Defining_Identifier => Blk_Nam,
+             Object_Definition   =>
                New_Occurrence_Of (RTE (RE_Communication_Block), Loc)));
 
          --  Generate:
@@ -2641,21 +2623,20 @@ package body Exp_Disp is
          else
             Tag_Node :=
               Make_Attribute_Reference (Loc,
-                Prefix => New_Occurrence_Of (Typ, Loc),
+                Prefix         => New_Occurrence_Of (Typ, Loc),
                 Attribute_Name => Name_Tag);
          end if;
 
          Append_To (Stmts,
            Make_Assignment_Statement (Loc,
-             Name => Make_Identifier (Loc, Name_uI),
+             Name       => Make_Identifier (Loc, Name_uI),
              Expression =>
                Make_Function_Call (Loc,
-                 Name =>
+                 Name                   =>
                    New_Occurrence_Of (RTE (RE_Get_Entry_Index), Loc),
-                 Parameter_Associations =>
-                   New_List (
-                     Tag_Node,
-                     Make_Identifier (Loc, Name_uS)))));
+                 Parameter_Associations => New_List (
+                   Tag_Node,
+                   Make_Identifier (Loc, Name_uS)))));
 
          if Ekind (Conc_Typ) = E_Protected_Type then
 
@@ -2684,10 +2665,9 @@ package body Exp_Disp is
 
                   Append_To (Stmts,
                     Make_Procedure_Call_Statement (Loc,
-                      Name =>
+                      Name                   =>
                         New_Occurrence_Of (RTE (RE_Protected_Entry_Call), Loc),
-                      Parameter_Associations =>
-                        New_List (
+                      Parameter_Associations => New_List (
                           Obj_Ref,
 
                           Make_Unchecked_Type_Conversion (Loc,  --  entry index
@@ -2710,11 +2690,10 @@ package body Exp_Disp is
 
                   Append_To (Stmts,
                     Make_Procedure_Call_Statement (Loc,
-                      Name =>
+                      Name                   =>
                         New_Occurrence_Of
                           (RTE (RE_Protected_Single_Entry_Call), Loc),
-                      Parameter_Associations =>
-                        New_List (
+                      Parameter_Associations => New_List (
                           Obj_Ref,
 
                           Make_Attribute_Reference (Loc,
@@ -2740,10 +2719,9 @@ package body Exp_Disp is
                   Make_Op_Not (Loc,
                     Right_Opnd =>
                       Make_Function_Call (Loc,
-                        Name =>
+                        Name                   =>
                           New_Occurrence_Of (RTE (RE_Cancelled), Loc),
-                        Parameter_Associations =>
-                          New_List (
+                        Parameter_Associations => New_List (
                             New_Occurrence_Of (Blk_Nam, Loc))))));
          else
             pragma Assert (Ekind (Conc_Typ) = E_Task_Type);
@@ -2761,10 +2739,9 @@ package body Exp_Disp is
 
             Append_To (Stmts,
               Make_Procedure_Call_Statement (Loc,
-                Name =>
+                Name                   =>
                   New_Occurrence_Of (RTE (RE_Task_Entry_Call), Loc),
-                Parameter_Associations =>
-                  New_List (
+                Parameter_Associations => New_List (
 
                     Make_Selected_Component (Loc,         -- T._task_id
                       Prefix        => Make_Identifier (Loc, Name_uT),
@@ -2828,38 +2805,29 @@ package body Exp_Disp is
       Append_List_To (Params, New_List (
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uT),
-          Parameter_Type =>
-            New_Occurrence_Of (Typ, Loc),
-          In_Present  => True,
-          Out_Present => True),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uT),
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc),
+          In_Present          => True,
+          Out_Present         => True),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uS),
-          Parameter_Type =>
-            New_Occurrence_Of (Standard_Integer, Loc)),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uS),
+          Parameter_Type      => New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uP),
-          Parameter_Type =>
-            New_Occurrence_Of (RTE (RE_Address), Loc)),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uP),
+          Parameter_Type      => New_Occurrence_Of (RTE (RE_Address), Loc)),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uC),
-          Parameter_Type =>
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uC),
+          Parameter_Type      =>
             New_Occurrence_Of (RTE (RE_Prim_Op_Kind), Loc),
-          Out_Present => True),
+          Out_Present         => True),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uF),
-          Parameter_Type =>
-            New_Occurrence_Of (Standard_Boolean, Loc),
-          Out_Present => True)));
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uF),
+          Parameter_Type      => New_Occurrence_Of (Standard_Boolean, Loc),
+          Out_Present         => True)));
 
       return
         Make_Procedure_Specification (Loc,
@@ -2871,9 +2839,7 @@ package body Exp_Disp is
    -- Make_Disp_Get_Prim_Op_Kind_Body --
    -------------------------------------
 
-   function Make_Disp_Get_Prim_Op_Kind_Body
-     (Typ : Entity_Id) return Node_Id
-   is
+   function Make_Disp_Get_Prim_Op_Kind_Body (Typ : Entity_Id) return Node_Id is
       Loc      : constant Source_Ptr := Sloc (Typ);
       Tag_Node : Node_Id;
 
@@ -2883,10 +2849,9 @@ package body Exp_Disp is
       if Is_Interface (Typ) then
          return
            Make_Subprogram_Body (Loc,
-             Specification =>
+             Specification              =>
                Make_Disp_Get_Prim_Op_Kind_Spec (Typ),
-             Declarations =>
-               New_List,
+             Declarations               => New_List,
              Handled_Statement_Sequence =>
                Make_Handled_Sequence_Of_Statements (Loc,
                  New_List (Make_Null_Statement (Loc))));
@@ -2907,22 +2872,20 @@ package body Exp_Disp is
       else
          Tag_Node :=
            Make_Attribute_Reference (Loc,
-             Prefix => New_Occurrence_Of (Typ, Loc),
+             Prefix         => New_Occurrence_Of (Typ, Loc),
              Attribute_Name => Name_Tag);
       end if;
 
       return
         Make_Subprogram_Body (Loc,
-          Specification =>
+          Specification              =>
             Make_Disp_Get_Prim_Op_Kind_Spec (Typ),
-          Declarations =>
-            New_List,
+          Declarations               => New_List,
           Handled_Statement_Sequence =>
             Make_Handled_Sequence_Of_Statements (Loc,
               New_List (
                 Make_Assignment_Statement (Loc,
-                  Name =>
-                    Make_Identifier (Loc, Name_uC),
+                  Name       => Make_Identifier (Loc, Name_uC),
                   Expression =>
                     Make_Function_Call (Loc,
                       Name =>
@@ -2941,8 +2904,7 @@ package body Exp_Disp is
    is
       Loc    : constant Source_Ptr := Sloc (Typ);
       Def_Id : constant Node_Id    :=
-                 Make_Defining_Identifier (Loc,
-                   Name_uDisp_Get_Prim_Op_Kind);
+                 Make_Defining_Identifier (Loc, Name_uDisp_Get_Prim_Op_Kind);
       Params : constant List_Id    := New_List;
 
    begin
@@ -2955,25 +2917,20 @@ package body Exp_Disp is
       Append_List_To (Params, New_List (
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uT),
-          Parameter_Type =>
-            New_Occurrence_Of (Typ, Loc),
-          In_Present  => True,
-          Out_Present => True),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uT),
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc),
+          In_Present          => True,
+          Out_Present         => True),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uS),
-          Parameter_Type =>
-            New_Occurrence_Of (Standard_Integer, Loc)),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uS),
+          Parameter_Type      => New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uC),
-          Parameter_Type =>
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uC),
+          Parameter_Type      =>
             New_Occurrence_Of (RTE (RE_Prim_Op_Kind), Loc),
-          Out_Present => True)));
+          Out_Present         => True)));
 
       return
         Make_Procedure_Specification (Loc,
@@ -3004,9 +2961,8 @@ package body Exp_Disp is
            Make_Simple_Return_Statement (Loc,
              Expression =>
                Make_Unchecked_Type_Conversion (Loc,
-                 Subtype_Mark =>
-                   New_Occurrence_Of (RTE (RE_Address), Loc),
-                 Expression =>
+                 Subtype_Mark => New_Occurrence_Of (RTE (RE_Address), Loc),
+                 Expression   =>
                    Make_Selected_Component (Loc,
                      Prefix        => Make_Identifier (Loc, Name_uT),
                      Selector_Name => Make_Identifier (Loc, Name_uTask_Id))));
@@ -3019,19 +2975,15 @@ package body Exp_Disp is
 
          Ret :=
            Make_Simple_Return_Statement (Loc,
-             Expression =>
-               New_Occurrence_Of (RTE (RE_Null_Address), Loc));
+             Expression => New_Occurrence_Of (RTE (RE_Null_Address), Loc));
       end if;
 
       return
         Make_Subprogram_Body (Loc,
-          Specification =>
-            Make_Disp_Get_Task_Id_Spec (Typ),
-          Declarations =>
-            New_List,
+          Specification              => Make_Disp_Get_Task_Id_Spec (Typ),
+          Declarations               => New_List,
           Handled_Statement_Sequence =>
-            Make_Handled_Sequence_Of_Statements (Loc,
-              New_List (Ret)));
+            Make_Handled_Sequence_Of_Statements (Loc, New_List (Ret)));
    end Make_Disp_Get_Task_Id_Body;
 
    --------------------------------
@@ -3048,15 +3000,13 @@ package body Exp_Disp is
 
       return
         Make_Function_Specification (Loc,
-          Defining_Unit_Name =>
+          Defining_Unit_Name       =>
             Make_Defining_Identifier (Loc, Name_uDisp_Get_Task_Id),
           Parameter_Specifications => New_List (
             Make_Parameter_Specification (Loc,
-              Defining_Identifier =>
-                Make_Defining_Identifier (Loc, Name_uT),
-              Parameter_Type =>
-                New_Occurrence_Of (Typ, Loc))),
-          Result_Definition =>
+              Defining_Identifier => Make_Defining_Identifier (Loc, Name_uT),
+              Parameter_Type      => New_Occurrence_Of (Typ, Loc))),
+          Result_Definition        =>
             New_Occurrence_Of (RTE (RE_Address), Loc));
    end Make_Disp_Get_Task_Id_Spec;
 
@@ -3082,10 +3032,8 @@ package body Exp_Disp is
       then
          return
            Make_Subprogram_Body (Loc,
-             Specification =>
-               Make_Disp_Requeue_Spec (Typ),
-             Declarations =>
-               No_List,
+             Specification              => Make_Disp_Requeue_Spec (Typ),
+             Declarations               => No_List,
              Handled_Statement_Sequence =>
                Make_Handled_Sequence_Of_Statements (Loc,
                  New_List (Make_Null_Statement (Loc))));
@@ -3125,8 +3073,8 @@ package body Exp_Disp is
 
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Occurrence_Of (
-                          RTE (RE_Requeue_Protected_Entry), Loc),
+                        New_Occurrence_Of
+                          (RTE (RE_Requeue_Protected_Entry), Loc),
                       Parameter_Associations =>
                         New_List (
 
@@ -3140,7 +3088,7 @@ package body Exp_Disp is
                           Make_Attribute_Reference (Loc,      -- O._object'Acc
                             Attribute_Name =>
                               Name_Unchecked_Access,
-                            Prefix =>
+                            Prefix         =>
                               Make_Selected_Component (Loc,
                                 Prefix        =>
                                   Make_Identifier (Loc, Name_uO),
@@ -3149,8 +3097,8 @@ package body Exp_Disp is
 
                           Make_Unchecked_Type_Conversion (Loc,  -- entry index
                             Subtype_Mark =>
-                              New_Occurrence_Of (
-                                RTE (RE_Protected_Entry_Index), Loc),
+                              New_Occurrence_Of
+                                (RTE (RE_Protected_Entry_Index), Loc),
                             Expression => Make_Identifier (Loc, Name_uI)),
 
                           Make_Identifier (Loc, Name_uA)))),   -- abort status
@@ -3162,30 +3110,29 @@ package body Exp_Disp is
 
                     Make_Procedure_Call_Statement (Loc,
                       Name =>
-                        New_Occurrence_Of (
-                          RTE (RE_Requeue_Task_To_Protected_Entry), Loc),
+                        New_Occurrence_Of
+                          (RTE (RE_Requeue_Task_To_Protected_Entry), Loc),
                       Parameter_Associations =>
                         New_List (
 
                           Make_Attribute_Reference (Loc,     -- O._object'Acc
-                            Attribute_Name =>
-                              Name_Unchecked_Access,
-                            Prefix =>
+                            Attribute_Name => Name_Unchecked_Access,
+                            Prefix         =>
                               Make_Selected_Component (Loc,
-                                Prefix =>
+                                Prefix        =>
                                   Make_Identifier (Loc, Name_uO),
                                 Selector_Name =>
                                   Make_Identifier (Loc, Name_uObject))),
 
                           Make_Unchecked_Type_Conversion (Loc, -- entry index
                             Subtype_Mark =>
-                              New_Occurrence_Of (
-                                RTE (RE_Protected_Entry_Index), Loc),
-                            Expression =>
-                              Make_Identifier (Loc, Name_uI)),
+                              New_Occurrence_Of
+                                (RTE (RE_Protected_Entry_Index), Loc),
+                            Expression   => Make_Identifier (Loc, Name_uI)),
 
                           Make_Identifier (Loc, Name_uA)))))); -- abort status
          end if;
+
       else
          pragma Assert (Is_Task_Type (Conc_Typ));
 
@@ -3240,7 +3187,8 @@ package body Exp_Disp is
                --  Call to Requeue_Task_Entry
 
                Make_Procedure_Call_Statement (Loc,
-                 Name => New_Occurrence_Of (RTE (RE_Requeue_Task_Entry), Loc),
+                 Name                   =>
+                   New_Occurrence_Of (RTE (RE_Requeue_Task_Entry), Loc),
 
                  Parameter_Associations => New_List (
 
@@ -3261,10 +3209,8 @@ package body Exp_Disp is
 
       return
         Make_Subprogram_Body (Loc,
-          Specification =>
-            Make_Disp_Requeue_Spec (Typ),
-          Declarations =>
-            New_List,
+          Specification              => Make_Disp_Requeue_Spec (Typ),
+          Declarations               => New_List,
           Handled_Statement_Sequence =>
             Make_Handled_Sequence_Of_Statements (Loc, Stmts));
    end Make_Disp_Requeue_Body;
@@ -3296,39 +3242,38 @@ package body Exp_Disp is
           Defining_Unit_Name =>
             Make_Defining_Identifier (Loc, Name_uDisp_Requeue),
 
-          Parameter_Specifications =>
-            New_List (
+          Parameter_Specifications => New_List (
 
               Make_Parameter_Specification (Loc,             --  O
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uO),
-                Parameter_Type =>
+                Parameter_Type      =>
                   New_Occurrence_Of (Typ, Loc),
-                In_Present  => True,
-                Out_Present => True),
+                In_Present          => True,
+                Out_Present         => True),
 
               Make_Parameter_Specification (Loc,             --  F
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uF),
-                Parameter_Type =>
+                Parameter_Type      =>
                   New_Occurrence_Of (Standard_Boolean, Loc)),
 
               Make_Parameter_Specification (Loc,             --  P
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uP),
-                Parameter_Type =>
+                Parameter_Type      =>
                   New_Occurrence_Of (RTE (RE_Address), Loc)),
 
               Make_Parameter_Specification (Loc,             --  I
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uI),
-                Parameter_Type =>
+                Parameter_Type      =>
                   New_Occurrence_Of (Standard_Integer, Loc)),
 
               Make_Parameter_Specification (Loc,             --  A
                 Defining_Identifier =>
                   Make_Defining_Identifier (Loc, Name_uA),
-                Parameter_Type =>
+                Parameter_Type      =>
                   New_Occurrence_Of (Standard_Boolean, Loc))));
    end Make_Disp_Requeue_Spec;
 
@@ -3429,10 +3374,8 @@ package body Exp_Disp is
       if Is_Interface (Typ) then
          return
            Make_Subprogram_Body (Loc,
-             Specification =>
-               Make_Disp_Timed_Select_Spec (Typ),
-             Declarations =>
-               New_List,
+             Specification              => Make_Disp_Timed_Select_Spec (Typ),
+             Declarations               => New_List,
              Handled_Statement_Sequence =>
                Make_Handled_Sequence_Of_Statements (Loc,
                  New_List (
@@ -3493,10 +3436,9 @@ package body Exp_Disp is
              Expression =>
                Make_Function_Call (Loc,
                  Name => New_Occurrence_Of (RTE (RE_Get_Entry_Index), Loc),
-                 Parameter_Associations =>
-                   New_List (
-                     Tag_Node,
-                     Make_Identifier (Loc, Name_uS)))));
+                 Parameter_Associations => New_List (
+                   Tag_Node,
+                   Make_Identifier (Loc, Name_uS)))));
 
          --  Protected case
 
@@ -3539,21 +3481,19 @@ package body Exp_Disp is
                       Name =>
                         New_Occurrence_Of
                           (RTE (RE_Timed_Protected_Entry_Call), Loc),
-                      Parameter_Associations =>
-                        New_List (
-                          Obj_Ref,
+                      Parameter_Associations => New_List (
+                        Obj_Ref,
 
-                          Make_Unchecked_Type_Conversion (Loc,  --  entry index
-                            Subtype_Mark =>
-                              New_Occurrence_Of
-                                (RTE (RE_Protected_Entry_Index), Loc),
-                            Expression =>
-                              Make_Identifier (Loc, Name_uI)),
+                        Make_Unchecked_Type_Conversion (Loc,  --  entry index
+                          Subtype_Mark =>
+                            New_Occurrence_Of
+                              (RTE (RE_Protected_Entry_Index), Loc),
+                          Expression   => Make_Identifier (Loc, Name_uI)),
 
-                          Make_Identifier (Loc, Name_uP),   --  parameter block
-                          Make_Identifier (Loc, Name_uD),   --  delay
-                          Make_Identifier (Loc, Name_uM),   --  delay mode
-                          Make_Identifier (Loc, Name_uF)))); --  status flag
+                        Make_Identifier (Loc, Name_uP),   --  parameter block
+                        Make_Identifier (Loc, Name_uD),   --  delay
+                        Make_Identifier (Loc, Name_uM),   --  delay mode
+                        Make_Identifier (Loc, Name_uF)))); --  status flag
 
                when others =>
                   raise Program_Error;
@@ -3579,24 +3519,23 @@ package body Exp_Disp is
 
             Append_To (Stmts,
               Make_Procedure_Call_Statement (Loc,
-                Name =>
+                Name                   =>
                   New_Occurrence_Of (RTE (RE_Timed_Task_Entry_Call), Loc),
-                Parameter_Associations =>
-                  New_List (
 
-                    Make_Selected_Component (Loc,         --  T._task_id
-                      Prefix        => Make_Identifier (Loc, Name_uT),
-                      Selector_Name => Make_Identifier (Loc, Name_uTask_Id)),
+                Parameter_Associations => New_List (
+                  Make_Selected_Component (Loc,         --  T._task_id
+                    Prefix        => Make_Identifier (Loc, Name_uT),
+                    Selector_Name => Make_Identifier (Loc, Name_uTask_Id)),
 
-                    Make_Unchecked_Type_Conversion (Loc,  --  entry index
-                      Subtype_Mark =>
-                        New_Occurrence_Of (RTE (RE_Task_Entry_Index), Loc),
-                      Expression   => Make_Identifier (Loc, Name_uI)),
+                  Make_Unchecked_Type_Conversion (Loc,  --  entry index
+                    Subtype_Mark =>
+                      New_Occurrence_Of (RTE (RE_Task_Entry_Index), Loc),
+                    Expression   => Make_Identifier (Loc, Name_uI)),
 
-                    Make_Identifier (Loc, Name_uP),       --  parameter block
-                    Make_Identifier (Loc, Name_uD),       --  delay
-                    Make_Identifier (Loc, Name_uM),       --  delay mode
-                    Make_Identifier (Loc, Name_uF))));    --  status flag
+                  Make_Identifier (Loc, Name_uP),       --  parameter block
+                  Make_Identifier (Loc, Name_uD),       --  delay
+                  Make_Identifier (Loc, Name_uM),       --  delay mode
+                  Make_Identifier (Loc, Name_uF))));    --  status flag
          end if;
 
       else
@@ -3647,51 +3586,38 @@ package body Exp_Disp is
       Append_List_To (Params, New_List (
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uT),
-          Parameter_Type =>
-            New_Occurrence_Of (Typ, Loc),
-          In_Present  => True,
-          Out_Present => True),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uT),
+          Parameter_Type      => New_Occurrence_Of (Typ, Loc),
+          In_Present          => True,
+          Out_Present         => True),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uS),
-          Parameter_Type =>
-            New_Occurrence_Of (Standard_Integer, Loc)),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uS),
+          Parameter_Type      => New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uP),
-          Parameter_Type =>
-            New_Occurrence_Of (RTE (RE_Address), Loc)),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uP),
+          Parameter_Type      => New_Occurrence_Of (RTE (RE_Address), Loc)),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uD),
-          Parameter_Type =>
-            New_Occurrence_Of (Standard_Duration, Loc)),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uD),
+          Parameter_Type      => New_Occurrence_Of (Standard_Duration, Loc)),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uM),
-          Parameter_Type =>
-            New_Occurrence_Of (Standard_Integer, Loc)),
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uM),
+          Parameter_Type      => New_Occurrence_Of (Standard_Integer, Loc)),
 
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uC),
-          Parameter_Type =>
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uC),
+          Parameter_Type      =>
             New_Occurrence_Of (RTE (RE_Prim_Op_Kind), Loc),
-          Out_Present => True)));
+          Out_Present         => True)));
 
       Append_To (Params,
         Make_Parameter_Specification (Loc,
-          Defining_Identifier =>
-            Make_Defining_Identifier (Loc, Name_uF),
-          Parameter_Type =>
-            New_Occurrence_Of (Standard_Boolean, Loc),
-          Out_Present => True));
+          Defining_Identifier => Make_Defining_Identifier (Loc, Name_uF),
+          Parameter_Type      => New_Occurrence_Of (Standard_Boolean, Loc),
+          Out_Present         => True));
 
       return
         Make_Procedure_Specification (Loc,
@@ -3704,17 +3630,17 @@ package body Exp_Disp is
    -------------
 
    --  The frontend supports two models for expanding dispatch tables
-   --  associated with library-level defined tagged types: statically
-   --  and non-statically allocated dispatch tables. In the former case
-   --  the object containing the dispatch table is constant and it is
-   --  initialized by means of a positional aggregate. In the latter case,
-   --  the object containing the dispatch table is a variable which is
-   --  initialized by means of assignments.
+   --  associated with library-level defined tagged types: statically and
+   --  non-statically allocated dispatch tables. In the former case the object
+   --  containing the dispatch table is constant and it is initialized by means
+   --  of a positional aggregate. In the latter case, the object containing
+   --  the dispatch table is a variable which is initialized by means of
+   --  assignments.
 
    --  In case of locally defined tagged types, the object containing the
-   --  object containing the dispatch table is always a variable (instead
-   --  of a constant). This is currently required to give support to late
-   --  overriding of primitives. For example:
+   --  object containing the dispatch table is always a variable (instead of a
+   --  constant). This is currently required to give support to late overriding
+   --  of primitives. For example:
 
    --     procedure Example is
    --        package Pkg is
@@ -3826,7 +3752,6 @@ package body Exp_Disp is
               or else not Used_As_Generic_Actual (T)
             then
                return False;
-
             else
                Gen_Par := Generic_Parent (Parent (Current_Scope));
             end if;
@@ -3834,7 +3759,7 @@ package body Exp_Disp is
             F :=
               First
                 (Generic_Formal_Declarations
-                     (Unit_Declaration_Node (Gen_Par)));
+                   (Unit_Declaration_Node (Gen_Par)));
             while Present (F) loop
                if Ekind (Defining_Identifier (F)) = E_Incomplete_Type then
                   return True;
@@ -3864,8 +3789,8 @@ package body Exp_Disp is
             Error_Msg_NE
               ("declaration must appear after completion of type &", N, Typ);
             Error_Msg_NE
-              ("\which is an untagged type in the profile of"
-               & " primitive operation & declared#", N, Subp);
+              ("\which is an untagged type in the profile of "
+               & "primitive operation & declared#", N, Subp);
 
          else
             Comp := Private_Component (Typ);
@@ -3873,19 +3798,18 @@ package body Exp_Disp is
             if not Is_Tagged_Type (Typ)
               and then Present (Comp)
               and then not Is_Frozen (Comp)
-              and then
-                not Is_Actual_For_Formal_Incomplete_Type (Comp)
+              and then not Is_Actual_For_Formal_Incomplete_Type (Comp)
             then
                Error_Msg_Sloc := Sloc (Subp);
                Error_Msg_Node_2 := Subp;
                Error_Msg_Name_1 := Chars (Tagged_Type);
                Error_Msg_NE
                  ("declaration must appear after completion of type &",
-                   N, Comp);
+                  N, Comp);
                Error_Msg_NE
-                 ("\which is a component of untagged type& in the profile of"
-               & " primitive & of type % that is frozen by the declaration ",
-                   N, Typ);
+                 ("\which is a component of untagged type& in the profile "
+                  & "of primitive & of type % that is frozen by the "
+                  & "declaration ", N, Typ);
             end if;
          end if;
       end Check_Premature_Freezing;
@@ -4081,8 +4005,7 @@ package body Exp_Disp is
             end loop;
 
             New_Node :=
-              Make_Aggregate (Loc,
-                Expressions => Prim_Ops_Aggr_List);
+              Make_Aggregate (Loc, Expressions => Prim_Ops_Aggr_List);
 
             --  Remember aggregates initializing dispatch tables
 
@@ -4162,7 +4085,7 @@ package body Exp_Disp is
 
          Append_To (DT_Aggr_List,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Occurrence_Of (Predef_Prims, Loc),
+             Prefix         => New_Occurrence_Of (Predef_Prims, Loc),
              Attribute_Name => Name_Address));
 
          --  Note: The correct value of Offset_To_Top will be set by the init
@@ -4224,7 +4147,7 @@ package body Exp_Disp is
 
                         Append_To (OSD_Aggr_List,
                           Make_Component_Association (Loc,
-                            Choices => New_List (
+                            Choices    => New_List (
                               Make_Integer_Literal (Loc,
                                 DT_Position (Prim_Alias))),
                             Expression =>
@@ -4249,7 +4172,7 @@ package body Exp_Disp is
                   Make_Subtype_Indication (Loc,
                     Subtype_Mark =>
                       New_Occurrence_Of (RTE (RE_Object_Specific_Data), Loc),
-                    Constraint =>
+                    Constraint   =>
                       Make_Index_Or_Discriminant_Constraint (Loc,
                         Constraints => New_List (
                           Make_Integer_Literal (Loc, Nb_Prim)))),
@@ -4258,14 +4181,14 @@ package body Exp_Disp is
                   Make_Aggregate (Loc,
                     Component_Associations => New_List (
                       Make_Component_Association (Loc,
-                        Choices => New_List (
+                        Choices    => New_List (
                           New_Occurrence_Of
                             (RTE_Record_Component (RE_OSD_Num_Prims), Loc)),
                         Expression =>
                           Make_Integer_Literal (Loc, Nb_Prim)),
 
                       Make_Component_Association (Loc,
-                        Choices => New_List (
+                        Choices    => New_List (
                           New_Occurrence_Of
                             (RTE_Record_Component (RE_OSD_Table), Loc)),
                         Expression => Make_Aggregate (Loc,
@@ -4277,7 +4200,7 @@ package body Exp_Disp is
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix =>
+                    Prefix         =>
                       New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
@@ -4286,7 +4209,7 @@ package body Exp_Disp is
 
             Append_To (DT_Aggr_List,
               Make_Attribute_Reference (Loc,
-                Prefix => New_Occurrence_Of (OSD, Loc),
+                Prefix         => New_Occurrence_Of (OSD, Loc),
                 Attribute_Name => Name_Address));
          end if;
 
@@ -4675,15 +4598,16 @@ package body Exp_Disp is
             --  Build the secondary table containing pointers to thunks
 
             Make_Secondary_DT
-             (Typ             => Typ,
-              Iface           => Base_Type (Related_Type (Node (AI_Tag_Comp))),
-              Suffix_Index    => Suffix_Index,
-              Num_Iface_Prims => UI_To_Int
-                                   (DT_Entry_Count (Node (AI_Tag_Comp))),
-              Iface_DT_Ptr    => Node (AI_Tag_Elmt),
+             (Typ              => Typ,
+              Iface            => Base_Type
+                                    (Related_Type (Node (AI_Tag_Comp))),
+              Suffix_Index     => Suffix_Index,
+              Num_Iface_Prims  => UI_To_Int
+                                    (DT_Entry_Count (Node (AI_Tag_Comp))),
+              Iface_DT_Ptr     => Node (AI_Tag_Elmt),
               Predef_Prims_Ptr => Node (Next_Elmt (AI_Tag_Elmt)),
-              Build_Thunks    => True,
-              Result          => Result);
+              Build_Thunks     => True,
+              Result           => Result);
 
             --  Skip secondary dispatch table referencing thunks to predefined
             --  primitives.
@@ -4762,7 +4686,7 @@ package body Exp_Disp is
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix =>
+                    Prefix         =>
                       New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
@@ -4774,12 +4698,12 @@ package body Exp_Disp is
                 Expression =>
                   Unchecked_Convert_To (RTE (RE_Tag),
                     Make_Attribute_Reference (Loc,
-                      Prefix =>
+                      Prefix         =>
                         Make_Selected_Component (Loc,
-                          Prefix => New_Occurrence_Of (DT, Loc),
-                        Selector_Name =>
-                          New_Occurrence_Of
-                            (RTE_Record_Component (RE_NDT_Prims_Ptr), Loc)),
+                          Prefix        => New_Occurrence_Of (DT, Loc),
+                          Selector_Name =>
+                            New_Occurrence_Of
+                              (RTE_Record_Component (RE_NDT_Prims_Ptr), Loc)),
                       Attribute_Name => Name_Address))));
 
             Set_Is_Statically_Allocated (DT_Ptr,
@@ -4821,8 +4745,9 @@ package body Exp_Disp is
                   Make_Subtype_Indication (Loc,
                     Subtype_Mark =>
                       New_Occurrence_Of (RTE (RE_Dispatch_Table_Wrapper), Loc),
-                    Constraint => Make_Index_Or_Discriminant_Constraint (Loc,
-                                    Constraints => DT_Constr_List))));
+                    Constraint   =>
+                      Make_Index_Or_Discriminant_Constraint (Loc,
+                        Constraints => DT_Constr_List))));
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
@@ -4830,7 +4755,7 @@ package body Exp_Disp is
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix =>
+                    Prefix         =>
                       New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
@@ -4842,12 +4767,12 @@ package body Exp_Disp is
                 Expression =>
                   Unchecked_Convert_To (RTE (RE_Tag),
                     Make_Attribute_Reference (Loc,
-                      Prefix =>
+                      Prefix         =>
                         Make_Selected_Component (Loc,
-                          Prefix => New_Occurrence_Of (DT, Loc),
-                        Selector_Name =>
-                          New_Occurrence_Of
-                            (RTE_Record_Component (RE_Prims_Ptr), Loc)),
+                          Prefix        => New_Occurrence_Of (DT, Loc),
+                          Selector_Name =>
+                            New_Occurrence_Of
+                              (RTE_Record_Component (RE_Prims_Ptr), Loc)),
                       Attribute_Name => Name_Address))));
 
             Set_Is_Statically_Allocated (DT_Ptr,
@@ -4868,16 +4793,16 @@ package body Exp_Disp is
                 Defining_Identifier =>
                   Node (Next_Elmt (First_Elmt (Access_Disp_Table (Typ)))),
                 Constant_Present    => True,
-                Object_Definition   => New_Occurrence_Of
-                                            (RTE (RE_Address), Loc),
+                Object_Definition   =>
+                  New_Occurrence_Of (RTE (RE_Address), Loc),
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix =>
+                    Prefix         =>
                       Make_Selected_Component (Loc,
-                        Prefix => New_Occurrence_Of (DT, Loc),
-                      Selector_Name =>
-                        New_Occurrence_Of
-                          (RTE_Record_Component (RE_Predef_Prims), Loc)),
+                        Prefix        => New_Occurrence_Of (DT, Loc),
+                        Selector_Name =>
+                          New_Occurrence_Of
+                            (RTE_Record_Component (RE_Predef_Prims), Loc)),
                     Attribute_Name => Name_Address)));
          end if;
       end if;
@@ -4893,8 +4818,7 @@ package body Exp_Disp is
           Object_Definition   => New_Occurrence_Of (Standard_String, Loc),
           Expression =>
             Make_String_Literal (Loc,
-              Fully_Qualified_Name_String (First_Subtype (Typ)))));
-
+              Strval => Fully_Qualified_Name_String (First_Subtype (Typ)))));
       Set_Is_Statically_Allocated (Exname);
       Set_Is_True_Constant (Exname);
 
@@ -4977,7 +4901,7 @@ package body Exp_Disp is
       else
          Append_To (TSD_Aggr_List,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Occurrence_Of (Typ, Loc),
+             Prefix         => New_Occurrence_Of (Typ, Loc),
              Attribute_Name => Name_Alignment));
       end if;
 
@@ -5020,14 +4944,13 @@ package body Exp_Disp is
         and then not Has_External_Tag_Rep_Clause (Typ)
       then
          declare
-            Exname      : constant Entity_Id :=
-                            Make_Defining_Identifier (Loc,
-                              New_External_Name (Tname, 'A'));
-
-            Full_Name   : constant String_Id :=
+            Exname    : constant Entity_Id :=
+                          Make_Defining_Identifier (Loc,
+                            Chars => New_External_Name (Tname, 'A'));
+            Full_Name : constant String_Id :=
                             Fully_Qualified_Name_String (First_Subtype (Typ));
-            Str1_Id     : String_Id;
-            Str2_Id     : String_Id;
+            Str1_Id   : String_Id;
+            Str2_Id   : String_Id;
 
          begin
             --  Generate:
@@ -5058,11 +4981,10 @@ package body Exp_Disp is
                                             (Standard_String, Loc),
                    Expression =>
                      Make_Op_Concat (Loc,
-                       Left_Opnd =>
-                         Make_String_Literal (Loc, Str1_Id),
+                       Left_Opnd  => Make_String_Literal (Loc, Str1_Id),
                        Right_Opnd =>
                          Make_Op_Concat (Loc,
-                           Left_Opnd =>
+                           Left_Opnd  =>
                              Make_Function_Call (Loc,
                                Name =>
                                  New_Occurrence_Of
@@ -5078,20 +5000,18 @@ package body Exp_Disp is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => Exname,
                    Constant_Present    => True,
-                   Object_Definition   => New_Occurrence_Of
-                                            (Standard_String, Loc),
-                   Expression =>
+                   Object_Definition   =>
+                     New_Occurrence_Of (Standard_String, Loc),
+                   Expression          =>
                      Make_Op_Concat (Loc,
-                       Left_Opnd =>
-                         Make_String_Literal (Loc, Str1_Id),
-                       Right_Opnd =>
-                         Make_String_Literal (Loc, Str2_Id))));
+                       Left_Opnd  => Make_String_Literal (Loc, Str1_Id),
+                       Right_Opnd => Make_String_Literal (Loc, Str2_Id))));
             end if;
 
             New_Node :=
               Unchecked_Convert_To (RTE (RE_Cstring_Ptr),
                 Make_Attribute_Reference (Loc,
-                  Prefix => New_Occurrence_Of (Exname, Loc),
+                  Prefix         => New_Occurrence_Of (Exname, Loc),
                   Attribute_Name => Name_Address));
          end;
 
@@ -5160,7 +5080,7 @@ package body Exp_Disp is
                New_Node :=
                  Unchecked_Convert_To (RTE (RE_Cstring_Ptr),
                    Make_Attribute_Reference (Loc,
-                     Prefix => New_Occurrence_Of (E, Loc),
+                     Prefix         => New_Occurrence_Of (E, Loc),
                      Attribute_Name => Name_Address));
             end if;
          end;
@@ -5174,7 +5094,7 @@ package body Exp_Disp is
          Append_To (TSD_Aggr_List,
            Unchecked_Convert_To (RTE (RE_Tag_Ptr),
              Make_Attribute_Reference (Loc,
-               Prefix => New_Occurrence_Of (HT_Link, Loc),
+               Prefix         => New_Occurrence_Of (HT_Link, Loc),
                Attribute_Name => Name_Address)));
       else
          Append_To (TSD_Aggr_List,
@@ -5195,7 +5115,7 @@ package body Exp_Disp is
                 or else Is_Shared_Passive (Typ)
                 or else
                   ((Is_Remote_Types (Typ)
-                      or else Is_Remote_Call_Interface (Typ))
+                     or else Is_Remote_Call_Interface (Typ))
                    and then Original_View_In_Visible_Part (Typ))
                 or else not Comes_From_Source (Typ));
 
@@ -5209,13 +5129,10 @@ package body Exp_Disp is
       if RTE_Record_Component_Available (RE_Type_Is_Abstract) then
          declare
             Type_Is_Abstract : Entity_Id;
-
          begin
-            Type_Is_Abstract :=
-              Boolean_Literals (Is_Abstract_Type (Typ));
-
+            Type_Is_Abstract := Boolean_Literals (Is_Abstract_Type (Typ));
             Append_To (TSD_Aggr_List,
-               New_Occurrence_Of (Type_Is_Abstract, Loc));
+              New_Occurrence_Of (Type_Is_Abstract, Loc));
          end;
       end if;
 
@@ -5224,7 +5141,6 @@ package body Exp_Disp is
 
       declare
          Needs_Fin : Entity_Id;
-
       begin
          Needs_Fin := Boolean_Literals (Needs_Finalization (Typ));
          Append_To (TSD_Aggr_List, New_Occurrence_Of (Needs_Fin, Loc));
@@ -5267,7 +5183,7 @@ package body Exp_Disp is
                         Size_Comp :=
                           Unchecked_Convert_To (RTE (RE_Size_Ptr),
                             Make_Attribute_Reference (Loc,
-                              Prefix => New_Occurrence_Of (Prim, Loc),
+                              Prefix         => New_Occurrence_Of (Prim, Loc),
                               Attribute_Name => Name_Unrestricted_Access));
                      end if;
 
@@ -5395,16 +5311,15 @@ package body Exp_Disp is
                      Make_Subtype_Indication (Loc,
                        Subtype_Mark =>
                          New_Occurrence_Of (RTE (RE_Interface_Data), Loc),
-                       Constraint => Make_Index_Or_Discriminant_Constraint
-                         (Loc,
-                          Constraints => New_List (
-                            Make_Integer_Literal (Loc, Num_Ifaces)))),
+                       Constraint   =>
+                         Make_Index_Or_Discriminant_Constraint (Loc,
+                           Constraints => New_List (
+                             Make_Integer_Literal (Loc, Num_Ifaces)))),
 
-                   Expression => Make_Aggregate (Loc,
+                   Expression           => Make_Aggregate (Loc,
                      Expressions => New_List (
                        Make_Integer_Literal (Loc, Num_Ifaces),
-                       Make_Aggregate (Loc,
-                         Expressions => TSD_Ifaces_List)))));
+                       Make_Aggregate (Loc, TSD_Ifaces_List)))));
 
                Append_To (Result,
                  Make_Attribute_Definition_Clause (Loc,
@@ -5412,7 +5327,7 @@ package body Exp_Disp is
                    Chars      => Name_Alignment,
                    Expression =>
                      Make_Attribute_Reference (Loc,
-                       Prefix =>
+                       Prefix         =>
                          New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                        Attribute_Name => Name_Alignment)));
 
@@ -5460,7 +5375,7 @@ package body Exp_Disp is
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix =>
+                    Prefix         =>
                       New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
@@ -5469,7 +5384,7 @@ package body Exp_Disp is
 
             Append_To (TSD_Aggr_List,
               Make_Attribute_Reference (Loc,
-                Prefix => New_Occurrence_Of (SSD, Loc),
+                Prefix         => New_Occurrence_Of (SSD, Loc),
                 Attribute_Name => Name_Unchecked_Access));
          else
             Append_To (TSD_Aggr_List, Make_Null (Loc));
@@ -5572,7 +5487,8 @@ package body Exp_Disp is
           Chars      => Name_Alignment,
           Expression =>
             Make_Attribute_Reference (Loc,
-              Prefix => New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
+              Prefix         =>
+                New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
               Attribute_Name => Name_Alignment)));
 
       --  Initialize or declare the dispatch table object
@@ -5585,7 +5501,7 @@ package body Exp_Disp is
 
          New_Node :=
            Make_Attribute_Reference (Loc,
-             Prefix => New_Occurrence_Of (TSD, Loc),
+             Prefix         => New_Occurrence_Of (TSD, Loc),
              Attribute_Name => Name_Address);
 
          Append_To (DT_Constr_List, New_Node);
@@ -5601,9 +5517,8 @@ package body Exp_Disp is
          if not Building_Static_DT (Typ) then
             Append_To (Result,
               Make_Assignment_Statement (Loc,
-                Name => New_Occurrence_Of (DT, Loc),
-                Expression => Make_Aggregate (Loc,
-                  Expressions => DT_Aggr_List)));
+                Name       => New_Occurrence_Of (DT, Loc),
+                Expression => Make_Aggregate (Loc, DT_Aggr_List)));
 
          --  In case of library level tagged types we declare and export now
          --  the constant object containing the dummy dispatch table. There
@@ -5623,8 +5538,7 @@ package body Exp_Disp is
                 Constant_Present    => True,
                 Object_Definition   =>
                   New_Occurrence_Of (RTE (RE_No_Dispatch_Table_Wrapper), Loc),
-                Expression => Make_Aggregate (Loc,
-                  Expressions => DT_Aggr_List)));
+                Expression          => Make_Aggregate (Loc, DT_Aggr_List)));
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
@@ -5632,7 +5546,7 @@ package body Exp_Disp is
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix =>
+                    Prefix         =>
                       New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
@@ -5725,7 +5639,8 @@ package body Exp_Disp is
                      New_Node :=
                        Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                          Make_Attribute_Reference (Loc,
-                           Prefix => New_Occurrence_Of (Prim_Table (J), Loc),
+                           Prefix         =>
+                             New_Occurrence_Of (Prim_Table (J), Loc),
                            Attribute_Name => Name_Unrestricted_Access));
                   else
                      New_Node := Make_Null (Loc);
@@ -5751,8 +5666,8 @@ package body Exp_Disp is
                    Defining_Identifier => Predef_Prims,
                    Aliased_Present     => True,
                    Constant_Present    => Building_Static_DT (Typ),
-                   Object_Definition   => New_Occurrence_Of
-                                           (Defining_Identifier (Decl), Loc),
+                   Object_Definition   =>
+                     New_Occurrence_Of (Defining_Identifier (Decl), Loc),
                    Expression => New_Node));
 
                --  Remember aggregates initializing dispatch tables
@@ -5765,7 +5680,7 @@ package body Exp_Disp is
                    Chars      => Name_Alignment,
                    Expression =>
                      Make_Attribute_Reference (Loc,
-                       Prefix =>
+                       Prefix         =>
                          New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                        Attribute_Name => Name_Alignment)));
             end;
@@ -5805,7 +5720,7 @@ package body Exp_Disp is
 
          Append_To (DT_Aggr_List,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Occurrence_Of (Predef_Prims, Loc),
+             Prefix         => New_Occurrence_Of (Predef_Prims, Loc),
              Attribute_Name => Name_Address));
 
          --  Offset_To_Top
@@ -5816,7 +5731,7 @@ package body Exp_Disp is
 
          Append_To (DT_Aggr_List,
            Make_Attribute_Reference (Loc,
-             Prefix => New_Occurrence_Of (TSD, Loc),
+             Prefix         => New_Occurrence_Of (TSD, Loc),
              Attribute_Name => Name_Address));
 
          --  Stage 2: Initialize the table of user-defined primitive operations
@@ -5883,7 +5798,8 @@ package body Exp_Disp is
                      New_Node :=
                        Unchecked_Convert_To (RTE (RE_Prim_Ptr),
                          Make_Attribute_Reference (Loc,
-                           Prefix => New_Occurrence_Of (Prim_Table (J), Loc),
+                           Prefix         =>
+                             New_Occurrence_Of (Prim_Table (J), Loc),
                            Attribute_Name => Name_Unrestricted_Access));
                   else
                      New_Node := Make_Null (Loc);
@@ -5911,9 +5827,8 @@ package body Exp_Disp is
          if not Building_Static_DT (Typ) then
             Append_To (Result,
               Make_Assignment_Statement (Loc,
-                Name => New_Occurrence_Of (DT, Loc),
-                Expression => Make_Aggregate (Loc,
-                  Expressions => DT_Aggr_List)));
+                Name       => New_Occurrence_Of (DT, Loc),
+                Expression => Make_Aggregate (Loc, DT_Aggr_List)));
 
          --  In case of library level tagged types we declare now and export
          --  the constant object containing the dispatch table.
@@ -5930,8 +5845,7 @@ package body Exp_Disp is
                                       (RTE (RE_Dispatch_Table_Wrapper), Loc),
                     Constraint   => Make_Index_Or_Discriminant_Constraint (Loc,
                                       Constraints => DT_Constr_List)),
-                Expression => Make_Aggregate (Loc,
-                  Expressions => DT_Aggr_List)));
+                Expression          => Make_Aggregate (Loc, DT_Aggr_List)));
 
             Append_To (Result,
               Make_Attribute_Definition_Clause (Loc,
@@ -5939,7 +5853,7 @@ package body Exp_Disp is
                 Chars      => Name_Alignment,
                 Expression =>
                   Make_Attribute_Reference (Loc,
-                    Prefix =>
+                    Prefix         =>
                       New_Occurrence_Of (RTE (RE_Integer_Address), Loc),
                     Attribute_Name => Name_Alignment)));
 
@@ -5956,12 +5870,11 @@ package body Exp_Disp is
       then
          Append_To (Result,
            Make_Assignment_Statement (Loc,
-             Name =>
+             Name       =>
                Make_Indexed_Component (Loc,
-                 Prefix =>
+                 Prefix      =>
                    Make_Selected_Component (Loc,
-                     Prefix =>
-                       New_Occurrence_Of (TSD, Loc),
+                     Prefix        => New_Occurrence_Of (TSD, Loc),
                      Selector_Name =>
                        New_Occurrence_Of
                          (RTE_Record_Component (RE_Tags_Table), Loc)),
@@ -6011,15 +5924,15 @@ package body Exp_Disp is
                       Old_Tag_Node =>
                         New_Occurrence_Of
                           (Node
-                           (Next_Elmt
-                            (First_Elmt
-                             (Access_Disp_Table (Parent_Typ)))), Loc),
+                            (Next_Elmt
+                              (First_Elmt
+                                (Access_Disp_Table (Parent_Typ)))), Loc),
                       New_Tag_Node =>
                         New_Occurrence_Of
                           (Node
-                           (Next_Elmt
-                            (First_Elmt
-                             (Access_Disp_Table (Typ)))), Loc)));
+                            (Next_Elmt
+                              (First_Elmt
+                                (Access_Disp_Table (Typ)))), Loc)));
 
                   if Nb_Prims /= 0 then
                      Append_To (Elab_Code,
@@ -6028,8 +5941,8 @@ package body Exp_Disp is
                          Old_Tag_Node =>
                            New_Occurrence_Of
                              (Node
-                              (First_Elmt
-                               (Access_Disp_Table (Parent_Typ))), Loc),
+                               (First_Elmt
+                                 (Access_Disp_Table (Parent_Typ))), Loc),
                          New_Tag_Node => New_Occurrence_Of (DT_Ptr, Loc),
                          Num_Prims    => Nb_Prims));
                   end if;
@@ -6042,14 +5955,15 @@ package body Exp_Disp is
                declare
                   Sec_DT_Ancestor : Elmt_Id :=
                                       Next_Elmt
-                                       (Next_Elmt
-                                        (First_Elmt
-                                          (Access_Disp_Table (Parent_Typ))));
+                                        (Next_Elmt
+                                           (First_Elmt
+                                              (Access_Disp_Table
+                                                 (Parent_Typ))));
                   Sec_DT_Typ      : Elmt_Id :=
                                       Next_Elmt
-                                       (Next_Elmt
-                                         (First_Elmt
-                                           (Access_Disp_Table (Typ))));
+                                        (Next_Elmt
+                                           (First_Elmt
+                                              (Access_Disp_Table (Typ))));
 
                   procedure Copy_Secondary_DTs (Typ : Entity_Id);
                   --  Local procedure required to climb through the ancestors
@@ -6256,7 +6170,8 @@ package body Exp_Disp is
       then
          Append_To (Elab_Code,
            Make_Procedure_Call_Statement (Loc,
-             Name => New_Occurrence_Of (RTE (RE_Register_Tag), Loc),
+             Name                   =>
+               New_Occurrence_Of (RTE (RE_Register_Tag), Loc),
              Parameter_Associations =>
                New_List (New_Occurrence_Of (DT_Ptr, Loc))));
       end if;
@@ -6439,7 +6354,7 @@ package body Exp_Disp is
 
                         Append_To (OSD_Aggr_List,
                           Make_Component_Association (Loc,
-                            Choices => New_List (
+                            Choices    => New_List (
                               Make_Integer_Literal (Loc,
                                 DT_Position (Prim_Alias))),
                             Expression =>
@@ -6452,6 +6367,7 @@ package body Exp_Disp is
 
                   Next_Elmt (Prim_Elmt);
                end loop;
+
                pragma Assert (Count = Nb_Prim);
             end;
 
@@ -6466,7 +6382,7 @@ package body Exp_Disp is
                   Make_Subtype_Indication (Loc,
                     Subtype_Mark =>
                       New_Occurrence_Of (RTE (RE_Object_Specific_Data), Loc),
-                    Constraint =>
+                    Constraint   =>
                       Make_Index_Or_Discriminant_Constraint (Loc,
                         Constraints => New_List (
                           Make_Integer_Literal (Loc, Nb_Prim)))),
@@ -6475,14 +6391,14 @@ package body Exp_Disp is
                   Make_Aggregate (Loc,
                     Component_Associations => New_List (
                       Make_Component_Association (Loc,
-                        Choices => New_List (
+                        Choices    => New_List (
                           New_Occurrence_Of
                             (RTE_Record_Component (RE_OSD_Num_Prims), Loc)),
                         Expression =>
                           Make_Integer_Literal (Loc, Nb_Prim)),
 
                       Make_Component_Association (Loc,
-                        Choices => New_List (
+                        Choices    => New_List (
                           New_Occurrence_Of
                             (RTE_Record_Component (RE_OSD_Table), Loc)),
                         Expression => Make_Aggregate (Loc,
@@ -7171,8 +7087,7 @@ package body Exp_Disp is
       Set_Ekind        (DT_Ptr, E_Variable);
       Set_Related_Type (DT_Ptr, Typ);
 
-      --  Notify the back end that the types are associated with a dispatch
-      --  table
+      --  Notify back end that the types are associated with a dispatch table
 
       Set_Is_Dispatch_Table_Entity (RTE (RE_Prim_Ptr));
       Set_Is_Dispatch_Table_Entity (RTE (RE_Predef_Prims_Table_Ptr));
@@ -7307,9 +7222,8 @@ package body Exp_Disp is
 
          Suffix_Index := 1;
 
-         --  Note: The value of Suffix_Index must be in sync with the
-         --  Suffix_Index values of secondary dispatch tables generated
-         --  by Make_DT.
+         --  Note: The value of Suffix_Index must be in sync with the values of
+         --  Suffix_Index in secondary dispatch tables generated by Make_DT.
 
          if Is_CPP_Class (Typ) then
             AI_Tag_Comp := First_Elmt (Typ_Comps);
@@ -7318,8 +7232,7 @@ package body Exp_Disp is
                  (Typ, Related_Type (Node (AI_Tag_Comp)), Suffix_Index);
                Typ_Name := Name_Find;
 
-               --  Declare variables that will store the copy of the C++
-               --  secondary tags.
+               --  Declare variables to store copy of the C++ secondary tags
 
                Iface_DT_Ptr :=
                  Make_Defining_Identifier (Loc,
@@ -7528,6 +7441,7 @@ package body Exp_Disp is
             --  Add the freezing nodes of these declarations; required to avoid
             --  generating these freezing nodes in wrong scopes (for example in
             --  the IC routine of a derivation of Typ).
+
             --  What is an "IC routine"? Is "init_proc" meant here???
 
             Append_List_To (Result, Freeze_Entity (DT_Prims, Typ));
@@ -7573,9 +7487,7 @@ package body Exp_Disp is
       Res : constant Node_Id := Duplicate_Subexpr (From);
    begin
       if Is_Access_Type (Etype (From)) then
-         return
-           Make_Explicit_Dereference (Sloc (From),
-             Prefix => Res);
+         return Make_Explicit_Dereference (Sloc (From), Prefix => Res);
       else
          return Res;
       end if;
@@ -7786,6 +7698,7 @@ package body Exp_Disp is
          end if;
 
       --  Ada 2005 (AI-251): Primitive associated with an interface type
+
       --  Generate the code of the thunk only if the interface type is not an
       --  immediate ancestor of Typ; otherwise the dispatch table associated
       --  with the interface is the primary dispatch table and we have nothing
@@ -7914,9 +7827,8 @@ package body Exp_Disp is
       --  predefined primitives
 
       procedure Validate_Position (Prim : Entity_Id);
-      --  Check that the position assigned to Prim is completely safe
-      --  (it has not been assigned to a previously defined primitive
-      --   operation of Typ)
+      --  Check that position assigned to Prim is completely safe (it has not
+      --  been assigned to a previously defined primitive operation of Typ).
 
       ------------------------
       -- In_Predef_Prims_DT --
@@ -8011,7 +7923,6 @@ package body Exp_Disp is
                and then not Is_Predefined_Dispatching_Alias (Op)
                and then not Is_Predefined_Dispatching_Alias (Prim)
             then
-
                --  Handle aliased subprograms
 
                declare
@@ -8074,9 +7985,8 @@ package body Exp_Disp is
       --  Set the DT_Position for each primitive operation. Perform some sanity
       --  checks to avoid building inconsistent dispatch tables.
 
-      --  First stage: Set the DTC entity of all the primitive operations. This
-      --  is required to properly read the DT_Position attribute in the latter
-      --  stages.
+      --  First stage: Set DTC entity of all the primitive operations. This is
+      --  required to properly read the DT_Position attribute in latter stages.
 
       Prim_Elmt  := First_Prim;
       Count_Prim := 0;
@@ -8261,9 +8171,9 @@ package body Exp_Disp is
             Next_Elmt (Prim_Elmt);
          end loop;
 
-         --  Third stage: Fix the position of all the new primitives.
-         --  Entries associated with primitives covering interfaces
-         --  are handled in a latter round.
+         --  Third stage: Fix the position of all the new primitives. Entries
+         --  associated with primitives covering interfaces are handled in a
+         --  latter round.
 
          Prim_Elmt := First_Prim;
          while Present (Prim_Elmt) loop
@@ -8297,8 +8207,8 @@ package body Exp_Disp is
       end;
 
       --  Fourth stage: Complete the decoration of primitives covering
-      --  interfaces (that is, propagate the DT_Position attribute
-      --  from the aliased primitive)
+      --  interfaces (that is, propagate the DT_Position attribute from
+      --  the aliased primitive)
 
       Prim_Elmt := First_Prim;
       while Present (Prim_Elmt) loop
@@ -8332,10 +8242,10 @@ package body Exp_Disp is
          Next_Elmt (Prim_Elmt);
       end loop;
 
-      --  Generate listing showing the contents of the dispatch tables.
-      --  This action is done before some further static checks because
-      --  in case of critical errors caused by a wrong dispatch table
-      --  we need to see the contents of such table.
+      --  Generate listing showing the contents of the dispatch tables. This
+      --  action is done before some further static checks because in case of
+      --  critical errors caused by a wrong dispatch table we need to see the
+      --  contents of such table.
 
       if Debug_Flag_ZZ then
          Write_DT (Typ);
@@ -8349,8 +8259,8 @@ package body Exp_Disp is
       while Present (Prim_Elmt) loop
          Prim := Node (Prim_Elmt);
 
-         --  At this point all the primitives MUST have a position
-         --  in the dispatch table.
+         --  At this point all the primitives MUST have a position in the
+         --  dispatch table.
 
          if DT_Position (Prim) = No_Uint then
             raise Program_Error;
@@ -8364,8 +8274,8 @@ package body Exp_Disp is
             DT_Length := UI_To_Int (DT_Position (Prim));
          end if;
 
-         --  Ensure that the assigned position to non-predefined
-         --  dispatching operations in the dispatch table is correct.
+         --  Ensure that the assigned position to non-predefined dispatching
+         --  operations in the dispatch table is correct.
 
          if not Is_Predefined_Dispatching_Operation (Prim)
            and then not Is_Predefined_Dispatching_Alias (Prim)
@@ -8391,8 +8301,8 @@ package body Exp_Disp is
          --  excluded from this check because interfaces must be visible in
          --  the public and private part (RM 7.3 (7.3/2))
 
-         --  We disable this check in Relaxed_RM_Semantics mode, to
-         --  accommodate legacy Ada code.
+         --  We disable this check in Relaxed_RM_Semantics mode, to accommodate
+         --  legacy Ada code.
 
          if not Relaxed_RM_Semantics
            and then Is_Abstract_Type (Typ)
@@ -8409,9 +8319,8 @@ package body Exp_Disp is
            and then Original_View_In_Visible_Part (Typ)
          then
             --  We exclude Input and Output stream operations because
-            --  Limited_Controlled inherits useless Input and Output
-            --  stream operations from Root_Controlled, which can
-            --  never be overridden.
+            --  Limited_Controlled inherits useless Input and Output stream
+            --  operations from Root_Controlled, which can never be overridden.
 
             if not Is_TSS (Prim, TSS_Stream_Input)
                  and then
@@ -8464,6 +8373,10 @@ package body Exp_Disp is
       --  Duplicate the parameters profile of the imported C++ constructor
       --  adding an access to the object as an additional parameter.
 
+      ----------------------------
+      -- Gen_Parameters_Profile --
+      ----------------------------
+
       function Gen_Parameters_Profile (E : Entity_Id) return List_Id is
          Loc   : constant Source_Ptr := Sloc (E);
          Parms : List_Id;
@@ -8682,10 +8595,10 @@ package body Exp_Disp is
                end;
             end if;
 
-            --  If this constructor has parameters and all its parameters
-            --  have defaults then it covers the default constructor. The
-            --  semantic analyzer ensures that only one constructor with
-            --  defaults covers the default constructor.
+            --  If this constructor has parameters and all its parameters have
+            --  defaults then it covers the default constructor. The semantic
+            --  analyzer ensures that only one constructor with defaults covers
+            --  the default constructor.
 
             if Present (Parameter_Specifications (Parent (E)))
               and then Needs_No_Actuals (E)
@@ -8935,7 +8848,7 @@ package body Exp_Disp is
          end if;
 
          --  Display the final position of this primitive in its associated
-         --  (primary or secondary) dispatch table
+         --  (primary or secondary) dispatch table.
 
          if Present (DTC_Entity (Prim))
            and then DT_Position (Prim) /= No_Uint
index ae8a390..78778a0 100644 (file)
@@ -1162,18 +1162,15 @@ package body Exp_Dist is
 
       return
         Make_Procedure_Call_Statement (Loc,
-          Name =>
-            New_Occurrence_Of
-              (RTE (RE_NVList_Add_Item), Loc),
+          Name                   =>
+            New_Occurrence_Of (RTE (RE_NVList_Add_Item), Loc),
           Parameter_Associations => New_List (
             New_Occurrence_Of (NVList, Loc),
             Make_Function_Call (Loc,
-              Name =>
-                New_Occurrence_Of
-                  (RTE (RE_To_PolyORB_String), Loc),
+              Name                   =>
+                New_Occurrence_Of (RTE (RE_To_PolyORB_String), Loc),
               Parameter_Associations => New_List (
-                Make_String_Literal (Loc,
-                  Strval => Parameter_Name_String))),
+                Make_String_Literal (Loc, Strval => Parameter_Name_String))),
             New_Occurrence_Of (Any, Loc),
             Parameter_Mode));
    end Add_Parameter_To_NVList;
index 5a18f3e..26e2e0d 100644 (file)
@@ -1131,25 +1131,16 @@ package body Freeze is
                      Attribute_Scalar_Storage_Order);
       Comp_ADC_Present := Present (Comp_ADC);
 
-      --  Case of enclosing type not having explicit SSO: component cannot
-      --  have it either.
+      --  Case of record or array component: check storage order compatibility
 
-      if No (ADC) then
-         if Comp_ADC_Present then
-            Error_Msg_N
-              ("composite type must have explicit scalar storage order",
-               Err_Node);
-         end if;
-
-      --  Case of enclosing type having explicit SSO: check compatible
-      --  attribute on Comp_Type if composite.
-
-      elsif Is_Record_Type (Comp_Type) or else Is_Array_Type (Comp_Type) then
+      if Is_Record_Type (Comp_Type) or else Is_Array_Type (Comp_Type) then
          Comp_SSO_Differs :=
            Reverse_Storage_Order (Encl_Type)
              /=
            Reverse_Storage_Order (Comp_Type);
 
+         --  Parent and extension must have same storage order
+
          if Present (Comp) and then Chars (Comp) = Name_uParent then
             if Comp_SSO_Differs then
                Error_Msg_N
@@ -1157,10 +1148,16 @@ package body Freeze is
                   & "parent", Err_Node);
             end if;
 
-         elsif No (Comp_ADC) then
+         --  If enclosing composite has explicit SSO then nested composite must
+         --  have explicit SSO as well.
+
+         elsif Present (ADC) and then No (Comp_ADC) then
             Error_Msg_N ("nested composite must have explicit scalar "
                          & "storage order", Err_Node);
 
+         --  If component and composite SSO differs, check that component
+         --  falls on byte boundaries and isn't packed.
+
          elsif Comp_SSO_Differs then
 
             --  Component SSO differs from enclosing composite:
@@ -1182,10 +1179,10 @@ package body Freeze is
             end if;
          end if;
 
-      --  Enclosing type has explicit SSO, non-composite component must not
+      --  Enclosing type has explicit SSO: non-composite component must not
       --  be aliased.
 
-      elsif Component_Aliased then
+      elsif Present (ADC) and then Component_Aliased then
          Error_Msg_N
            ("aliased component not permitted for type with "
             & "explicit Scalar_Storage_Order", Err_Node);
index 54ecf6e..67875a6 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                     Copyright (C) 2002-2010, AdaCore                     --
+--                     Copyright (C) 2002-2014, AdaCore                     --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -121,8 +121,8 @@ package GNAT.Perfect_Hash_Generators is
    --  Raised after Tries unsuccessful runs
 
    procedure Compute (Position : String := Default_Position);
-   --  Compute the hash function. Position allows to define selection of
-   --  character positions used in the word hash function. Positions can be
+   --  Compute the hash function. Position allows the definition of selection
+   --  of character positions used in the word hash function. Positions can be
    --  separated by commas and ranges like x-y may be used. Character '$'
    --  represents the final character of a word. With an empty position, the
    --  generator automatically produces positions to reduce the memory usage.
index 876e535..7df5af0 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                     Copyright (C) 2001-2013, AdaCore                     --
+--                     Copyright (C) 2001-2014, AdaCore                     --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -759,8 +759,8 @@ package GNAT.Sockets is
       end case;
    end record;
 
-   --  A request flag allows to specify the type of message transmissions or
-   --  receptions. A request flag can be combination of zero or more
+   --  A request flag allows specification of the type of message transmissions
+   --  or receptions. A request flag can be combination of zero or more
    --  predefined request flags.
 
    type Request_Flag_Type is private;
@@ -904,7 +904,7 @@ package GNAT.Sockets is
    --  Item'First - 1 when the socket has been closed by peer. This is not
    --  an error, and no exception is raised in this case unless Item'First
    --  is Stream_Element_Offset'First, in which case Constraint_Error is
-   --  raised. Flags allows to control the reception. Raise Socket_Error on
+   --  raised. Flags allows control of the reception. Raise Socket_Error on
    --  error.
 
    procedure Receive_Socket
@@ -916,7 +916,7 @@ package GNAT.Sockets is
    --  Receive message from Socket. If Socket is not connection-oriented, the
    --  source address From of the message is filled in. Last is the index
    --  value such that Item (Last) is the last character assigned. Flags
-   --  allows to control the reception. Raises Socket_Error on error.
+   --  allows control of the reception. Raises Socket_Error on error.
 
    procedure Receive_Vector
      (Socket : Socket_Type;
@@ -958,7 +958,7 @@ package GNAT.Sockets is
       Last   : out Ada.Streams.Stream_Element_Offset;
       Flags  : Request_Flag_Type := No_Request_Flag);
    --  Transmit a message over a socket. Upon return, Last is set to the index
-   --  within Item of the last element transmitted. Flags allows to control
+   --  within Item of the last element transmitted. Flags allows control of
    --  the transmission. Raises Socket_Error on any detected error condition.
 
    procedure Send_Socket
@@ -968,7 +968,7 @@ package GNAT.Sockets is
       To     : Sock_Addr_Type;
       Flags  : Request_Flag_Type := No_Request_Flag);
    --  Transmit a message over a datagram socket. The destination address is
-   --  To. Flags allows to control the transmission. Raises Socket_Error on
+   --  To. Flags allows control of the transmission. Raises Socket_Error on
    --  error.
 
    procedure Send_Vector
@@ -1027,8 +1027,8 @@ package GNAT.Sockets is
    --  subprogram when the stream is not needed anymore.
 
    type Socket_Set_Type is limited private;
-   --  This type allows to manipulate sets of sockets. It allows to wait for
-   --  events on multiple endpoints at one time. This type has default
+   --  This type allows manipulation of sets of sockets. It allows waiting
+   --  for events on multiple endpoints at one time. This type has default
    --  initialization, and the default value is the empty set.
    --
    --  Note: This type used to contain a pointer to dynamically allocated
@@ -1072,8 +1072,8 @@ package GNAT.Sockets is
    --  Check_Selector provides the very same behaviour. The only difference is
    --  that it does not watch for exception events. Note that on some platforms
    --  it is kept process blocking on purpose. The timeout parameter allows the
-   --  user to have the behaviour he wants. Abort_Selector allows to safely
-   --  abort a blocked Check_Selector call. A special socket is opened by
+   --  user to have the behaviour he wants. Abort_Selector allows the safe
+   --  abort of a blocked Check_Selector call. A special socket is opened by
    --  Create_Selector and included in each call to Check_Selector.
    --
    --  Abort_Selector causes an event to occur on this descriptor in order to
index b0b3907..854e26e 100644 (file)
@@ -9303,9 +9303,8 @@ that make up scalar components are ordered within S:
    --  the former is used.
 @end smallexample
 
-Other properties are
-as for standard representation attribute @code{Bit_Order}, as defined by
-Ada RM 13.5.3(4). The default is @code{System.Default_Bit_Order}.
+Other properties are as for standard representation attribute @code{Bit_Order},
+as defined by Ada RM 13.5.3(4). The default is @code{System.Default_Bit_Order}.
 
 For a record type @var{S}, if @code{@var{S}'Scalar_Storage_Order} is
 specified explicitly, it shall be equal to @code{@var{S}'Bit_Order}. Note:
@@ -9316,18 +9315,15 @@ specified explicitly and set to the same value.
 For a record extension, the derived type shall have the same scalar storage
 order as the parent type.
 
-If a component of @var{S} has itself a record or array type, then it shall also
-have a @code{Scalar_Storage_Order} attribute definition clause. In addition,
-if the component is a packed array, or does not start on a byte boundary, then
-the scalar storage order specified for S and for the nested component type shall
-be identical.
+If a component of @var{S} is of a record or array type, then that type shall
+also have a @code{Scalar_Storage_Order} attribute definition clause.
 
-If @var{S} appears as the type of a record or array component, the enclosing
-record or array shall also have a @code{Scalar_Storage_Order} attribute
-definition clause.
+A component of a record or array type that is a packed array, or that
+does not start on a byte boundary, must have the same scalar storage order
+as the enclosing record or array type.
 
-No component of a type that has a @code{Scalar_Storage_Order} attribute
-definition may be aliased.
+No component of a type that has an explicit @code{Scalar_Storage_Order}
+attribute definition may be aliased.
 
 A confirming @code{Scalar_Storage_Order} attribute definition clause (i.e.
 with a value equal to @code{System.Default_Bit_Order}) has no effect.
index 51a8bd4..2132a8b 100644 (file)
@@ -1,3 +1,4 @@
+
 \input texinfo   @c -*-texinfo-*-
 @c %**start of header
 
@@ -18765,11 +18766,11 @@ leak.
 
 @noindent
 @code{gnatmem} makes use of the output created by the special version of
-allocation and deallocation routines that record call information. This
-allows to obtain accurate dynamic memory usage history at a minimal cost to
-the execution speed. Note however, that @code{gnatmem} is not supported on
-all platforms (currently, it is supported on AIX, HP-UX, GNU/Linux,
-Solaris and Windows NT/2000/XP (x86).
+allocation and deallocation routines that record call information. This allows
+it to obtain accurate dynamic memory usage history at a minimal cost to the
+execution speed. Note however, that @code{gnatmem} is not supported on all
+platforms (currently, it is supported on AIX, HP-UX, GNU/Linux, Solaris and
+Windows NT/2000/XP (x86).
 
 @noindent
 The @code{gnatmem} command has the form
@@ -18894,8 +18895,8 @@ Do the @code{gnatmem} processing starting from @file{file}, rather than
 @item -m n
 @cindex @option{-m} (@code{gnatmem})
 This switch causes @code{gnatmem} to mask the allocation roots that have less
-than n leaks. The default value is 1. Specifying the value of 0 will allow to
-examine even the roots that didn't result in leaks.
+than n leaks.  The default value is 1. Specifying the value of 0 will allow
+examination of even the roots that did not result in leaks.
 
 @item -s order
 @cindex @option{-s} (@code{gnatmem})
@@ -21636,9 +21637,9 @@ breakpoint condition (before the @code{if}).
 @item task @var{taskno}
 @cindex Task switching
 
-This command allows to switch to the task referred by @var{taskno}. In
-particular, This allows to browse the backtrace of the specified
-task. It is advised to switch back to the original task before
+This command allows switching to the task referred by @var{taskno}. In
+particular, this allows browsing of the backtrace of the specified
+task. It is advisable to switch back to the original task before
 continuing execution otherwise the scheduling of the program may be
 perturbed.
 @end table
index 48319d6..587638b 100644 (file)
@@ -6,7 +6,7 @@
  *                                                                          *
  *                          C Implementation File                           *
  *                                                                          *
- *          Copyright (C) 1992-2013, Free Software Foundation, Inc.         *
+ *          Copyright (C) 1992-2014, Free Software Foundation, Inc.         *
  *                                                                          *
  * GNAT is free software;  you can  redistribute it  and/or modify it under *
  * terms of the  GNU General Public License as published  by the Free Soft- *
@@ -1922,7 +1922,7 @@ __gnat_error_handler (int sig, siginfo_t *si, void *sc)
   #include "sigtramp.h"
 
   __gnat_sigtramp (sig, (void *)si, (void *)sc,
-                  (sighandler_t *)&__gnat_map_signal);
+                  (__sigtramphandler_t *)&__gnat_map_signal);
 
 #else
   __gnat_map_signal (sig, si, sc);
@@ -2372,12 +2372,23 @@ __gnat_install_handler (void)
 /*******************/
 
 #include <signal.h>
-#include <stdlib.h>
+#include "sigtramp.h"
+
+#define HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE
+
+void
+__gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED, void *ucontext)
+{
+  mcontext_t *mcontext = &((ucontext_t *) ucontext)->uc_mcontext;
+
+  /* ARM Bump has to be an even number because of odd/even architecture.  */
+  ((mcontext_t *) mcontext)->arm_pc += 2;
+}
 
 static void
-__gnat_error_handler (int sig,
-                     siginfo_t *si ATTRIBUTE_UNUSED,
-                     void *ucontext ATTRIBUTE_UNUSED)
+__gnat_map_signal (int sig,
+                  siginfo_t *si ATTRIBUTE_UNUSED,
+                  void *ucontext ATTRIBUTE_UNUSED)
 {
   struct Exception_Data *exception;
   const char *msg;
@@ -2407,6 +2418,17 @@ __gnat_error_handler (int sig,
   Raise_From_Signal_Handler (exception, msg);
 }
 
+static void
+__gnat_error_handler (int sig,
+                     siginfo_t *si ATTRIBUTE_UNUSED,
+                     void *ucontext ATTRIBUTE_UNUSED)
+{
+  __gnat_adjust_context_for_raise (sig, ucontext);
+
+  __gnat_sigtramp (sig, (void *) si, (void *) ucontext,
+                  (__sigtramphandler_t *)&__gnat_map_signal);
+}
+
 /* This must be in keeping with System.OS_Interface.Alternate_Stack_Size.  */
 char __gnat_alternate_stack[16 * 1024];
 
index f8377f4..8ccdda6 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2014, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -67,7 +67,7 @@ package body Scng is
    procedure Accumulate_Token_Checksum;
    pragma Inline (Accumulate_Token_Checksum);
    --  Called after each numeric literal and identifier/keyword. For keywords,
-   --  the token used is Tok_Identifier. This allows to detect additional
+   --  the token used is Tok_Identifier. This allows detection of additional
    --  spaces added in sources when using the builder switch -m.
 
    procedure Accumulate_Token_Checksum_GNAT_6_3;
index 1de265d..48d442b 100644 (file)
@@ -3904,10 +3904,10 @@ package body Sem_Attr is
          Context           : constant Node_Id := Parent (N);
          Attr              : Node_Id;
          Enclosing_Loop    : Node_Id;
-         In_Loop_Assertion : Boolean   := False;
          Loop_Id           : Entity_Id := Empty;
          Scop              : Entity_Id;
          Stmt              : Node_Id;
+         Enclosing_Pragma  : Node_Id   := Empty;
 
       --  Start of processing for Loop_Entry
 
@@ -4025,7 +4025,7 @@ package body Sem_Attr is
                                Name_Assert_And_Cut,
                                Name_Assume)
             then
-               In_Loop_Assertion := True;
+               Enclosing_Pragma := Original_Node (Stmt);
 
             --  Locate the enclosing loop (if any). Note that Ada 2012 array
             --  iteration may be expanded into several nested loops, we are
@@ -4060,12 +4060,11 @@ package body Sem_Attr is
             --  purpose if they appear in an appropriate location in a loop,
             --  which was already checked by the top level pragma circuit).
 
-         if not In_Loop_Assertion then
-            Error_Attr
-              ("attribute % must appear within appropriate pragma", N);
+         if No (Enclosing_Pragma) then
+            Error_Attr ("attribute% must appear within appropriate pragma", N);
          end if;
 
-         --  A Loop_Entry that applies to a given loop statement shall not
+         --  A Loop_Entry that applies to a given loop statement must not
          --  appear within a body of accept statement, if this construct is
          --  itself enclosed by the given loop statement.
 
@@ -4074,10 +4073,8 @@ package body Sem_Attr is
 
             if Ekind (Scop) = E_Loop and then Scop = Loop_Id then
                exit;
-
             elsif Ekind_In (Scop, E_Block, E_Loop, E_Return_Statement) then
                null;
-
             else
                Error_Attr
                  ("attribute % cannot appear in body or accept statement", N);
@@ -4101,14 +4098,28 @@ package body Sem_Attr is
             null;
 
          elsif Present (Enclosing_Loop)
-                 and then Entity (Identifier (Enclosing_Loop)) /= Loop_Id
+           and then Entity (Identifier (Enclosing_Loop)) /= Loop_Id
          then
-            Error_Attr_P ("prefix of attribute % that applies to "
-              & "outer loop must denote an entity");
+            Error_Attr_P
+              ("prefix of attribute % that applies to "
+               & "outer loop must denote an entity");
 
          elsif Is_Potentially_Unevaluated (P) then
-            Error_Attr_P ("prefix of attribute % that is potentially "
-              & "unevaluated must denote an entity");
+            Error_Attr_P
+              ("prefix of attribute % that is potentially "
+               & "unevaluated must denote an entity");
+         end if;
+
+         --  Finally, if the Loop_Entry attribute appears within a pragma
+         --  that is ignored, we replace P'Loop_Entity by P to avoid useless
+         --  generation of the loop entity variable. Note that in this case
+         --  the expression won't be executed anyway, and this substitution
+         --  keeps types happy!
+
+         --  We should really do this in the expander, but it's easier here
+
+         if Is_Ignored (Enclosing_Pragma) then
+            Rewrite (N, Relocate_Node (P));
          end if;
       end Loop_Entry;
 
index 072383e..b2544d6 100644 (file)
@@ -14669,6 +14669,7 @@ package body Sem_Util is
 
       return Name;
    end Original_Aspect_Name;
+
    --------------------------------------
    -- Original_Corresponding_Operation --
    --------------------------------------
index 176be21..cbe774f 100644 (file)
@@ -6,7 +6,7 @@
  *                                                                          *
  *                         Asm Implementation File                          *
  *                                                                          *
- *           Copyright (C) 2013, Free Software Foundation, Inc.             *
+ *           Copyright (C) 2014, Free Software Foundation, Inc.             *
  *                                                                          *
  * GNAT is free software;  you can  redistribute it  and/or modify it under *
  * terms of the  GNU General Public License as published  by the Free Soft- *
@@ -49,7 +49,7 @@
    sequences.  The general idea is to establish CFA as sigcontext->sc_pregs
    and state where to find the registers as offsets from there.
 
-   As of today, we support a single stub, providing CFI info for common
+   As of today, we support a stub providing CFI info for common
    registers (GPRs, LR, ...). We might need variants with support for floating
    point or altivec registers as well at some point.
 
@@ -75,7 +75,7 @@
 
 extern void __gnat_sigtramp_common
 (int signo, void *siginfo, void *sigcontext,
sighandler_t * handler, void * sc_pregs);
__sigtramphandler_t * handler, void * sc_pregs);
 
 
 /* -------------------------------------
@@ -85,11 +85,11 @@ extern void __gnat_sigtramp_common
    We enforce optimization to minimize the overhead of the extra layer.  */
 
 void __gnat_sigtramp (int signo, void *si, void *sc,
-                     sighandler_t * handler)
+                     __sigtramphandler_t * handler)
      __attribute__((optimize(2)));
 
 void __gnat_sigtramp (int signo, void *si, void *sc,
-                     sighandler_t * handler)
+                     __sigtramphandler_t * handler)
 {
   struct sigcontext * sctx = (struct sigcontext *) sc;
 
index 0432b08..ff2f0a8 100644 (file)
@@ -6,7 +6,7 @@
  *                                                                          *
  *                         Asm Implementation File                          *
  *                                                                          *
- *         Copyright (C) 2011-2013, Free Software Foundation, Inc.          *
+ *         Copyright (C) 2011-2014, Free Software Foundation, Inc.          *
  *                                                                          *
  * GNAT is free software;  you can  redistribute it  and/or modify it under *
  * terms of the  GNU General Public License as published  by the Free Soft- *
@@ -49,7 +49,7 @@
    sequences.  The general idea is to establish CFA as sigcontext->sc_pregs
    and state where to find the registers as offsets from there.
 
-   As of today, we support a single stub, providing CFI info for common
+   As of today, we support a stub providing CFI info for common
    registers (GPRs, LR, ...). We might need variants with support for floating
    point or altivec registers as well at some point.
 
@@ -75,7 +75,7 @@
 
 extern void __gnat_sigtramp_common
 (int signo, void *siginfo, void *sigcontext,
sighandler_t * handler, void * sc_pregs);
__sigtramphandler_t * handler, void * sc_pregs);
 
 
 /* -------------------------------------
@@ -85,11 +85,11 @@ extern void __gnat_sigtramp_common
    We enforce optimization to minimize the overhead of the extra layer.  */
 
 void __gnat_sigtramp (int signo, void *si, void *sc,
-                     sighandler_t * handler)
+                     __sigtramphandler_t * handler)
      __attribute__((optimize(2)));
 
 void __gnat_sigtramp (int signo, void *si, void *sc,
-                     sighandler_t * handler)
+                     __sigtramphandler_t * handler)
 {
   struct sigcontext * sctx = (struct sigcontext *) sc;