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;

Reply via email to