mirror of
git://sourceware.org/git/libabigail.git
synced 2025-01-20 08:20:46 +00:00
0239f89b4f
is_non_canonicalized_type uses is_declaration_only_class_or_union_type to detect decl-only classes, but it doesn't differentiate between decl-only classes that are associated to a class definition and those that are not. We want to avoid canonicalizing decl-only classes that are not associated to any class definition. This patch fixes the invocation of is_declaration_only_class_or_union_type to express the above assertion. This fix uncovered another self-comparison issue that was being expressed when running the command below: $ abidw --abidiff tests/data/test-types-stability/PR27086-libstdc++.so.6.0.26 That one was due to an error in method_decl::set_linkage_name which was making classes contain the wrong overloads of methods. The patch fixes that error too. * include/abg-fwd.h (is_pointer_to_decl_only_class_or_union_type) (is_reference_to_decl_only_class_or_union_type) (is_typedef_to_decl_only_class_or_union_type): Remove declarations. (is_typedef_ptr_or_ref_to_decl_only_class_or_union_type): Declare new function. * src/abg-ir.cc (is_pointer_to_decl_only_class_or_union_type) (is_reference_to_decl_only_class_or_union_type) (is_typedef_to_decl_only_class_or_union_type): Remove definitions. (is_typedef_ptr_or_ref_to_decl_only_class_or_union_type): Define new function. (is_non_canonicalized_type): Change the invocation of is_declaration_only_class_or_union_type to make it look through decl-only types. Use is_typedef_ptr_or_ref_to_decl_only_class_or_union_type in lieu of is_{pointer,reference,typedef}_to_decl_only_class_or_union_type that got removed. (method_decl::set_linkage_name): Remove the mapping between the method and the old linkage name, only if the old name is different from the new name. Duh. * tests/data/test-annotate/libtest23.so.abi: Adjust. * 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/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise. * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise. * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise. * tests/data/test-read-dwarf/test-libandroid.so.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/test12-pr18844.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/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
.. | ||
abg-btf-reader.h | ||
abg-comp-filter.h | ||
abg-comparison.h | ||
abg-config.h | ||
abg-corpus.h | ||
abg-ctf-reader.h | ||
abg-cxx-compat.h | ||
abg-diff-utils.h | ||
abg-dwarf-reader.h | ||
abg-elf-based-reader.h | ||
abg-elf-reader.h | ||
abg-fe-iface.h | ||
abg-fwd.h | ||
abg-hash.h | ||
abg-ini.h | ||
abg-interned-str.h | ||
abg-ir.h | ||
abg-libxml-utils.h | ||
abg-reader.h | ||
abg-regex.h | ||
abg-reporter.h | ||
abg-sptr-utils.h | ||
abg-suppression.h | ||
abg-tools-utils.h | ||
abg-traverse.h | ||
abg-version.h.in | ||
abg-viz-common.h | ||
abg-viz-dot.h | ||
abg-viz-svg.h | ||
abg-workers.h | ||
abg-writer.h | ||
Makefile.am |