[Ada] Assert failure on incorrect code
authorArnaud Charlet <charlet@adacore.com>
Tue, 23 Jun 2020 07:56:34 +0000 (03:56 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 15 Oct 2020 09:39:09 +0000 (05:39 -0400)
gcc/ada/

* sem_ch12.adb (Reset_Entity): Protect against malformed tree.

gcc/ada/sem_ch12.adb

index 22e6371140aed2fba8bb4b2e8d2b66cc9ac3d753..a626eb3f867aabb5d94030c1a6feddc34ab237da 100644 (file)
@@ -15701,7 +15701,12 @@ package body Sem_Ch12 is
          elsif Nkind (Parent (N)) = N_Selected_Component
            and then Nkind (Parent (N2)) = N_Expanded_Name
          then
-            if Is_Global (Entity (Parent (N2))) then
+            --  In case of previous errors, the tree might be malformed
+
+            if No (Entity (Parent (N2))) then
+               null;
+
+            elsif Is_Global (Entity (Parent (N2))) then
                Change_Selected_Component_To_Expanded_Name (Parent (N));
                Set_Associated_Node (Parent (N), Parent (N2));
                Set_Global_Type     (Parent (N), Parent (N2));