The Git repository of the Libabigail Project
Go to file
Dodji Seketeli fcc7f02904 writer: Fix emitting of some member types within their scope
When the canonical type of the scope type T a member type MT doesn't
contain MT, then emitting T doesn't (obviously) emit MT.  The ABIXML
writer detects that MT wasn't emitted, but then mistakenly emits MT in
the global scope, making MT lose its T scope.

When the ABIXML is read back again, MT mistakenly becomes a
non-qualified type, leading to a self-comparison error.

This issue appears when self comparing gcc-gnat on fc36 on armv7hl at
least.

This patch fixes the issue by making write_decl_in_scope detect that
emitting T hasn't emitted MT.  In that case, the function still needs
to emit the tags of the scope of MT and then emit MT.

	* src/abg-writer.cc (write_decl_in_scope): Detect that emitting a
	scope type T doesn't emit a particular member type MT that we are
	looking at.  In that case, the function still needs to emit the
	tags of the scope of MT and then emit MT even though T was just
	emitted.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2024-10-02 15:28:14 +02:00
.github Adding missing newline to build-container workflow 2022-05-17 09:46:16 +02:00
autoconf-archive Replace individual license references with SPDX Identifiers 2020-12-02 11:44:13 +01:00
bash-completion Re-license the project to Apache v2 With LLVM Exception 2020-12-02 11:49:13 +01:00
big-tests@4b12e5e53f big-tests: Update to latest version of libabigail-tests.git 2024-09-30 11:54:02 +02:00
doc abidw: Add a --kmi-stablelist option alongside existing --kmi-whitelist 2024-08-29 17:15:44 +02:00
docker Add github actions to support workflows 2022-05-17 00:13:40 +02:00
include hash: Implement full recursive hashing of artifacts 2024-10-01 17:04:12 +02:00
m4
relicensing-scripts Bug 27512 - Remove broken zip-archive support 2021-03-19 10:52:57 +01:00
scripts Re-license the project to Apache v2 With LLVM Exception 2020-12-02 11:49:13 +01:00
src writer: Fix emitting of some member types within their scope 2024-10-02 15:28:14 +02:00
tests hash: Use the faster XXH3 hashing algorithm from xxhash 2024-10-01 17:04:12 +02:00
tools corpus: Allow several variables with same ID to be exported 2024-09-06 22:35:22 +02:00
.clang-format Tweak clang-format configuration 2021-10-19 12:59:18 +02:00
.gitignore
.gitmodules configure: Support the optional 'big-tests' sub-directory 2024-07-16 12:59:03 +02:00
.mailmap Add '.mailmap' 2021-12-17 20:12:20 +01:00
ABIXML-FORMAT-VERSIONS Bug 28450 - Fix cloned member function handling in DWARF 2021-11-12 18:31:28 +01:00
AUTHORS
COMMIT-LOG-GUIDELINES
COMPILING Improve some grammar 2022-02-25 11:24:20 +01:00
CONTRIBUTING configure: Support the optional 'big-tests' sub-directory 2024-07-16 12:59:03 +02:00
ChangeLog ChangeLog: Update for 2.5 release 2024-04-18 12:18:06 +02:00
LICENSE.txt Add the LICENSE.txt file 2020-12-02 11:49:33 +01:00
Makefile.am configure: Support the optional 'big-tests' sub-directory 2024-07-16 12:59:03 +02:00
NEWS NEWS: Update for 2.5 release 2024-04-18 12:17:30 +02:00
README Improve some grammar 2022-02-25 11:24:20 +01:00
README-DOCKER.md Add github actions to support workflows 2022-05-17 00:13:40 +02:00
VISIBILITY Improve some grammar 2022-02-25 11:24:20 +01:00
abigail.m4 Re-license the project to Apache v2 With LLVM Exception 2020-12-02 11:49:13 +01:00
configure.ac Use XXH_INLINE_ALL=1 to inline all xxhash functions 2024-09-27 16:51:58 +02:00
default.abignore Bug 31646: Fix type suppression tactics for webkit2gtk3 2024-04-16 17:46:19 +02:00
gen-changelog.py gen-changelog.py: Remove long standing debugging output 2023-10-20 18:35:59 +02:00
install-sh Replace individual license references with SPDX Identifiers 2020-12-02 11:44:13 +01:00
libabigail.pc.in
license-change-2020.txt Add a license-change-2020.txt file 2020-12-02 11:50:22 +01:00
ltmain.sh Replace individual license references with SPDX Identifiers 2020-12-02 11:44:13 +01:00
release-text-template.txt release-text-template.txt: Modernize a little bit. 2023-05-10 16:29:55 +02:00
update-copyright.sh Update Copyright for year 2024 2024-04-26 15:29:50 +02:00

README

This is the Application Binary Interface Generic Analysis and
Instrumentation Library.

It aims at constructing, manipulating, serializing and de-serializing
ABI-relevant artifacts.

The set of artifacts that we are intersted is made of quantities like
types, variable, functions and declarations of a given library or
program.  For a given library or program this set of quantities is
called an ABI corpus.

This library aims at (among other things) providing a way to compare
two ABI Corpora (apparently the plural of corpus is copora, heh,
that's cool), provide detailed information about their differences,
and help build tools to infer interesting conclusions about these
differences.

You are welcome to contribute to this project after reading the files
CONTRIBUTING and COMMIT-LOG-GUIDELINES files in the source tree.

Communicating with the maintainers of this project -- including
sending patches to be include to the source code -- happens via email
at libabigail@sourceware.org.