public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-1378] ada: Only build access-to-subprogram wrappers when expander is active
@ 2023-05-30  7:17 Marc Poulhi?s
  0 siblings, 0 replies; only message in thread
From: Marc Poulhi?s @ 2023-05-30  7:17 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:3fd3d3d0fa094c5d79c2e4e3c44cdd22b42d6ca4

commit r14-1378-g3fd3d3d0fa094c5d79c2e4e3c44cdd22b42d6ca4
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Wed Apr 12 00:19:23 2023 +0200

    ada: Only build access-to-subprogram wrappers when expander is active
    
    For access-to-subprogram types with Pre/Post aspects we create a wrapper
    routine that evaluates these aspects. Spec of this wrapper was created
    always, while its body was only created when expansion was enabled.
    
    Now we only create these wrappers when expansion is enabled. In
    particular, we don't create them in GNATprove mode; instead, GNATprove
    picks the Pre/Post expressions directly from the aspects.
    
    gcc/ada/
    
            * exp_ch3.adb
            (Build_Access_Subprogram_Wrapper_Body): Build wrapper body if requested
            by routine that builds wrapper spec.
            * sem_ch3.adb
            (Analyze_Full_Type_Declaration): Only build wrapper when expander is
            active.
            (Build_Access_Subprogram_Wrapper):
            Remove special-case for GNATprove.

Diff:
---
 gcc/ada/exp_ch3.adb |  4 ----
 gcc/ada/sem_ch3.adb | 12 ++----------
 2 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb
index 5f651bacafb..f8c99470dd7 100644
--- a/gcc/ada/exp_ch3.adb
+++ b/gcc/ada/exp_ch3.adb
@@ -583,10 +583,6 @@ package body Exp_Ch3 is
       Ptr       : Entity_Id;
 
    begin
-      if not Expander_Active then
-         return;
-      end if;
-
       --  Create List of actuals for indirect call. The last parameter of the
       --  subprogram declaration is the access value for the indirect call.
 
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index f360be810b4..29733e9d31f 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -3224,6 +3224,7 @@ package body Sem_Ch3 is
 
                if Ada_Version >= Ada_2022
                  and then Present (Aspect_Specifications (N))
+                 and then Expander_Active
                then
                   Build_Access_Subprogram_Wrapper (N);
                end if;
@@ -6915,16 +6916,7 @@ package body Sem_Ch3 is
       --  may be handled as a dispatching operation and erroneously registered
       --  in a dispatch table.
 
-      if not GNATprove_Mode then
-         Append_Freeze_Action (Id, New_Decl);
-
-      --  Under GNATprove mode there is no such problem but we do not declare
-      --  it in the freezing actions since they are not analyzed under this
-      --  mode.
-
-      else
-         Insert_After (Decl, New_Decl);
-      end if;
+      Append_Freeze_Action (Id, New_Decl);
 
       Set_Access_Subprogram_Wrapper (Designated_Type (Id), Subp);
       Build_Access_Subprogram_Wrapper_Body (Decl, New_Decl);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-05-30  7:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-30  7:17 [gcc r14-1378] ada: Only build access-to-subprogram wrappers when expander is active Marc Poulhi?s

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).