diff mbox series

[COMMITTED] ada: Move Init_Proc_Level_Formal from Exp_Ch3 to Exp_Util

Message ID 20240513083649.166413-1-poulhies@adacore.com
State New
Headers show
Series [COMMITTED] ada: Move Init_Proc_Level_Formal from Exp_Ch3 to Exp_Util | expand

Commit Message

Marc Poulhiès May 13, 2024, 8:36 a.m. UTC
From: Eric Botcazou <ebotcazou@adacore.com>

This makes it possible to remove clauses from the Accessibility package.

gcc/ada/

	* accessibility.adb: Remove clauses for Exp_Ch3.
	* exp_ch3.ads (Init_Proc_Level_Formal): Move declaration to...
	* exp_ch3.adb (Init_Proc_Level_Formal): Move body to...
	* exp_util.ads (Init_Proc_Level_Formal): ...here.
	(Inside_Init_Proc): Alphabetize.
	* exp_util.adb (Init_Proc_Level_Formal): ...here.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/accessibility.adb |  1 -
 gcc/ada/exp_ch3.adb       | 25 -------------------------
 gcc/ada/exp_ch3.ads       |  5 -----
 gcc/ada/exp_util.adb      | 26 ++++++++++++++++++++++++++
 gcc/ada/exp_util.ads      | 10 +++++++---
 5 files changed, 33 insertions(+), 34 deletions(-)
diff mbox series

Patch

diff --git a/gcc/ada/accessibility.adb b/gcc/ada/accessibility.adb
index 75ab9667436..bb81ae49f41 100644
--- a/gcc/ada/accessibility.adb
+++ b/gcc/ada/accessibility.adb
@@ -32,7 +32,6 @@  with Elists;         use Elists;
 with Errout;         use Errout;
 with Einfo.Utils;    use Einfo.Utils;
 with Exp_Atag;       use Exp_Atag;
-with Exp_Ch3;        use Exp_Ch3;
 with Exp_Ch7;        use Exp_Ch7;
 with Exp_Tss;        use Exp_Tss;
 with Exp_Util;       use Exp_Util;
diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb
index f9989373a62..2477a221c96 100644
--- a/gcc/ada/exp_ch3.adb
+++ b/gcc/ada/exp_ch3.adb
@@ -1462,31 +1462,6 @@  package body Exp_Ch3 is
       return Agg;
    end Build_Equivalent_Record_Aggregate;
 
-   ----------------------------
-   -- Init_Proc_Level_Formal --
-   ----------------------------
-
-   function Init_Proc_Level_Formal (Proc : Entity_Id) return Entity_Id is
-      Form : Entity_Id;
-   begin
-      --  Move through the formals of the initialization procedure Proc to find
-      --  the extra accessibility level parameter associated with the object
-      --  being initialized.
-
-      Form := First_Formal (Proc);
-      while Present (Form) loop
-         if Chars (Form) = Name_uInit_Level then
-            return Form;
-         end if;
-
-         Next_Formal (Form);
-      end loop;
-
-      --  No formal was found, return Empty
-
-      return Empty;
-   end Init_Proc_Level_Formal;
-
    -------------------------------
    -- Build_Initialization_Call --
    -------------------------------
diff --git a/gcc/ada/exp_ch3.ads b/gcc/ada/exp_ch3.ads
index 5a4b1133916..1e0f76ae18f 100644
--- a/gcc/ada/exp_ch3.ads
+++ b/gcc/ada/exp_ch3.ads
@@ -146,11 +146,6 @@  package Exp_Ch3 is
    --  type is valid only when Normalize_Scalars or Initialize_Scalars is
    --  active, or if N is the node for a 'Invalid_Value attribute node.
 
-   function Init_Proc_Level_Formal (Proc : Entity_Id) return Entity_Id;
-   --  Fetch the extra formal from an initalization procedure "proc"
-   --  corresponding to the level of the object being initialized. When none
-   --  is present Empty is returned.
-
    procedure Init_Secondary_Tags
      (Typ            : Entity_Id;
       Target         : Node_Id;
diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
index efc9ef0ed38..1dcfb61b333 100644
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -7267,6 +7267,32 @@  package body Exp_Util is
       return False;
    end In_Unconditional_Context;
 
+   ----------------------------
+   -- Init_Proc_Level_Formal --
+   ----------------------------
+
+   function Init_Proc_Level_Formal (Proc : Entity_Id) return Entity_Id is
+      Form : Entity_Id;
+
+   begin
+      --  Go through the formals of the initialization procedure Proc to find
+      --  the extra accessibility level parameter associated with the object
+      --  being initialized.
+
+      Form := First_Formal (Proc);
+      while Present (Form) loop
+         if Chars (Form) = Name_uInit_Level then
+            return Form;
+         end if;
+
+         Next_Formal (Form);
+      end loop;
+
+      --  No formal was found, return Empty
+
+      return Empty;
+   end Init_Proc_Level_Formal;
+
    -------------------
    -- Insert_Action --
    -------------------
diff --git a/gcc/ada/exp_util.ads b/gcc/ada/exp_util.ads
index b968f448bba..3fd3a151ddb 100644
--- a/gcc/ada/exp_util.ads
+++ b/gcc/ada/exp_util.ads
@@ -724,9 +724,6 @@  package Exp_Util is
    --  chain, counting only entries in the current scope. If an entity is not
    --  overloaded, the returned number will be one.
 
-   function Inside_Init_Proc return Boolean;
-   --  Returns True if current scope is within an init proc
-
    function In_Library_Level_Package_Body (Id : Entity_Id) return Boolean;
    --  Given an arbitrary entity, determine whether it appears at the library
    --  level of a package body.
@@ -737,6 +734,13 @@  package Exp_Util is
    --  unconditionally executed, i.e. it is not within a loop or a conditional
    --  or a case statement etc.
 
+   function Init_Proc_Level_Formal (Proc : Entity_Id) return Entity_Id;
+   --  Return the extra formal of an initialization procedure corresponding to
+   --  the level of the object being initialized, or Empty if none is present.
+
+   function Inside_Init_Proc return Boolean;
+   --  Return True if current scope is within an init proc
+
    function Integer_Type_For (S : Uint; Uns : Boolean) return Entity_Id;
    --  Return a suitable standard integer type containing at least S bits and
    --  of the signedness given by Uns. See also Small_Integer_Type_For.