aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2018-01-11 08:50:08 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-01-11 08:50:08 +0000
commit89a4fa682e358203c7babc65e313388275934cef (patch)
treea2df2881457632c8ad3efca84a466b6d151cad5c
parent29c02e655dca7391afb7f2cbfab7c7bcb68361ac (diff)
downloadgcc-89a4fa682e358203c7babc65e313388275934cef.zip
gcc-89a4fa682e358203c7babc65e313388275934cef.tar.gz
gcc-89a4fa682e358203c7babc65e313388275934cef.tar.bz2
einfo.ads, einfo.adb (Activation_Record_Component, [...]): Allow E_Discriminant.
2018-01-11 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * einfo.ads, einfo.adb (Activation_Record_Component, Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity): Allow E_Discriminant. From-SVN: r256481
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/einfo.adb4
-rw-r--r--gcc/ada/einfo.ads22
3 files changed, 21 insertions, 11 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index e1334f8..c1697e3 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2018-01-11 Arnaud Charlet <charlet@adacore.com>
+
+ * einfo.ads, einfo.adb (Activation_Record_Component,
+ Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity):
+ Allow E_Discriminant.
+
2018-01-10 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_component_type): Apply the check
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb
index 5968a73..ae37b5e 100644
--- a/gcc/ada/einfo.adb
+++ b/gcc/ada/einfo.adb
@@ -742,6 +742,7 @@ package body Einfo is
function Activation_Record_Component (Id : E) return E is
begin
pragma Assert (Ekind_In (Id, E_Constant,
+ E_Discriminant,
E_In_Parameter,
E_In_Out_Parameter,
E_Loop_Parameter,
@@ -3932,6 +3933,7 @@ package body Einfo is
procedure Set_Activation_Record_Component (Id : E; V : E) is
begin
pragma Assert (Ekind_In (Id, E_Constant,
+ E_Discriminant,
E_In_Parameter,
E_In_Out_Parameter,
E_Loop_Parameter,
@@ -5925,7 +5927,7 @@ package body Einfo is
procedure Set_Is_Uplevel_Referenced_Entity (Id : E; V : B := True) is
begin
pragma Assert
- (Ekind_In (Id, E_Constant, E_Variable)
+ (Ekind_In (Id, E_Constant, E_Variable, E_Discriminant)
or else Is_Formal (Id)
or else Is_Type (Id));
Set_Flag283 (Id, V);
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index dd6652b..e0c7fcf 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -364,11 +364,12 @@ package Einfo is
-- the IP routine to avoid performing this elaboration twice.
-- Activation_Record_Component (Node31)
--- Defined in E_Variable, E_Constant, E_Loop_Parameter, E_In_Parameter,
--- E_Out_Parameter, E_In_Out_Parameter nodes. Used only if we are in
--- Opt.Unnest_Subprogram_Mode, in which case for the case of an uplevel
--- referenced entity, this field contains the entity for the component
--- in the generated ARECnT activation record (Exp_Unst for details).
+-- Defined in E_Variable, E_Constant, E_Discriminant, E_Loop_Parameter,
+-- E_In_Parameter, E_Out_Parameter, E_In_Out_Parameter nodes. Used only
+-- if we are in Opt.Unnest_Subprogram_Mode, in which case for the case of
+-- an uplevel referenced entity, this field contains the entity for the
+-- component in the generated ARECnT activation record (Exp_Unst for
+-- details).
-- Actual_Subtype (Node17)
-- Defined in variables, constants, and formal parameters. This is the
@@ -3317,11 +3318,12 @@ package Einfo is
-- Defined in all entities. Used when unnesting subprograms to indicate
-- that an entity is locally defined within a subprogram P, and there is
-- a reference to the entity within a subprogram nested within P (at any
--- depth). Set for uplevel referenced objects (variables, constants and
--- loop parameters), and also for upreferenced dynamic types, including
--- the cases where the reference is implicit (e.g. the type of an array
--- used for computing the location of an element in an array. This is
--- used internally in Exp_Unst, see this package for further details.
+-- depth). Set for uplevel referenced objects (variables, constants,
+-- discriminants and loop parameters), and also for upreferenced dynamic
+-- types, including the cases where the reference is implicit (e.g. the
+-- type of an array used for computing the location of an element in an
+-- array. This is used internally in Exp_Unst, see this package for
+-- further details.
-- Is_Valued_Procedure (Flag127)
-- Defined in procedure entities. Set if an Import_Valued_Procedure