From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 44E0A385701F; Thu, 12 May 2022 18:31:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 44E0A385701F From: "gprocida at google dot com" To: libabigail@sourceware.org Subject: [Bug default/29144] New: abidiff does not report base class reordering Date: Thu, 12 May 2022 18:31:52 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new 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: gprocida at google dot com X-Bugzilla-Status: UNCONFIRMED 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: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone Message-ID: 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: Thu, 12 May 2022 18:31:52 -0000 https://sourceware.org/bugzilla/show_bug.cgi?id=3D29144 Bug ID: 29144 Summary: abidiff does not report base class reordering Product: libabigail Version: unspecified Status: UNCONFIRMED Severity: normal Priority: P2 Component: default Assignee: dodji at redhat dot com Reporter: gprocida at google dot com CC: libabigail at sourceware dot org Target Milestone: --- Hi Dodji. We noticed this issue when adding support for C++ classes in our own diff t= ool. Consider these two source files: struct A { int x; }; struct B { int y; }; struct C { int z; }; struct D: A, B, C { int d; }; D order; and: struct A { int x; }; struct B { int y; }; struct C { int z; }; struct D: B, A, C { int d; }; D order; The only difference is in D's base class order. This is an ABI break because the offsets of fields x and y in D are swapped between the two versions of the code. The generated XML reflects this correctly and abidiff detects the differenc= e. However, it does not say what the difference is: Functions changes summary: 0 Removed, 0 Changed, 0 Added function Variables changes summary: 0 Removed, 1 Changed, 0 Added variable 1 Changed variable: [C] 'D order' was changed at multiple_inheritance_order.1.cpp:17:1: type of variable changed: type size hasn't changed and in leaf mode: Leaf changes summary: 1 artifact changed Changed leaf types summary: 1 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added func= tion Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added vari= able 'struct D at multiple_inheritance_order.0.cpp:13:1' changed: type size hasn't changed Regards, Giuliano. --=20 You are receiving this mail because: You are on the CC list for the bug.=