[Ada] Remove duplicated routines for getting homonym number
authorPiotr Trojanek <trojanek@adacore.com>
Thu, 19 Sep 2019 08:13:25 +0000 (08:13 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 19 Sep 2019 08:13:25 +0000 (08:13 +0000)
Routines Homonym_Number and Get_Homonym_Number were exactly the same,
except for minor style differences. Keep the one in Exp_Util; remove the
one in Exp_Dbug. No test attached, because semantics is unaffected.

2019-09-19  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

* exp_dbug.ads, exp_dbug.adb (Get_Homonym_Number): Remove.
(Append_Homonym_Number): Use Homonym_Number instead of
Get_Homonym_Number.
* exp_util.ads, exp_util.adb (Homonym_Number): Mirror style of
the removed Get_Homonym_Number routine, i.e. initialize local
objects at declaration and refine the type of result.
* sem_util.adb (Add_Homonym_Suffix): Use Homonym_Number instead
of Get_Homonym_Number.

From-SVN: r275940

gcc/ada/ChangeLog
gcc/ada/exp_dbug.adb
gcc/ada/exp_dbug.ads
gcc/ada/exp_util.adb
gcc/ada/exp_util.ads
gcc/ada/sem_util.adb

index 2caf52da59dc3888cf666662729b953c6f7f2f05..1f3128e178a13f85cbc5c46be83ad6a624f4ef53 100644 (file)
@@ -1,3 +1,14 @@
+2019-09-19  Piotr Trojanek  <trojanek@adacore.com>
+
+       * exp_dbug.ads, exp_dbug.adb (Get_Homonym_Number): Remove.
+       (Append_Homonym_Number): Use Homonym_Number instead of
+       Get_Homonym_Number.
+       * exp_util.ads, exp_util.adb (Homonym_Number): Mirror style of
+       the removed Get_Homonym_Number routine, i.e. initialize local
+       objects at declaration and refine the type of result.
+       * sem_util.adb (Add_Homonym_Suffix): Use Homonym_Number instead
+       of Get_Homonym_Number.
+
 2019-09-19  Ed Schonberg  <schonberg@adacore.com>
 
        * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Simplify
index c2d2318d977d508fe7b2894ba9627bfb4f0ee668..5f650984fd0db397eb9fb62fe8044c3dd234a9a0 100644 (file)
@@ -27,6 +27,7 @@ with Alloc;
 with Atree;    use Atree;
 with Debug;    use Debug;
 with Einfo;    use Einfo;
+with Exp_Util; use Exp_Util;
 with Nlists;   use Nlists;
 with Nmake;    use Nmake;
 with Opt;      use Opt;
@@ -224,7 +225,7 @@ package body Exp_Dbug is
             Homonym_Numbers (Homonym_Len) := '_';
          end if;
 
-         Add_Nat_To_H (Get_Homonym_Number (E));
+         Add_Nat_To_H (Homonym_Number (E));
       end if;
    end Append_Homonym_Number;
 
@@ -1054,26 +1055,6 @@ package body Exp_Dbug is
       end loop;
    end Build_Subprogram_Instance_Renamings;
 
-   ------------------------
-   -- Get_Homonym_Number --
-   ------------------------
-
-   function Get_Homonym_Number (E : Entity_Id) return Pos is
-      H  : Entity_Id := Homonym (E);
-      Nr : Pos := 1;
-
-   begin
-      while Present (H) loop
-         if Scope (H) = Scope (E) then
-            Nr := Nr + 1;
-         end if;
-
-         H := Homonym (H);
-      end loop;
-
-      return Nr;
-   end Get_Homonym_Number;
-
    ------------------------------------
    -- Get_Secondary_DT_External_Name --
    ------------------------------------
index ac40a40d9fa9ade06b973e7b6c9555fd2bd83039..93b978378f9e5d4b4f4ad94bfc0c6eed654c80ce 100644 (file)
@@ -460,10 +460,6 @@ package Exp_Dbug is
    -- Subprograms for Handling Qualification --
    --------------------------------------------
 
-   function Get_Homonym_Number (E : Entity_Id) return Pos;
-   --  Return the homonym number for E, which is its position in the homonym
-   --  chain starting at 1. This is exported for use in GNATprove.
-
    procedure Qualify_Entity_Names (N : Node_Id);
    --  Given a node N, that represents a block, subprogram body, or package
    --  body or spec, or protected or task type, sets a fully qualified name
index 06f5cc314be7cad8d8e06f48f6038e36c7c80c90..905e3f4ddea5c22b202bcb56a81e09c67a2f2c4b 100644 (file)
@@ -6795,13 +6795,11 @@ package body Exp_Util is
    -- Homonym_Number --
    --------------------
 
-   function Homonym_Number (Subp : Entity_Id) return Nat is
-      Count : Nat;
-      Hom   : Entity_Id;
+   function Homonym_Number (Subp : Entity_Id) return Pos is
+      Hom   : Entity_Id := Homonym (Subp);
+      Count : Pos := 1;
 
    begin
-      Count := 1;
-      Hom := Homonym (Subp);
       while Present (Hom) loop
          if Scope (Hom) = Scope (Subp) then
             Count := Count + 1;
index ab33e8ddb5954feaec40543168cea4b879b5ceb9..02fb233f97c9fd72d6c010b392aa31154d246a81 100644 (file)
@@ -734,7 +734,7 @@ package Exp_Util is
    --  pragmas at the start of the package declaration contains
    --    pragma Annotate (GNATprove, External_Axiomatization);
 
-   function Homonym_Number (Subp : Entity_Id) return Nat;
+   function Homonym_Number (Subp : Entity_Id) return Pos;
    --  Here subp is the entity for a subprogram. This routine returns the
    --  homonym number used to disambiguate overloaded subprograms in the same
    --  scope (the number is used as part of constructed names to make sure that
index 1bcda5fa172676893e6899e8bd9e7524d5ffa6fb..b276fd2bb897a90711700d37eb857df72e66ea21 100644 (file)
@@ -33,7 +33,6 @@ with Elists;   use Elists;
 with Errout;   use Errout;
 with Erroutc;  use Erroutc;
 with Exp_Ch11; use Exp_Ch11;
-with Exp_Dbug; use Exp_Dbug;
 with Exp_Util; use Exp_Util;
 with Fname;    use Fname;
 with Freeze;   use Freeze;
@@ -26314,7 +26313,7 @@ package body Sem_Util is
 
          if Has_Homonym (U) then
             declare
-               N : constant Pos := Get_Homonym_Number (U);
+               N : constant Pos := Homonym_Number (U);
                S : constant String := N'Img;
             begin
                if N > 1 then