[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 29 Oct 2012 10:54:45 +0000 (11:54 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 29 Oct 2012 10:54:45 +0000 (11:54 +0100)
2012-10-29  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Derive_Progenitor_Subprograms): Disable small
optimization in generic formal types.

2012-10-29  Robert Dewar  <dewar@adacore.com>

* exp_ch9.adb, exp_ch3.adb: Add comments.
* sem_prag.adb: Minor reformatting.

From-SVN: r192926

gcc/ada/ChangeLog
gcc/ada/exp_ch3.adb
gcc/ada/exp_ch9.adb
gcc/ada/sem_ch3.adb
gcc/ada/sem_disp.adb
gcc/ada/sem_prag.adb

index 7bc26c6a8a1127760e06f6d217ba7771d99d081c..3d26adaaf7023df43182cff4bb1f4e2d5a963404 100644 (file)
@@ -1,3 +1,13 @@
+2012-10-29  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch3.adb (Derive_Progenitor_Subprograms): Disable small
+       optimization in generic formal types.
+
+2012-10-29  Robert Dewar  <dewar@adacore.com>
+
+       * exp_ch9.adb, exp_ch3.adb: Add comments.
+       * sem_prag.adb: Minor reformatting.
+
 2012-10-29  Tristan Gingold  <gingold@adacore.com>
 
        * bindgen.adb (Gen_Output_File_Ada): Do not emit declaration for
index 9911d213bf2351bf5bad14a7f5185a63dce07a03..5df52c1f510661b810169abab5defc00d08aec4a 100644 (file)
@@ -1537,10 +1537,9 @@ package body Exp_Ch3 is
             Append_To (Args, Make_Identifier (Loc, Name_uMaster));
          end if;
 
-         if not Restricted_Profile then
-
-            --  No _Chain for restricted profile
+         --  Add _Chain (not done in the restricted profile because ???)
 
+         if not Restricted_Profile then
             Append_To (Args, Make_Identifier (Loc, Name_uChain));
          end if;
 
index b39484fc1ef12ee96d1c115e345a5f67d4e777e6..94a71ff4c1817d62312d40f44adece8a3d8ba670 100644 (file)
@@ -911,7 +911,7 @@ package body Exp_Ch9 is
    --  Start of processing for Build_Activation_Chain_Entity
 
    begin
-      --  Activation chain is never used in restricted profile
+      --  Activation chain is never used in restricted profile (why not???)
 
       if Restricted_Profile then
          return;
@@ -919,8 +919,7 @@ package body Exp_Ch9 is
 
       Find_Enclosing_Context (N, Context, Context_Id, Decls);
 
-      --  If an activation chain entity has not been declared already, create
-      --  one.
+      --  If activation chain entity has not been declared already, create one
 
       if Nkind (Context) = N_Extended_Return_Statement
         or else No (Activation_Chain_Entity (Context))
index 818bfd083cd1ae5c16d8b8a9eebe6cabf66dd23d..bb3937ea7e1e7079b22b2d5e9eb624b2d19c1805 100644 (file)
@@ -12804,16 +12804,18 @@ package body Sem_Ch3 is
       --  done here because interfaces must be visible in the partial and
       --  private view (RM 7.3(7.3/2)).
 
-      --  Small optimization: This work is only required if the parent is
-      --  abstract. If the tagged type is not abstract, it cannot have
-      --  abstract primitives (the only entities in the list of primitives of
-      --  non-abstract tagged types that can reference abstract primitives
-      --  through its Alias attribute are the internal entities that have
-      --  attribute Interface_Alias, and these entities are generated later
-      --  by Add_Internal_Interface_Entities).
+      --  Small optimization: This work is only required if the parent
+      --  is abstract or a generic formal type. If the tagged type is not
+      --  abstract, it cannot have abstract primitives (the only entities
+      --  in the list of primitives of non-abstract tagged types that can
+      --  reference abstract primitives through its Alias attribute are the
+      --  internal entities that have attribute Interface_Alias, and these
+      --  entities are generated later by Add_Internal_Interface_Entities).
+      --  Need explanation for the generic case ???
 
       if In_Private_Part (Current_Scope)
-        and then Is_Abstract_Type (Parent_Type)
+        and then (Is_Abstract_Type (Parent_Type)
+                    or else Is_Generic_Type (Parent_Type))
       then
          Elmt := First_Elmt (Primitive_Operations (Tagged_Type));
          while Present (Elmt) loop
index 988a78f5781bc48c9626ee4017c712a6233ef045..05eb5022e9120035c89d0c47de625f5d2e63f89a 100644 (file)
@@ -840,7 +840,7 @@ package body Sem_Disp is
       Tagged_Type := Find_Dispatching_Type (Subp);
 
       --  Ada 2005 (AI-345): Use the corresponding record (if available).
-      --  Required because primitives of concurrent types are be attached
+      --  Required because primitives of concurrent types are attached
       --  to the corresponding record (not to the concurrent type).
 
       if Ada_Version >= Ada_2005
index 1b49eebbe7ea26d5553b00a3c60788da6ab9b672..af5506a0e136497f233f4155f85814f5feb1800f 100644 (file)
@@ -6763,11 +6763,13 @@ package body Sem_Prag is
          -- Assert/Assert_And_Cut --
          ---------------------------
 
-         --  pragma Assert ([Check =>] Boolean_EXPRESSION
-         --                 [, [Message =>] Static_String_EXPRESSION]);
+         --  pragma Assert
+         --    (   [Check => ]  Boolean_EXPRESSION
+         --     [, [Message =>] Static_String_EXPRESSION]);
 
-         --  pragma Assert_And_Cut ([Check =>] Boolean_EXPRESSION
-         --                         [, [Message =>] Static_String_EXPRESSION]);
+         --  pragma Assert_And_Cut
+         --    (   [Check => ]  Boolean_EXPRESSION
+         --     [, [Message =>] Static_String_EXPRESSION]);
 
          when Pragma_Assert | Pragma_Assert_And_Cut => Assert : declare
             Expr : Node_Id;
@@ -6776,7 +6778,6 @@ package body Sem_Prag is
          begin
             if Prag_Id = Pragma_Assert then
                Ada_2005_Pragma;
-
             else -- Pragma_Assert_And_Cut
                GNAT_Pragma;
             end if;