From 2878027c64d62b29091f5a816d95b4ad8830210d Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Tue, 8 Mar 2022 08:52:10 +0100 Subject: [PATCH] [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. --- gcc/ada/sem_ch4.adb | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index ad7448fedb5..84b7ce199b1 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 -- 2.11.4.GIT