From: Piotr Trojanek Date: Tue, 8 Mar 2022 16:46:26 +0000 (+0100) Subject: [Ada] Remove duplicated detection of user-defined equality X-Git-Tag: basepoints/gcc-14~6727 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a39b25f6f52f6eab159a096551e2576fa0890cd;p=thirdparty%2Fgcc.git [Ada] Remove duplicated detection of user-defined equality Cleanup related to handling of user-defined equality in GNATprove. gcc/ada/ * exp_ch3.adb (User_Defined_Eq): Replace duplicated code with a call to Get_User_Defined_Eq. --- diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index dfbbc62b4d6..ef53591928b 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -4500,32 +4500,14 @@ package body Exp_Ch3 is --------------------- function User_Defined_Eq (T : Entity_Id) return Entity_Id is - Prim : Elmt_Id; - Op : Entity_Id; + Op : constant Entity_Id := TSS (T, TSS_Composite_Equality); begin - Op := TSS (T, TSS_Composite_Equality); - if Present (Op) then return Op; + else + return Get_User_Defined_Eq (T); end if; - - Prim := First_Elmt (Collect_Primitive_Operations (T)); - while Present (Prim) loop - Op := Node (Prim); - - if Chars (Op) = Name_Op_Eq - and then Etype (Op) = Standard_Boolean - and then Etype (First_Formal (Op)) = T - and then Etype (Next_Formal (First_Formal (Op))) = T - then - return Op; - end if; - - Next_Elmt (Prim); - end loop; - - return Empty; end User_Defined_Eq; -- Start of processing for Build_Untagged_Equality