From: Piotr Trojanek Date: Thu, 25 Nov 2021 13:54:17 +0000 (+0100) Subject: [Ada] Cleanup insertion of single freezing actions X-Git-Tag: basepoints/gcc-13~2575 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4b5ab01946554dabfc68090ae114182c96caf13;p=thirdparty%2Fgcc.git [Ada] Cleanup insertion of single freezing actions gcc/ada/ * exp_util.adb (Append_Freeze_Action): Tune whitespace to make the code look similar to Append_Freeze_Actions, which takes a List_Id. * sem_ch6.adb (Analyze_Return_Type): Cleanup with Append_Freeze_Action. * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Likewise. * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Likewise. * contracts.adb (Add_Indirect_Call_Wrapper): Remove extra call to Ensure_Freeze_Node. (Add_Call_Helper): Likewise. * freeze.adb (Check_Inherited_Conditions): Likewise. (Attribute_Renaming): Likewise. * sem_ch8.adb: Likewise. --- diff --git a/gcc/ada/contracts.adb b/gcc/ada/contracts.adb index 2726486d2002..98f469bf5b7b 100644 --- a/gcc/ada/contracts.adb +++ b/gcc/ada/contracts.adb @@ -3761,7 +3761,6 @@ package body Contracts is ICW_Decl := Build_ICW_Decl; - Ensure_Freeze_Node (Tagged_Type); Append_Freeze_Action (Tagged_Type, ICW_Decl); Analyze (ICW_Decl); @@ -4034,7 +4033,6 @@ package body Contracts is -- Add the helper to the freezing actions of the tagged type - Ensure_Freeze_Node (Tagged_Type); Append_Freeze_Action (Tagged_Type, Helper_Decl); Analyze (Helper_Decl); diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index 9a0bbb45bb22..828f5a5d17a2 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -580,8 +580,7 @@ package body Exp_Ch3 is -- Place body in list of freeze actions for the type. - Ensure_Freeze_Node (Type_Id); - Append_Freeze_Actions (Type_Id, New_List (Body_Node)); + Append_Freeze_Action (Type_Id, Body_Node); end Build_Access_Subprogram_Wrapper_Body; --------------------------- diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb index 1bba0595741e..0aa7937b211f 100644 --- a/gcc/ada/exp_util.adb +++ b/gcc/ada/exp_util.adb @@ -458,7 +458,6 @@ package body Exp_Util is else Append (N, Actions (Fnode)); end if; - end Append_Freeze_Action; --------------------------- diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index 6804c046b462..bd03ffa5844f 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -2044,9 +2044,8 @@ package body Freeze is -- node of the record type declaration to ensure that it will -- override the internal primitive built by Derive_Subprogram. - Ensure_Freeze_Node (R); - if Late_Overriding then + Ensure_Freeze_Node (R); Insert_Before_And_Analyze (Freeze_Node (R), DTW_Decl); else Append_Freeze_Action (R, DTW_Decl); diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index 02066e470c89..6b25a6aee220 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -6815,8 +6815,7 @@ package body Sem_Ch3 is -- in a dispatch table. if not GNATprove_Mode then - Ensure_Freeze_Node (Id); - Append_Freeze_Actions (Id, New_List (New_Decl)); + 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 diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index 9c21732e5f9a..fa4de4cf76a4 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -2715,13 +2715,11 @@ package body Sem_Ch6 is end if; else - Ensure_Freeze_Node (Typ); - declare IR : constant Node_Id := Make_Itype_Reference (Sloc (N)); begin Set_Itype (IR, Etype (Designator)); - Append_Freeze_Actions (Typ, New_List (IR)); + Append_Freeze_Action (Typ, IR); end; end if; diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb index e3a4881cf6cd..34f7ac15e8a9 100644 --- a/gcc/ada/sem_ch8.adb +++ b/gcc/ada/sem_ch8.adb @@ -4689,7 +4689,6 @@ package body Sem_Ch8 is if Is_Tagged_Type (Etype (P)) and then In_Open_Scopes (Scope (Etype (P))) then - Ensure_Freeze_Node (Etype (P)); Append_Freeze_Action (Etype (P), Body_Node); else Rewrite (N, Body_Node);