https://gcc.gnu.org/g:d82909fed0a90a2950e2413429efce655ecba8d2
commit r15-245-gd82909fed0a90a2950e2413429efce655ecba8d2 Author: Yannick Moy <m...@adacore.com> Date: Mon Jan 8 09:53:58 2024 +0100 ada: Fix spurious error on generic state in SPARK 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. Diff: --- 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.