aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2022-05-20 22:29:51 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2022-07-04 07:45:51 +0000
commitdf69e326b39dabc34f0c9b31f694079e5fa1343a (patch)
tree6e5c68b34bb6053da1e1001daccecc0f811f22bd /gcc/ada
parent089a4a48ac3db93f07585563f3b41e92bac798fe (diff)
downloadgcc-df69e326b39dabc34f0c9b31f694079e5fa1343a.zip
gcc-df69e326b39dabc34f0c9b31f694079e5fa1343a.tar.gz
gcc-df69e326b39dabc34f0c9b31f694079e5fa1343a.tar.bz2
[Ada] Fix for resolution of overloaded subprogram for Iterable aspect
When resolving the Iterable aspect we look for a functions that are declared in the same scope as the annotated type and that have the required number and types formal parameters. However, we didn't guard against functions that have no formal parameter at all. gcc/ada/ * sem_ch13.adb (Resolve_Iterable_Operation): Add guard to prevent crash when the examined function has no formal parameters and Etype is called on Empty entity.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/sem_ch13.adb1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index 0b8911b..27f3250 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -15943,6 +15943,7 @@ package body Sem_Ch13 is
while Present (It.Typ) loop
if Ekind (It.Nam) = E_Function
and then Scope (It.Nam) = Scope (Typ)
+ and then Present (First_Formal (It.Nam))
and then Etype (First_Formal (It.Nam)) = Typ
then
F1 := First_Formal (It.Nam);