https://gcc.gnu.org/g:798873d25644bd6c45856dd84d894f9921b5feec
commit r15-6584-g798873d25644bd6c45856dd84d894f9921b5feec Author: Piotr Trojanek <troja...@adacore.com> Date: Tue Dec 10 16:42:46 2024 +0100 ada: Fix crash on Depends contract with homonym functions 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. Diff: --- 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 081716a40274..1841a0b79ad5 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;