[Ada] Assert failure on E_Enumeration_Literal and front-end unnesting
authorArnaud Charlet <charlet@adacore.com>
Sun, 24 Jan 2021 14:08:14 +0000 (09:08 -0500)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 6 May 2021 07:51:43 +0000 (03:51 -0400)
gcc/ada/

* exp_unst.adb (Note_Uplevel_Bound): Exclude
E_Enumeration_Literal.

gcc/ada/exp_unst.adb

index 69506f3..dda8d86 100644 (file)
@@ -527,14 +527,17 @@ package body Exp_Unst is
                   --  Entity name case. Make sure that the entity is declared
                   --  in a subprogram. This may not be the case for a type in a
                   --  loop appearing in a precondition.
-                  --  Exclude explicitly  discriminants (that can appear
-                  --  in bounds of discriminated components).
+                  --  Exclude explicitly discriminants (that can appear
+                  --  in bounds of discriminated components) and enumeration
+                  --  literals.
 
                   if Is_Entity_Name (N) then
                      if Present (Entity (N))
                        and then not Is_Type (Entity (N))
                        and then Present (Enclosing_Subprogram (Entity (N)))
-                       and then Ekind (Entity (N)) /= E_Discriminant
+                       and then
+                         Ekind (Entity (N))
+                           not in E_Discriminant | E_Enumeration_Literal
                      then
                         Note_Uplevel_Ref
                           (E      => Entity (N),