public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
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

             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).