mirror of
git://sourceware.org/git/libabigail.git
synced 2025-03-25 04:38:29 +00:00
For a reason, anonymous types are not canonicalized. I think this is due to the fact that because they have no name, read_context::lookup_type_from_die(die) used by maybe_canonicalize_type() falls short in trying to canonicalize the *DIE*. So later, at comparison time, things can be really slow because we can't do canonical comparison; we ressort to structural comparison. This patch ensures that even anonymous types are canonicalized. * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Add two new overloads. One that takes type_base_sptr, one that takes a Dwarf_Die* and type_base_sptr. These force canonicalization for anonymous types. (build_function_type): Schedule function types for canonicalization. (build_ir_node_from_die): For struct/classes and unions, use the new overload of maybe_canonicalize_type to schedule canonicalization. * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
.. | ||
data | ||
.gitignore | ||
Makefile.am | ||
mockfedabipkgdiff.in | ||
print-diff-tree.cc | ||
runtestcanonicalizetypes.sh.in | ||
runtestdefaultsupprs.py.in | ||
runtestdefaultsupprspy3.sh.in | ||
runtestfedabipkgdiff.py.in | ||
runtestfedabipkgdiffpy3.sh.in | ||
test-abicompat.cc | ||
test-abidiff-exit.cc | ||
test-abidiff.cc | ||
test-alt-dwarf-file.cc | ||
test-annotate.cc | ||
test-core-diff.cc | ||
test-diff2.cc | ||
test-diff-dwarf-abixml.cc | ||
test-diff-dwarf.cc | ||
test-diff-filter.cc | ||
test-diff-pkg.cc | ||
test-diff-suppr.cc | ||
test-dot.cc | ||
test-ini.cc | ||
test-ir-walker.cc | ||
test-lookup-syms.cc | ||
test-read-dwarf.cc | ||
test-read-write.cc | ||
test-svg.cc | ||
test-tools-utils.cc | ||
test-types-stability.cc | ||
test-utils.cc | ||
test-utils.h | ||
test-valgrind-suppressions.supp | ||
test-write-read-archive.cc | ||
update-test-output.py |