From: Eric Botcazou <ebotca...@adacore.com> No functional changes.
gcc/ada/ * gen_il-gen-gen_nodes.adb (N_Op_Boolean): Fix description. * sem_ch4.adb (Analyze_Comparison_Equality_Op): Tidy up. * sem_ch12.adb (Copy_Generic_Node): Use N_Op_Compare subtype. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/gen_il-gen-gen_nodes.adb | 3 +-- gcc/ada/sem_ch12.adb | 8 +------- gcc/ada/sem_ch4.adb | 9 ++++----- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/gcc/ada/gen_il-gen-gen_nodes.adb b/gcc/ada/gen_il-gen-gen_nodes.adb index 2ad6e60dae8..0d2a68ea681 100644 --- a/gcc/ada/gen_il-gen-gen_nodes.adb +++ b/gcc/ada/gen_il-gen-gen_nodes.adb @@ -255,8 +255,7 @@ begin -- Gen_IL.Gen.Gen_Nodes Sm (Do_Division_Check, Flag))); Ab (N_Op_Boolean, N_Binary_Op); - -- Binary operators that take operands of a boolean type, and yield a - -- result of a boolean type. + -- Binary operators that yield a result of a boolean type Cc (N_Op_And, N_Op_Boolean, (Sm (Chars, Name_Id), diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb index c264f2a8283..80b3e16ea75 100644 --- a/gcc/ada/sem_ch12.adb +++ b/gcc/ada/sem_ch12.adb @@ -8196,13 +8196,7 @@ package body Sem_Ch12 is -- if one of the operands is of a universal type, we need -- to manually restore the full view of private types. - if Nkind (N) in N_Op_Eq - | N_Op_Ge - | N_Op_Gt - | N_Op_Le - | N_Op_Lt - | N_Op_Ne - then + if Nkind (N) in N_Op_Compare then if Yields_Universal_Type (Left_Opnd (Assoc)) then if Present (Etype (Right_Opnd (Assoc))) and then diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index e3badc3e19d..78249258f55 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -2099,16 +2099,15 @@ package body Sem_Ch4 is end loop; end if; - -- If there was no match, and the operator is inequality, this may be + -- If there was no match and the operator is inequality, this may be -- a case where inequality has not been made explicit, as for tagged -- types. Analyze the node as the negation of an equality operation. - -- This cannot be done earlier, because before analysis we cannot rule + -- This cannot be done earlier because, before analysis, we cannot rule -- out the presence of an explicit inequality. - if Etype (N) = Any_Type - and then Nkind (N) = N_Op_Ne - then + if Etype (N) = Any_Type and then Nkind (N) = N_Op_Ne then Op_Id := Get_Name_Entity_Id (Name_Op_Eq); + while Present (Op_Id) loop if Ekind (Op_Id) = E_Operator then Find_Comparison_Equality_Types (L, R, Op_Id, N); -- 2.42.0