From: Yannick Moy <m...@adacore.com> The public state of a generic package needs not be part of the state of the enclosing unit, only the state of instantiations need to be accounted for in the enclosing package. Now fixed.
gcc/ada/ * sem_util.adb (Find_Placement_In_State_Space): Stop search for placement when reaching the public state of a generic package. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_util.adb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 3af029fd9a3..d629c76fd47 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -9103,6 +9103,14 @@ package body Sem_Util is Placement := Private_State_Space; return; + -- The item or its enclosing package appear in the visible state + -- space of a generic package. + + elsif Ekind (Pack_Id) = E_Generic_Package then + Placement := Not_In_Package; + Pack_Id := Empty; + return; + -- When the item appears in the visible state space of a package, -- continue to climb the scope stack as this may not be the final -- state space. -- 2.43.2