From: Piotr Trojanek Date: Fri, 8 Oct 2021 12:45:51 +0000 (+0200) Subject: [Ada] Simplify detection of a parent interface equality X-Git-Tag: basepoints/gcc-13~3635 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e67eed1efd54d17e863159086048be673e9587e;p=thirdparty%2Fgcc.git [Ada] Simplify detection of a parent interface equality gcc/ada/ * exp_ch3.adb (Predefined_Primitive_Bodies): Simplify detection of existing equality operator. --- diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index e8d4326ab8da..00a6b6c630e0 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -10972,16 +10972,13 @@ package body Exp_Ch3 is while Present (Prim) loop if Chars (Node (Prim)) = Name_Op_Eq and then not Is_Internal (Node (Prim)) - and then Present (First_Entity (Node (Prim))) -- The predefined equality primitive must have exactly two - -- formals whose type is this tagged type + -- formals whose type is this tagged type. - and then Present (Last_Entity (Node (Prim))) - and then Next_Entity (First_Entity (Node (Prim))) - = Last_Entity (Node (Prim)) - and then Etype (First_Entity (Node (Prim))) = Tag_Typ - and then Etype (Last_Entity (Node (Prim))) = Tag_Typ + and then Number_Formals (Node (Prim)) = 2 + and then Etype (First_Formal (Node (Prim))) = Tag_Typ + and then Etype (Last_Formal (Node (Prim))) = Tag_Typ then Eq_Needed := False; Eq_Name := No_Name;