[COMMITTED] ada: Fix spurious error on generic state in SPARK
Checks
Commit Message
From: Yannick Moy <moy@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(+)
@@ -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.