diff options
author | Arnaud Charlet <charlet@adacore.com> | 2018-01-11 08:50:08 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-01-11 08:50:08 +0000 |
commit | 89a4fa682e358203c7babc65e313388275934cef (patch) | |
tree | a2df2881457632c8ad3efca84a466b6d151cad5c | |
parent | 29c02e655dca7391afb7f2cbfab7c7bcb68361ac (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/einfo.adb | 4 | ||||
-rw-r--r-- | gcc/ada/einfo.ads | 22 |
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 |