diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2022-05-20 22:29:51 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2022-07-04 07:45:51 +0000 |
commit | df69e326b39dabc34f0c9b31f694079e5fa1343a (patch) | |
tree | 6e5c68b34bb6053da1e1001daccecc0f811f22bd /gcc/ada | |
parent | 089a4a48ac3db93f07585563f3b41e92bac798fe (diff) | |
download | gcc-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.adb | 1 |
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); |