From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 9FF503858D33; Wed, 25 Jan 2023 09:40:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9FF503858D33 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1674639634; bh=qc+oK4tiPZSJUEzkswITVS4+mqQj4Lrr05A8Nf5IZxk=; h=From:To:Subject:Date:From; b=XvokUNV/0a/WJDZoZIXXyl8Quf/lMN8158E9LjZ0LY/l3hCQ5yuRiP9hsUL0+oq4H vkp5w6fsLf0B40bhRcn97fSB6bmNS8DHK7Ty4CxZEhjd47YqjglG28OYLe2t8SbKe3 0mVWuJCPMJmWD87feoIaSMae9Od2MtNLxAyV/H+E= From: "gprocida at google dot com" To: libabigail@sourceware.org Subject: [Bug default/30048] New: incorrect qualifiers within compound types Date: Wed, 25 Jan 2023 09:40:33 +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 List-Id: https://sourceware.org/bugzilla/show_bug.cgi?id=3D30048 Bug ID: 30048 Summary: incorrect qualifiers within compound types 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: --- This appears to be some kind of equality or canonicalisation issue. The types of the f06 and f07 members should be the same in the two ABIs extracted. Here I've compiled with GCC (and checked the DWARF independently anyway). =3D=3D> small.c <=3D=3D struct S { int (*f01)(int); int (*f02)(const int*); int (*f03)(int* const); int (*f04)(int* restrict); int (*f05)(const int* restrict); int (*f06)(int* restrict const); int (*f07)(int* const restrict); }; struct S s; =3D=3D> smaller.c <=3D=3D struct S { int (*f06)(int* restrict const); int (*f07)(int* const restrict); }; struct S s; $ abidw --no-show-locs --no-comp-dir-path --no-corpus-path small.o abidw --no-show-locs --no-comp-dir-path --no-corpus-path smaller.o abidiff reports (whether directly on the .o or the .xml): type of 'int (restrict int* const)* f06' changed: in pointed to type 'function type int (restrict int* const)': parameter 1 of type 'restrict int* const' changed: 'restrict int* const' changed to 'const int* restrict' but fails to say the same thing about f07. abidiff --leaf-changes-only doesn't mention the type diffs at all. This might be up to 3 different issues (or there could be fewer root causes= ): - DWARF reader / canonicalisation getting some types wrong or confused - abidiff should also report that f07's type has changed, even if it has changed in exactly the same way - abidiff --leaf-changes-only should report that f06 and f07 types have changed, as well as their offsets --=20 You are receiving this mail because: You are on the CC list for the bug.=