From: Piotr Trojanek Date: Tue, 10 Dec 2024 15:42:46 +0000 (+0100) Subject: ada: Fix crash on Depends contract with homonym functions X-Git-Tag: basepoints/gcc-16~2969 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=798873d25644bd6c45856dd84d894f9921b5feec;p=thirdparty%2Fgcc.git 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 --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;