From: Dodji Seketeli <dodji@redhat.com>
To: libabigail@sourceware.org
Subject: [PATCH] ir,dwarf-reader: Peel const-qualifier from const this pointers
Date: Wed, 06 Mar 2024 14:09:45 +0100 [thread overview]
Message-ID: <87h6hj5wx2.fsf@redhat.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 9144 bytes --]
Hello,
In DWARF, it appears that the this pointer of a concrete instance of
method is sometimes represented as a const pointer, whereas the this
pointer of the abstract instance (or interface) of that same method
has the this pointer represented as a non-const pointer. That
difference often causes some spurious const-ness change reports on the
this pointer when doing comparisons.
This patch thus trims of the const-qualifier off of the this pointer
of methods.
* include/abg-fwd.h (is_const_qualified_type)
(peel_const_qualified_type): Declare ...
* src/abg-ir.cc (is_const_qualified_type)
(peel_const_qualified_type): ... new functions.
* src/abg-dwarf-reader.cc (build_function_type): Trim the const
qualifier off of the this pointer representation if present.
* tests/data/test-annotate/test1.abi: Adjust.
* tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
* tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
* tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
* tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
Likewise.
* tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
Likewise.
* tests/data/test-annotate/test2.so.abi: Likewise.
* tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
Likewise.
* tests/data/test-annotate/test6.so.abi: Likewise.
* tests/data/test-annotate/test8-qualified-this-pointer.so.abi:
Likewise.
* tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi:
Likewise.
* tests/data/test-diff-dwarf/test0-report.txt: Likewise.
* tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt:
Likewise.
* tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt:
Likewise.
* tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt:
Likewise.
* tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt:
Likewise.
* tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt:
Likewise.
* tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt:
Likewise.
* tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt:
Likewise.
* tests/data/test-diff-dwarf/test5-report.txt: Likewise.
* tests/data/test-diff-dwarf/test8-report.txt: Likewise.
* tests/data/test-diff-filter/test0-report.txt: Likewise.
* tests/data/test-diff-filter/test01-report.txt: Likewise.
* tests/data/test-diff-filter/test10-report.txt: Likewise.
* tests/data/test-diff-filter/test13-report.txt: Likewise.
* tests/data/test-diff-filter/test2-report.txt: Likewise.
* tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt:
Likewise.
* tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt:
Likewise.
* tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt:
Likewise.
* tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt:
Likewise.
* tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt:
Likewise.
* tests/data/test-diff-filter/test41-report-0.txt: Likewise.
* tests/data/test-diff-filter/test9-report.txt: Likewise.
* tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt:
Likewise.
* tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
Likewise.
* tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
Likewise.
* tests/data/test-diff-suppr/test24-soname-report-1.txt: Likewise.
* tests/data/test-diff-suppr/test24-soname-report-10.txt: Likewise.
* tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise.
* tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise.
* tests/data/test-diff-suppr/test24-soname-report-16.txt:
Likewise.
* tests/data/test-diff-suppr/test24-soname-report-4.txt: Likewise.
* tests/data/test-diff-suppr/test31-report-1.txt: Likewise.
* tests/data/test-read-dwarf/test1.abi: Likewise.
* tests/data/test-read-dwarf/test1.hash.abi: Likewise.
* tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
* tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
* tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
* tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
* tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
* tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
* tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
Likewise.
* tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
Likewise.
* tests/data/test-read-dwarf/test2.so.abi: Likewise.
* tests/data/test-read-dwarf/test2.so.hash.abi: Likewise.
* tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
Likewise.
* tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
Likewise.
* tests/data/test-read-dwarf/test6.so.abi: Likewise.
* tests/data/test-read-dwarf/test6.so.hash.abi: Likewise.
* tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi:
Likewise.
* tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi:
Likewise.
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Applying to master.
---
include/abg-fwd.h | 9 +
src/abg-dwarf-reader.cc | 17 +
src/abg-ir.cc | 49 +
tests/data/test-annotate/test1.abi | 38 +-
.../data/test-annotate/test14-pr18893.so.abi | 5184 +--
.../data/test-annotate/test15-pr18892.so.abi | 10940 +++---
.../data/test-annotate/test17-pr19027.so.abi | 11084 +++---
...st18-pr19037-libvtkRenderingLIC-6.1.so.abi | 11952 +++---
...19-pr19023-libtcmalloc_and_profiler.so.abi | 10178 ++---
tests/data/test-annotate/test2.so.abi | 22 +-
...st20-pr19025-libvtkParallelCore-6.1.so.abi | 13572 +++----
tests/data/test-annotate/test6.so.abi | 6 +-
.../test8-qualified-this-pointer.so.abi | 6 +-
.../test0-pr19026-libvtkIOSQL-6.1.so.1.abi | 17627 ++-------
tests/data/test-diff-dwarf/test0-report.txt | 32 +-
.../test28-vtable-changes-report-0.txt | 3 -
.../test29-vtable-changes-report-0.txt | 20 +-
.../test30-vtable-changes-report-0.txt | 20 +-
.../test31-vtable-changes-report-0.txt | 20 +-
.../test36-ppc64-aliases-report-0.txt | 21 +-
.../test41-PR20476-hidden-report-0.txt | 54 +-
.../test42-PR21296-clanggcc-report0.txt | 9 +-
tests/data/test-diff-dwarf/test5-report.txt | 11 +-
tests/data/test-diff-dwarf/test8-report.txt | 38 +-
tests/data/test-diff-filter/test0-report.txt | 36 +-
tests/data/test-diff-filter/test01-report.txt | 36 +-
tests/data/test-diff-filter/test10-report.txt | 11 +-
tests/data/test-diff-filter/test13-report.txt | 23 +-
tests/data/test-diff-filter/test2-report.txt | 11 +-
...t-and-filtered-children-nodes-report-1.txt | 10 +-
.../test30-pr18904-rvalueref-report0.txt | 230 +-
.../test30-pr18904-rvalueref-report1.txt | 230 +-
.../test30-pr18904-rvalueref-report2.txt | 230 +-
.../test35-pr18754-no-added-syms-report-0.txt | 230 +-
.../data/test-diff-filter/test41-report-0.txt | 87 +-
tests/data/test-diff-filter/test9-report.txt | 11 +-
...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt | 82 +-
...bb-4.3-3.20141204.fc23.x86_64-report-0.txt | 369 +-
...bb-4.3-3.20141204.fc23.x86_64-report-1.txt | 99 +-
.../test24-soname-report-1.txt | 13 +-
.../test24-soname-report-10.txt | 13 +-
.../test24-soname-report-12.txt | 13 +-
.../test24-soname-report-14.txt | 13 +-
.../test24-soname-report-16.txt | 13 +-
.../test24-soname-report-4.txt | 13 +-
.../data/test-diff-suppr/test31-report-1.txt | 11 +-
tests/data/test-read-dwarf/test1.abi | 28 +-
tests/data/test-read-dwarf/test1.hash.abi | 10 +-
.../test-read-dwarf/test10-pr18818-gcc.so.abi | 2966 +-
.../test-read-dwarf/test11-pr18828.so.abi | 654 +-
.../test-read-dwarf/test14-pr18893.so.abi | 4744 +--
.../test-read-dwarf/test15-pr18892.so.abi | 10402 ++---
.../test-read-dwarf/test16-pr18904.so.abi | 11286 +++---
.../test-read-dwarf/test17-pr19027.so.abi | 9810 ++---
...st18-pr19037-libvtkRenderingLIC-6.1.so.abi | 10790 ++---
...19-pr19023-libtcmalloc_and_profiler.so.abi | 8844 ++---
tests/data/test-read-dwarf/test2.so.abi | 14 +-
tests/data/test-read-dwarf/test2.so.hash.abi | 8 +-
...st20-pr19025-libvtkParallelCore-6.1.so.abi | 12218 +++---
.../test22-pr19097-libstdc++.so.6.0.17.so.abi | 32770 ++++++++--------
tests/data/test-read-dwarf/test6.so.abi | 4 +-
tests/data/test-read-dwarf/test6.so.hash.abi | 2 +-
.../test8-qualified-this-pointer.so.abi | 4 +-
.../test8-qualified-this-pointer.so.hash.abi | 2 +-
64 files changed, 89021 insertions(+), 98231 deletions(-)
The patch is too big for the mailing list so I am attaching it in a
gzip'ed format.
Cheers,
[-- Attachment #2: 0001-ir-dwarf-reader-Peel-const-qualifier-from-const-this.patch.gz --]
[-- Type: application/gzip, Size: 1781272 bytes --]
[-- Attachment #3: Type: text/plain, Size: 14 bytes --]
--
Dodji
next reply other threads:[~2024-03-06 13:13 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-06 13:09 Dodji Seketeli [this message]
2024-03-06 14:51 ` [PATCH] ir, dwarf-reader: " Ben Woodard
2024-03-06 15:15 Dodji Seketeli
2024-03-06 15:43 ` Ben Woodard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87h6hj5wx2.fsf@redhat.com \
--to=dodji@redhat.com \
--cc=libabigail@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).