aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2023-03-02 10:12:29 -0500
committerMarc Poulhiès <poulhies@adacore.com>2023-05-25 09:44:15 +0200
commitf26005d533d5ecd25cb95f2bb542cd77a51ea418 (patch)
tree8c3f7444e74c935c2ec5e3f4cae3bd1c040e87be
parent5ca595d97bb99839604ea9a60dce0abc336ed1e5 (diff)
downloadgcc-f26005d533d5ecd25cb95f2bb542cd77a51ea418.zip
gcc-f26005d533d5ecd25cb95f2bb542cd77a51ea418.tar.gz
gcc-f26005d533d5ecd25cb95f2bb542cd77a51ea418.tar.bz2
ada: Add Entry_Cancel_Parameter to E_Label
...and other (minor) changes. gcc/ada/ * gen_il-gen-gen_entities.adb (E_Label): Add Entry_Cancel_Parameter. This is necessary because Analyze_Implicit_Label_Declaration set the Ekind to E_Label. Without this change, this field would fail the vanishing-fields check in Atree (which is currently commented out). * einfo.ads (Entry_Cancel_Parameter): Document for E_Label. * sem_eval.adb (Why_Not_Static): Protect against previous errors (no need to explain why something is not static if it's already illegal for other reasons). * sem_util.ads (Enter_Name): Fix misleading comment.
-rw-r--r--gcc/ada/einfo.ads3
-rw-r--r--gcc/ada/gen_il-gen-gen_entities.adb1
-rw-r--r--gcc/ada/sem_eval.adb2
-rw-r--r--gcc/ada/sem_util.ads6
4 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index b39cffd..7dc2bd1 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -1131,6 +1131,8 @@ package Einfo is
-- object for task entry calls and a Communications_Block object
-- in the case of protected entry calls. In both cases the objects
-- are declared in outer scopes to this block.
+-- This is also defined in labels, because we temporarily set the
+-- Ekind of an E_Block to E_Label in Analyze_Implicit_Label_Declaration.
-- Entry_Component
-- Defined in formal parameters (in, in out and out parameters). Used
@@ -5660,6 +5662,7 @@ package Einfo is
-- E_Label
-- Renamed_Object $$$
-- Renamed_Entity $$$
+ -- Entry_Cancel_Parameter
-- Enclosing_Scope
-- Reachable
diff --git a/gcc/ada/gen_il-gen-gen_entities.adb b/gcc/ada/gen_il-gen-gen_entities.adb
index ebc0f20..67efc5d 100644
--- a/gcc/ada/gen_il-gen-gen_entities.adb
+++ b/gcc/ada/gen_il-gen-gen_entities.adb
@@ -1224,6 +1224,7 @@ begin -- Gen_IL.Gen.Gen_Entities
-- implicit label declaration, not the occurrence of the label itself,
-- which is simply a direct name referring to the label.
(Sm (Enclosing_Scope, Node_Id),
+ Sm (Entry_Cancel_Parameter, Node_Id),
Sm (Reachable, Flag),
Sm (Renamed_Or_Alias, Node_Id)));
diff --git a/gcc/ada/sem_eval.adb b/gcc/ada/sem_eval.adb
index e54f4a6..905e7ff 100644
--- a/gcc/ada/sem_eval.adb
+++ b/gcc/ada/sem_eval.adb
@@ -7611,7 +7611,7 @@ package body Sem_Eval is
Error_Msg_NE
("!& is not a static subtype (RM 4.9(26))", N, E);
- else
+ elsif E /= Any_Id then
Error_Msg_NE
("!& is not static constant or named number "
& "(RM 4.9(5))", N, E);
diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads
index 4028d37..4962c62 100644
--- a/gcc/ada/sem_util.ads
+++ b/gcc/ada/sem_util.ads
@@ -809,8 +809,10 @@ package Sem_Util is
procedure Enter_Name (Def_Id : Entity_Id);
-- Insert new name in symbol table of current scope with check for
-- duplications (error message is issued if a conflict is found).
- -- Note: Enter_Name is not used for overloadable entities, instead these
- -- are entered using Sem_Ch6.Enter_Overloaded_Entity.
+ -- Note: Enter_Name is not used for most overloadable entities, instead
+ -- they are entered using Sem_Ch6.Enter_Overloaded_Entity. However,
+ -- this is used for SOME overloadable entities, such as enumeration
+ -- literals and certain operator symbols.
function Entity_Of (N : Node_Id) return Entity_Id;
-- Obtain the entity of arbitrary node N. If N is a renaming, return the