[Ada] Replace low-level calls to Ekind with high-level calls to Is_Formal

High-level wrappers are easier to read. This change came up while reading
some code related to GNATprove, but then uniformly applied to the entire
frontend. For the few remaining membership tests that could be replaced
by Is_Formal it is not obvious whether the high-level routine makes the
code better.

2018-07-31  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* exp_aggr.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb,
	repinfo.adb, sem_ch9.adb: Minor replace Ekind membership tests
	with a wrapper routine.

From-SVN: r263093
This commit is contained in:
Piotr Trojanek 2018-07-31 09:55:37 +00:00 committed by Pierre-Marie de Rodat
parent e8723e7441
commit bb6a856baf
7 changed files with 13 additions and 7 deletions

View File

@ -1,3 +1,9 @@
2018-07-31 Piotr Trojanek <trojanek@adacore.com>
* exp_aggr.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb,
repinfo.adb, sem_ch9.adb: Minor replace Ekind membership tests
with a wrapper routine.
2018-07-31 Piotr Trojanek <trojanek@adacore.com>
* ali.adb (Known_ALI_Lines): Remove 'F' as a prefix for lines

View File

@ -7278,7 +7278,7 @@ package body Exp_Aggr is
(Nkind (Expr_Q) = N_Type_Conversion
or else
(Is_Entity_Name (Expr_Q)
and then Ekind (Entity (Expr_Q)) in Formal_Kind))
and then Is_Formal (Entity (Expr_Q))))
and then Tagged_Type_Expansion
then
Static_Components := False;

View File

@ -12547,7 +12547,7 @@ package body Exp_Ch4 is
Sel_Comp := Parent (Sel_Comp);
end loop;
return Ekind (Entity (Prefix (Sel_Comp))) in Formal_Kind;
return Is_Formal (Entity (Prefix (Sel_Comp)));
end Prefix_Is_Formal_Parameter;
-- Start of processing for Has_Inferable_Discriminants

View File

@ -6799,7 +6799,7 @@ package body Exp_Ch6 is
and then (Nkind_In (Exp, N_Type_Conversion,
N_Unchecked_Type_Conversion)
or else (Is_Entity_Name (Exp)
and then Ekind (Entity (Exp)) in Formal_Kind))
and then Is_Formal (Entity (Exp))))
then
-- When the return type is limited, perform a check that the tag of
-- the result is the same as the tag of the return type.
@ -6877,7 +6877,7 @@ package body Exp_Ch6 is
or else Nkind_In (Exp, N_Type_Conversion,
N_Unchecked_Type_Conversion)
or else (Is_Entity_Name (Exp)
and then Ekind (Entity (Exp)) in Formal_Kind)
and then Is_Formal (Entity (Exp)))
or else Scope_Depth (Enclosing_Dynamic_Scope (Etype (Exp))) >
Scope_Depth (Enclosing_Dynamic_Scope (Scope_Id)))
then

View File

@ -1034,7 +1034,7 @@ package body Lib.Xref is
-- parameters may end up being marked as not coming from source
-- although they are. Take these into account specially.
elsif GNATprove_Mode and then Ekind (E) in Formal_Kind then
elsif GNATprove_Mode and then Is_Formal (E) then
Ent := E;
-- Entity does not come from source, but is a derived subprogram and

View File

@ -428,7 +428,7 @@ package body Repinfo is
List_Entities (E, Bytes_Big_Endian, True);
elsif Ekind (E) in Formal_Kind and then In_Subprogram then
elsif Is_Formal (E) and then In_Subprogram then
null;
elsif Ekind_In (E, E_Entry,

View File

@ -2358,7 +2358,7 @@ package body Sem_Ch9 is
if Object_Access_Level (Target_Obj) >= Scope_Depth (Outer_Ent)
and then
(not Is_Entity_Name (Target_Obj)
or else Ekind (Entity (Target_Obj)) not in Formal_Kind
or else not Is_Formal (Entity (Target_Obj))
or else Enclosing /= Scope (Entity (Target_Obj)))
then
Error_Msg_N