aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2018-07-31 09:55:37 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-07-31 09:55:37 +0000
commitbb6a856baf496a1b6fb5e6aa481776cdf2a399ef (patch)
treec36484de29bda5fc90c59d60ba55334e6d9f2e3e /gcc
parente8723e74410de463cdba50e31489f7803387c9bd (diff)
downloadgcc-bb6a856baf496a1b6fb5e6aa481776cdf2a399ef.zip
gcc-bb6a856baf496a1b6fb5e6aa481776cdf2a399ef.tar.gz
gcc-bb6a856baf496a1b6fb5e6aa481776cdf2a399ef.tar.bz2
[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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/exp_aggr.adb2
-rw-r--r--gcc/ada/exp_ch4.adb2
-rw-r--r--gcc/ada/exp_ch6.adb4
-rw-r--r--gcc/ada/lib-xref.adb2
-rw-r--r--gcc/ada/repinfo.adb2
-rw-r--r--gcc/ada/sem_ch9.adb2
7 files changed, 13 insertions, 7 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index ed00e54..861ea47 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,11 @@
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
related to the FORMAL analysis done by GNATprove.
diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index 65a06de..9d9ab6a 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -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;
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb
index 8dad953..b08cf37 100644
--- a/gcc/ada/exp_ch4.adb
+++ b/gcc/ada/exp_ch4.adb
@@ -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
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index ef6406d..2ac5db6 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -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
diff --git a/gcc/ada/lib-xref.adb b/gcc/ada/lib-xref.adb
index eaa7aa6..b3ff466 100644
--- a/gcc/ada/lib-xref.adb
+++ b/gcc/ada/lib-xref.adb
@@ -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
diff --git a/gcc/ada/repinfo.adb b/gcc/ada/repinfo.adb
index 9b10a38..b2bc9ca 100644
--- a/gcc/ada/repinfo.adb
+++ b/gcc/ada/repinfo.adb
@@ -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,
diff --git a/gcc/ada/sem_ch9.adb b/gcc/ada/sem_ch9.adb
index b049930..0919556 100644
--- a/gcc/ada/sem_ch9.adb
+++ b/gcc/ada/sem_ch9.adb
@@ -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