[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 1 Aug 2014 10:11:16 +0000 (12:11 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 1 Aug 2014 10:11:16 +0000 (12:11 +0200)
2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb (Is_Hidden_Non_Overridden_Subprogram): Remove the
assertion check as the attribute is defined for all entities.
(Set_Is_Hidden_Non_Overridden_Subprogram): Remove the assertion
check as the attribute is defined for all entities.
* einfo.ads Update the documentation of attribute
Is_Hidden_Non_Overridden_Subprogram.
* sem_ch7.adb (Install_Package_Entity): No need to check the
entity kind of the Id.
* sem_ch13.adb (Hide_Matching_Homograph): Update the comment on
usage. Ensure that the homographs are of the same entity kind
and not fully conformant.
(Hide_Non_Overridden_Subprograms): Update the comment on usage.

2014-08-01  Robert Dewar  <dewar@adacore.com>

* inline.adb: Minor code reorganization.
* sem_ch12.adb, s-tasdeb.ads: Minor reformatting.

From-SVN: r213445

gcc/ada/ChangeLog
gcc/ada/einfo.adb
gcc/ada/einfo.ads
gcc/ada/inline.adb
gcc/ada/s-tasdeb.ads
gcc/ada/sem_ch12.adb
gcc/ada/sem_ch13.adb
gcc/ada/sem_ch7.adb

index cd231664c4a188fd6f13b3f1180e6b47561ea3e9..444d4f75f3c1710ba277c1dba3978b0052298d74 100644 (file)
@@ -1,3 +1,23 @@
+2014-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb (Is_Hidden_Non_Overridden_Subprogram): Remove the
+       assertion check as the attribute is defined for all entities.
+       (Set_Is_Hidden_Non_Overridden_Subprogram): Remove the assertion
+       check as the attribute is defined for all entities.
+       * einfo.ads Update the documentation of attribute
+       Is_Hidden_Non_Overridden_Subprogram.
+       * sem_ch7.adb (Install_Package_Entity): No need to check the
+       entity kind of the Id.
+       * sem_ch13.adb (Hide_Matching_Homograph): Update the comment on
+       usage. Ensure that the homographs are of the same entity kind
+       and not fully conformant.
+       (Hide_Non_Overridden_Subprograms): Update the comment on usage.
+
+2014-08-01  Robert Dewar  <dewar@adacore.com>
+
+       * inline.adb: Minor code reorganization.
+       * sem_ch12.adb, s-tasdeb.ads: Minor reformatting.
+
 2014-08-01  Robert Dewar  <dewar@adacore.com>
 
        * inline.adb, s-os_lib.ads: Minor reformatting.
index 7e0eaaaf0fe9404104b9087fa9de4d1d720377fd..3b5219bad58492db32efe5ee566e559b6e15957e 100644 (file)
@@ -2068,7 +2068,6 @@ package body Einfo is
 
    function Is_Hidden_Non_Overridden_Subprogram (Id : E) return B is
    begin
-      pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
       return Flag2 (Id);
    end Is_Hidden_Non_Overridden_Subprogram;
 
@@ -4850,7 +4849,6 @@ package body Einfo is
 
    procedure Set_Is_Hidden_Non_Overridden_Subprogram (Id : E; V : B := True) is
    begin
-      pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
       Set_Flag2 (Id, V);
    end Set_Is_Hidden_Non_Overridden_Subprogram;
 
index 11f61222883bc8f3e5cdddbf60aa02aa2f17a41a..18de39f100b36ee144d8b3022a1e7359defea576 100644 (file)
@@ -2423,9 +2423,9 @@ package Einfo is
 --       Private_Declaration in sem_ch7).
 
 --    Is_Hidden_Non_Overridden_Subprogram (Flag2)
---       Defined in all entities. Set for implicitly declared non-generic
---       subprograms that require overriding or are null procedures, and are
---       hidden by a non-conformant homograph with the same characteristics
+--       Defined in all entities. Set for implicitly declared subprograms
+--       that require overriding or are null procedures, and are hidden by
+--       a non-fully conformant homograph with the same characteristics
 --       (Ada RM 8.3 12.3/2).
 
 --    Is_Hidden_Open_Scope (Flag171)
index 36631c2d68fc2c4618dad270c276e40c19381fc5..c2865ea93e5d79757f8c934ca91030f4cd10bf3b 100644 (file)
@@ -1239,11 +1239,10 @@ package body Inline is
         and then Msg (Msg'First .. Msg'First + 12) = "cannot inline"
       then
          declare
-            Len1 : constant Positive := 13;
-            --  Length of "cannot inline"
-
-            Len2 : constant Positive := 31;
-            --  Length of "info: no contextual analysis of"
+            Len1 : constant Positive :=
+              String (String'("cannot inline"))'Length;
+            Len2 : constant Positive :=
+              String (String'("info: no contextual analysis of"))'Length;
 
             New_Msg : String (1 .. Msg'Length + Len2 - Len1);
 
index 4302fde526694dd5609bb9564a4df56265c30131..e0bd0c1e01a5bac89ce13c497b56b7df818d552c 100644 (file)
@@ -153,13 +153,13 @@ package System.Tasking.Debug is
      (Dependent    : Task_Id;
       Parent       : Task_Id;
       Master_Level : Integer);
-   --  Indicate to Valgrind/Helgrind that the master of Dependent
-   --  is Parent + Master_Level.
+   --  Indicate to Valgrind/Helgrind that the master of Dependent is
+   --  Parent + Master_Level.
 
    procedure Master_Completed_Hook
      (Self_ID      : Task_Id;
       Master_Level : Integer);
-   --  Indicate to Valgrind/Helgrind that Self_ID has completed
-   --  the master Master_Level.
+   --  Indicate to Valgrind/Helgrind that Self_ID has completed the master
+   --  Master_Level.
 
 end System.Tasking.Debug;
index 3c783764b5d196d9338bda7cd4aa6083d755ebab..6bcc3a10a97df05b483898234424fa785be84d51 100644 (file)
@@ -1674,10 +1674,9 @@ package body Sem_Ch12 is
                          Present
                            (Get_First_Parent_With_Ext_Axioms_For_Entity
                               (Defining_Entity (Analyzed_Formal)))
-                       and then Ekind (Defining_Entity (Analyzed_Formal))
-                          = E_Function
+                       and then Ekind (Defining_Entity (Analyzed_Formal)) =
+                                                                    E_Function
                      then
-
                         --  If actual is an entity (function or operator),
                         --  build wrapper for it.
 
@@ -1700,8 +1699,8 @@ package body Sem_Ch12 is
                         --  Ditto if formal is an operator with a default.
 
                         elsif Box_Present (Formal)
-                           and then Nkind (Defining_Entity (Analyzed_Formal))
-                             = N_Defining_Operator_Symbol
+                           and then Nkind (Defining_Entity (Analyzed_Formal)) =
+                                                    N_Defining_Operator_Symbol
                         then
                            Append_To (Assoc,
                              Build_Wrapper
index e0222b744a78366479151acbf3594ed3966883fa..06d57521aef69854598df5ff498d0fd64cbd8b06 100644 (file)
@@ -9936,7 +9936,8 @@ package body Sem_Ch13 is
    procedure Freeze_Entity_Checks (N : Node_Id) is
       procedure Hide_Non_Overridden_Subprograms (Typ : Entity_Id);
       --  Inspect the primitive operations of type Typ and hide all pairs of
-      --  implicitly declared non-overridden homographs (Ada RM 8.3 12.3/2).
+      --  implicitly declared non-overridden non-fully conformant homographs
+      --  (Ada RM 8.3 12.3/2).
 
       -------------------------------------
       -- Hide_Non_Overridden_Subprograms --
@@ -9947,9 +9948,9 @@ package body Sem_Ch13 is
            (Subp_Id    : Entity_Id;
             Start_Elmt : Elmt_Id);
          --  Inspect a list of primitive operations starting with Start_Elmt
-         --  and find matching implicitly declared non-overridden homographs
-         --  of Subp_Id. If found, all matches along with Subp_Id are hidden
-         --  from all visibility.
+         --  and find matching implicitly declared non-overridden non-fully
+         --  conformant homographs of Subp_Id. If found, all matches along
+         --  with Subp_Id are hidden from all visibility.
 
          function Is_Non_Overridden_Or_Null_Procedure
            (Subp_Id : Entity_Id) return Boolean;
@@ -9973,11 +9974,12 @@ package body Sem_Ch13 is
                Prim := Node (Prim_Elmt);
 
                --  The current primitive is implicitly declared non-overridden
-               --  homograph of Subp_Id. Hide both subprograms from visibility.
+               --  non-fully conformant homograph of Subp_Id. Both subprograms
+               --  must be hidden from visibility.
 
                if Chars (Prim) = Chars (Subp_Id)
-                 and then Ekind (Prim) = Ekind (Subp_Id)
                  and then Is_Non_Overridden_Or_Null_Procedure (Prim)
+                 and then not Fully_Conformant (Prim, Subp_Id)
                then
                   Set_Is_Hidden_Non_Overridden_Subprogram (Prim);
                   Set_Is_Immediately_Visible              (Prim, False);
@@ -10034,8 +10036,8 @@ package body Sem_Ch13 is
       --  Start of processing for Hide_Non_Overridden_Subprograms
 
       begin
-         --  Inspect the list of primitives looking for a non-overriding
-         --  inherited null procedure.
+         --  Inspect the list of primitives looking for non-overridden
+         --  subprograms.
 
          if Present (Prim_Ops) then
             Prim_Elmt := First_Elmt (Prim_Ops);
@@ -10106,7 +10108,7 @@ package body Sem_Ch13 is
       --  abstract subprograms, null procedures and subprograms that require
       --  overriding. If this set contains fully conformat homographs, then one
       --  is chosen arbitrarily (already done during resolution), otherwise all
-      --  remaining non-conformant homographs must be hidden from visibility
+      --  remaining non-fully conformant homographs are hidden from visibility
       --  (Ada RM 8.3 12.3/2).
 
       if Is_Tagged_Type (E) then
index 28a8516a81d933d58802d7e46647b98542578bee..5f110ecc34e097a3f4b0ddbc495cf7a4bd8cffb1 100644 (file)
@@ -1986,9 +1986,7 @@ package body Sem_Ch7 is
          --  a tagged type back into visibility if they have non-conformant
          --  homographs (Ada RM 8.3 12.3/2).
 
-         elsif Ekind_In (Id, E_Function, E_Procedure)
-           and then Is_Hidden_Non_Overridden_Subprogram (Id)
-         then
+         elsif Is_Hidden_Non_Overridden_Subprogram (Id) then
             null;
 
          else