aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2022-03-08 08:52:10 +0100
committerPierre-Marie de Rodat <derodat@adacore.com>2022-05-16 08:42:02 +0000
commit2878027c64d62b29091f5a816d95b4ad8830210d (patch)
tree564ee8166986efed96b4184368cffd260c4893a4 /gcc/ada
parent82ca7489e71d4792b5f242c144bc5bf7b4c4b2c6 (diff)
downloadgcc-2878027c64d62b29091f5a816d95b4ad8830210d.zip
gcc-2878027c64d62b29091f5a816d95b4ad8830210d.tar.gz
gcc-2878027c64d62b29091f5a816d95b4ad8830210d.tar.bz2
[Ada] Couple of small consistency tweaks
This aligns Analyze_Negation and Analyze_Unary_Op with the other similar procedures in Sem_Ch4. No functional changes. gcc/ada/ * sem_ch4.adb (Analyze_Negation): Minor tweak. (Analyze_Unary_Op): Likewise.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/sem_ch4.adb30
1 files changed, 24 insertions, 6 deletions
diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb
index ad7448f..84b7ce1 100644
--- a/gcc/ada/sem_ch4.adb
+++ b/gcc/ada/sem_ch4.adb
@@ -3461,8 +3461,9 @@ package body Sem_Ch4 is
----------------------
procedure Analyze_Negation (N : Node_Id) is
- R : constant Node_Id := Right_Opnd (N);
- Op_Id : Entity_Id := Entity (N);
+ R : constant Node_Id := Right_Opnd (N);
+
+ Op_Id : Entity_Id;
begin
Set_Etype (N, Any_Type);
@@ -3470,7 +3471,15 @@ package body Sem_Ch4 is
Analyze_Expression (R);
- if Present (Op_Id) then
+ -- If the entity is already set, the node is the instantiation of a
+ -- generic node with a non-local reference, or was manufactured by a
+ -- call to Make_Op_xxx. In either case the entity is known to be valid,
+ -- and we do not need to collect interpretations, instead we just get
+ -- the single possible interpretation.
+
+ if Present (Entity (N)) then
+ Op_Id := Entity (N);
+
if Ekind (Op_Id) = E_Operator then
Find_Negation_Types (R, Op_Id, N);
else
@@ -6067,8 +6076,9 @@ package body Sem_Ch4 is
----------------------
procedure Analyze_Unary_Op (N : Node_Id) is
- R : constant Node_Id := Right_Opnd (N);
- Op_Id : Entity_Id := Entity (N);
+ R : constant Node_Id := Right_Opnd (N);
+
+ Op_Id : Entity_Id;
begin
Set_Etype (N, Any_Type);
@@ -6076,7 +6086,15 @@ package body Sem_Ch4 is
Analyze_Expression (R);
- if Present (Op_Id) then
+ -- If the entity is already set, the node is the instantiation of a
+ -- generic node with a non-local reference, or was manufactured by a
+ -- call to Make_Op_xxx. In either case the entity is known to be valid,
+ -- and we do not need to collect interpretations, instead we just get
+ -- the single possible interpretation.
+
+ if Present (Entity (N)) then
+ Op_Id := Entity (N);
+
if Ekind (Op_Id) = E_Operator then
Find_Unary_Types (R, Op_Id, N);
else