From: Eric Botcazou Date: Fri, 13 Oct 2023 13:41:37 +0000 (+0200) Subject: ada: Minor tweaks for comparison operators X-Git-Tag: basepoints/gcc-15~4936 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de4588f3680ccd0861e6b9a0a04e96d46fae178b;p=thirdparty%2Fgcc.git ada: Minor tweaks for comparison operators 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. --- diff --git a/gcc/ada/gen_il-gen-gen_nodes.adb b/gcc/ada/gen_il-gen-gen_nodes.adb index 2ad6e60dae88..0d2a68ea681e 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 c264f2a82835..80b3e16ea75b 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 e3badc3e19d1..78249258f55c 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);