From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id BCC1D3858C78; Tue, 1 Mar 2022 11:22:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BCC1D3858C78 From: "dodji at seketeli dot org" To: libabigail@sourceware.org Subject: [Bug default/28319] abidw - regression in treatment of anonymous enums in structs Date: Tue, 01 Mar 2022 11:22:47 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: libabigail X-Bugzilla-Component: default X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dodji at seketeli dot org X-Bugzilla-Status: REOPENED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: dodji at redhat dot com X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2022 11:22:47 -0000 https://sourceware.org/bugzilla/show_bug.cgi?id=3D28319 --- Comment #15 from dodji at seketeli dot org --- gprocida at google dot com via Libabigail a =C3=A9crit: > Hi Dodji. Hey Giuliano, > git grep use_enum_binary_only_equality Now, from what I am seeing, that one is not used anywhere anymore. The last use of it was in an obsolete comment. I removed it in this commit https://sourceware.org/pipermail/libabigail/2022q1/004184.html. [...] > When I tested in comment 12, I looked for changes in abidw output and the= re was > none. > > There is a regression in abidiff though. > > The two enums in these small code fragments > > enum E6 { a6 =3D 6 } v6; > > enum E6 { a6 =3D 6, b6 =3D 6 } v6; > > are treated as ABI equivalent ... Yes, this is as intended. In the function equals(const enum_type_decl& l, const enum_type_decl& r, change_kind* k) in abi-ir.cc, you can see the comment: // Now compare the enumerators. Note that the order of declaration // of enumerators should not matter in the comparison. // // Also if an enumerator value is redundant, that shouldn't impact // the comparison. // // In that case, note that the two enums below are considered equal: // // enum foo // { // e0 =3D 0; // e1 =3D 1; // e2 =3D 2; // }; // // enum foo // { // e0 =3D 0; // e1 =3D 1; // e2 =3D 2; // e_added =3D 1; // <-- this value is redundant with the value // // of the enumerator e1. // }; // // These two enums are considered equal. > ... as they share the same set of enumerator values. It's rather because they have the same enumerator names /and/ values, modulo one /additional/ enumerator which value is redundant with the existing ones. So in this newer way of seeing things, the previous concept of "binary-only equality" is not used anymore. [...] > 2. Just for the record, if you think this is working as intended, please > re-close the bug. Yes, I think it's working as intended. I'll wait for you to double check if you see an obvious issue. If not, I'll let you close the bug. Would that work for you? Thanks. --=20 You are receiving this mail because: You are on the CC list for the bug.=