[Ada] Fix problematic placement of freeze node after instantiation

gcc/ada/

	* sem_ch12.adb (Freeze_Subprogram_Body): Do not move the freeze
	node of the package body enclosing the instance when its parent
	is in the same declarative part as the freeze node of the parent.
This commit is contained in:
Eric Botcazou 2020-08-05 15:50:06 +02:00 committed by Pierre-Marie de Rodat
parent 3d3378fbb2
commit 4cd2e6f249

View file

@ -9106,12 +9106,7 @@ package body Sem_Ch12 is
and then Present (Freeze_Node (Par))
and then Present (Enc_I)
then
if In_Same_Declarative_Part (Parent (Freeze_Node (Par)), Enc_I)
or else
(Nkind (Enc_I) = N_Package_Body
and then In_Same_Declarative_Part
(Parent (Freeze_Node (Par)), Parent (Enc_I)))
then
if In_Same_Declarative_Part (Parent (Freeze_Node (Par)), Enc_I) then
-- The enclosing package may contain several instances. Rather
-- than computing the earliest point at which to insert its freeze
-- node, we place it at the end of the declarative part of the