From 0f3dfe41cb296ff2a53b6b917aa10ff5a78c24fe Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Wed, 10 Nov 2021 12:41:19 +0100 Subject: [PATCH] [Ada] Replace low-level detection of subprograms with high-level wrapper gcc/ada/ * exp_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_elim.adb, sem_util.adb: Replace uses of Subprogram_Kind with Is_Subprogram. --- gcc/ada/exp_aggr.adb | 2 +- gcc/ada/sem_cat.adb | 2 +- gcc/ada/sem_ch10.adb | 2 +- gcc/ada/sem_ch12.adb | 2 +- gcc/ada/sem_elim.adb | 2 +- gcc/ada/sem_util.adb | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index f3d83a566ced..af39ba58e146 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -9248,7 +9248,7 @@ package body Exp_Aggr is when N_Object_Declaration => return not Constant_Present (C) - and then Ekind (Current_Scope) in Subprogram_Kind; + and then Is_Subprogram (Current_Scope); -- False for all other contexts diff --git a/gcc/ada/sem_cat.adb b/gcc/ada/sem_cat.adb index 92aa7ecadf52..6270b7c7aa55 100644 --- a/gcc/ada/sem_cat.adb +++ b/gcc/ada/sem_cat.adb @@ -807,7 +807,7 @@ package body Sem_Cat is end if; if not Is_Remote_Call_Interface (E) then - if Ekind (E) in Subprogram_Kind then + if Is_Subprogram (E) then Declaration := Unit_Declaration_Node (E); if Nkind (Declaration) in diff --git a/gcc/ada/sem_ch10.adb b/gcc/ada/sem_ch10.adb index f586461b4a84..f4ce099884b7 100644 --- a/gcc/ada/sem_ch10.adb +++ b/gcc/ada/sem_ch10.adb @@ -5271,7 +5271,7 @@ package body Sem_Ch10 is end if; if Is_Generic_Instance (Uname) - and then Ekind (Uname) in Subprogram_Kind + and then Is_Subprogram (Uname) then -- Set flag as well on the visible entity that denotes the -- instance, which renames the current one. diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb index d46d65c39142..a37224a7b18d 100644 --- a/gcc/ada/sem_ch12.adb +++ b/gcc/ada/sem_ch12.adb @@ -5298,7 +5298,7 @@ package body Sem_Ch12 is Scop := Scope (E); while Scop /= Standard_Standard loop - if Ekind (Scop) in Subprogram_Kind and then Is_Inlined (Scop) then + if Is_Subprogram (Scop) and then Is_Inlined (Scop) then return True; end if; diff --git a/gcc/ada/sem_elim.adb b/gcc/ada/sem_elim.adb index c08686d0b099..bd3c2ef3235f 100644 --- a/gcc/ada/sem_elim.adb +++ b/gcc/ada/sem_elim.adb @@ -247,7 +247,7 @@ package body Sem_Elim is -- Elimination of objects and types is not implemented yet - elsif Ekind (E) not in Subprogram_Kind then + elsif not Is_Subprogram (E) then return; end if; diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index bd8c88da8656..f8e9888fdd62 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -29476,7 +29476,7 @@ package body Sem_Util is -- Since we are only interested in the formal case, avoid -- the anonymous access result type. - if Ekind (Def_Ent) in Subprogram_Kind + if Is_Subprogram (Def_Ent) and then not (Ekind (Def_Ent) = E_Function and then Etype (Def_Ent) = Typ) then -- 2.47.2