[Ada] Protect analysis of Indexing aspect against cascaded errors
authorArnaud Charlet <charlet@adacore.com>
Tue, 13 Aug 2019 08:08:01 +0000 (08:08 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 13 Aug 2019 08:08:01 +0000 (08:08 +0000)
2019-08-13  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* sem_ch13.adb (Check_Iterator_Functions): Protect against
cascaded errors.

From-SVN: r274351

gcc/ada/ChangeLog
gcc/ada/sem_ch13.adb

index bd3450fffd1133ec8867c2f70010d80c0cf99634..162d027ce73b69d517eccfe111cf47703ff90ce2 100644 (file)
@@ -1,3 +1,8 @@
+2019-08-13  Arnaud Charlet  <charlet@adacore.com>
+
+       * sem_ch13.adb (Check_Iterator_Functions): Protect against
+       cascaded errors.
+
 2019-08-13  Ed Schonberg  <schonberg@adacore.com>
 
        * sem_ch8.adb (Analyze_Subprogram_Renaming): Do no suppress mode
index 4ce248f3d0c01ed37d063780aece3b29eb287225..8c5c4243e12f7ec13613cd6d5121211ec215e760 100644 (file)
@@ -4653,10 +4653,12 @@ package body Sem_Ch13 is
          end if;
 
          if not Is_Overloaded (Expr) then
-            if not Check_Primitive_Function (Entity (Expr)) then
+            if Entity (Expr) /= Any_Id
+              and then not Check_Primitive_Function (Entity (Expr))
+            then
                Error_Msg_NE
                  ("aspect Indexing requires a function that applies to type&",
-                   Entity (Expr), Ent);
+                  Entity (Expr), Ent);
             end if;
 
             --  Flag the default_iterator as well as the denoted function.