Commit 9531aef5 by Arnaud Charlet Committed by Pierre-Marie de Rodat

[Ada] Unnesting and annex E

2019-12-13  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* exp_unst.adb (Unnest_Subprogram): Account for trees produced
	by Annex E constructs.

From-SVN: r279367
parent e203dd6e
2019-12-13 Arnaud Charlet <charlet@adacore.com>
* exp_unst.adb (Unnest_Subprogram): Account for trees produced
by Annex E constructs.
2019-12-13 Ghjuvan Lacambre <lacambre@adacore.com> 2019-12-13 Ghjuvan Lacambre <lacambre@adacore.com>
* doc/gnat_rm/implementation_defined_pragmas.rst: Update * doc/gnat_rm/implementation_defined_pragmas.rst: Update
......
...@@ -414,11 +414,14 @@ package body Exp_Unst is ...@@ -414,11 +414,14 @@ package body Exp_Unst is
then then
return; return;
-- Only unnest when generating code for the main source unit or if we're -- Only unnest when generating code for the main source unit or if
-- unnesting for inline. -- we're unnesting for inline. But in some Annex E cases the Sloc
-- points to a different unit, so also make sure that the Parent
-- isn't in something that we know we're generating code for.
elsif not For_Inline elsif not For_Inline
and then not In_Extended_Main_Code_Unit (Subp_Body) and then not In_Extended_Main_Code_Unit (Subp_Body)
and then not In_Extended_Main_Code_Unit (Parent (Subp_Body))
then then
return; return;
end if; end if;
......
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