mirror of git://gcc.gnu.org/git/gcc.git
[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:
parent
e8723e7441
commit
bb6a856baf
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue