Commit 6af9261c by Ed Schonberg Committed by Pierre-Marie de Rodat

[Ada] Unnesting: allow uplevel references to exceptions

2018-05-28  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* einfo.ads, einfo.adb: Exceptions can be uplevel references, and thus
	they can appear as components of activation records.
	* exp_unst.adb (Visit_Node): A reference to an exception may be an
	uplevel reference.

From-SVN: r260840
parent bcad5029
2018-05-28 Ed Schonberg <schonberg@adacore.com>
* einfo.ads, einfo.adb: Exceptions can be uplevel references, and thus
they can appear as components of activation records.
* exp_unst.adb (Visit_Node): A reference to an exception may be an
uplevel reference.
2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
* exp_ch4.adb (Expand_Composite_Equality): Compute whether the size
......
......@@ -744,6 +744,7 @@ package body Einfo is
begin
pragma Assert (Ekind_In (Id, E_Constant,
E_Discriminant,
E_Exception,
E_In_Parameter,
E_In_Out_Parameter,
E_Loop_Parameter,
......@@ -3958,6 +3959,7 @@ package body Einfo is
begin
pragma Assert (Ekind_In (Id, E_Constant,
E_Discriminant,
E_Exception,
E_In_Parameter,
E_In_Out_Parameter,
E_Loop_Parameter,
......
......@@ -6106,6 +6106,7 @@ package Einfo is
-- Renamed_Entity (Node18)
-- Register_Exception_Call (Node20)
-- Interface_Name (Node21)
-- Activation_Record_Component (Node31)
-- Discard_Names (Flag88)
-- Is_Raised (Flag224)
......
......@@ -798,9 +798,10 @@ package body Exp_Unst is
and then Chars (Enclosing_Subprogram (Ent)) /= Name_uParent
and then
-- Constants and variables are interesting
-- Constants, variables and exceptions are potentially
-- uplevel references to global declarations.
(Ekind_In (Ent, E_Constant, E_Variable)
(Ekind_In (Ent, E_Constant, E_Exception, E_Variable)
-- Formals are interesting, but not if being used as mere
-- names of parameters for name notation calls.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment