diff options
author | Arnaud Charlet <charlet@adacore.com> | 2020-05-15 05:41:10 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-07-07 05:27:00 -0400 |
commit | a21df0b6a46a7807534c2096bba1642e74e1fbd3 (patch) | |
tree | bbf5c560158ce32b5b752af9a12deb68203db7ad | |
parent | eada42206385b31baa5bb62d78115b2ac2730e7b (diff) | |
download | gcc-a21df0b6a46a7807534c2096bba1642e74e1fbd3.zip gcc-a21df0b6a46a7807534c2096bba1642e74e1fbd3.tar.gz gcc-a21df0b6a46a7807534c2096bba1642e74e1fbd3.tar.bz2 |
[Ada] Assert failure on invalid Variable_Indexing
gcc/ada/
* sem_ch4.adb (Try_Container_Indexing): Add ??? comment. Protect
against malformed tree in case of errors.
-rw-r--r-- | gcc/ada/sem_ch4.adb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index 58e8058..3559a15 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -286,6 +286,7 @@ package body Sem_Ch4 is Prefix : Node_Id; Exprs : List_Id) return Boolean; -- AI05-0139: Generalized indexing to support iterators over containers + -- ??? Need to provide a more detailed spec of what this function does function Try_Indexed_Call (N : Node_Id; @@ -8469,6 +8470,12 @@ package body Sem_Ch4 is if not Is_Overloaded (Func_Name) then Func := Entity (Func_Name); + -- Can happen in case of e.g. cascaded errors + + if No (Func) then + return False; + end if; + Indexing := Make_Function_Call (Loc, Name => New_Occurrence_Of (Func, Loc), |