From: Piotr Trojanek <troja...@adacore.com> When resolving names in flow contracts, we refine the ordinary analysis by knowing that an overloaded name must refer to an abstract state and not a function. However, when all overloadings refer to function, we shouldn't crash, but instead let the error to be diagnosed later.
gcc/ada/ChangeLog: * sem_prag.adb (Resolve_State): Continue ordinary processing. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_prag.adb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 081716a4027..1841a0b79ad 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -33804,11 +33804,7 @@ package body Sem_Prag is State := Homonym (State); end loop; - -- A function can never act as a state. If the homonym chain does - -- not contain a corresponding state, then something went wrong in - -- the overloading mechanism. - - raise Program_Error; + -- A function can never act as a state; it will be diagnosed later end if; end if; end Resolve_State; -- 2.43.0