From: Piotr Trojanek <[email protected]>
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