mirror of
git://sourceware.org/git/libabigail.git
synced 2025-03-04 21:57:42 +00:00
Sometimes when a symbol S' of a function F' aliases the symbol S of a function F, the ABIXML reader might not add F' back into the set of exported functions of the ABI corpus (as the DWARF reader has done initially). That results in the apparent 'loss' of F' (and S') from the corpus. This is due to the way F' is identified, using function_decl::get_id. In the case where the symbol S' of F' has aliases, function_decl::get_id (wrongly) uses the linkage name of F' as the identifier. If F' and F happen to have the same linkage name and if F is already in the set of exported functions of the corpus then F' won't be added into that set. To solve that problem, this patch makes function_decl::get_id construct an ID that ensures that F and F' always have different IDs. * src/abg-ir.cc (function_decl::get_id): If the elf symbol has aliases, make the function name be part of the ID so that this ID differs from the one of the other functions that share a symbol alias with this one. * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust. * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise. * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise. * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise. * tests/data/test-diff-filter/test41-report-0.txt: Likewise. * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. * tests/data/test-diff-pkg/glibc-2.32-3.fc33.aarch64-self-check-report-0.txt: New test reference output. * tests/data/test-diff-pkg/glibc-2.32-3.fc33.aarch64.rpm: New test input RPM. * tests/data/test-diff-pkg/glibc-debuginfo-2.32-3.fc33.aarch64.rpm: Likewise. * tests/data/Makefile.am: Add the new test material to source distribution. * tests/test-diff-pkg.cc (in_out_specs): Add the new test input RPMs to this test harness. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
17 MiB
17 MiB
The file is too large to be shown.
View Raw