mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-18 16:04:34 +00:00
3f22e252ae
In the DWARF reader it can happen that a function type being built is canonicalized too early, before the type is done building. This leads to some spurious type differences later at comparison time. It typically happens when a sub-type of the function type refers to the function type itself. We correctly handle similar cases for class types, but not for function types. Oops. This patch handles this case for function types in the dwarf reader and in the abixml reader. * src/abg-dwarf-reader.cc (die_function_type_map_type): New typedef. * (): (read_context::die_wip_function_types_map_): New data member. (read_context::{die_wip_function_types_map, is_wip_function_type_die_offset}): New methods. (build_function_type): Mark the function being built as "work in progress". (maybe_canonicalize_type): Do not early-canonicalize WIP function types. * src/abg-reader.cc (build_function_type): Mark the function being built as "work in progress". * tests/test-diff-dwarf-abixml.cc: New test harness. * tests/Makefile.am: Add new test harness runtestdiffdwarfabixml to the build system. * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1: New test binary input. * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: New test input. * tests/data/Makefile.am: Add new test inputs to source distribution. * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
.. | ||
test0-pr19026-libvtkIOSQL-6.1.so.1 | ||
test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt | ||
test0-pr19026-libvtkIOSQL-6.1.so.1.abi |