mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-15 14:34:38 +00:00
35312fa92a
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> |
||
---|---|---|
.. | ||
test-abicompat | ||
test-abidiff | ||
test-abidiff-exit | ||
test-alt-dwarf-file | ||
test-annotate | ||
test-core-diff | ||
test-default-supprs | ||
test-diff-dwarf | ||
test-diff-dwarf-abixml | ||
test-diff-filter | ||
test-diff-pkg | ||
test-diff-suppr | ||
test-fedabipkgdiff | ||
test-ini | ||
test-lookup-syms | ||
test-read-dwarf | ||
test-read-write | ||
test-types-stability | ||
test-write-read-archive | ||
Makefile.am |