mirror of
git://sourceware.org/git/libabigail.git
synced 2025-02-19 15:26:58 +00:00
The DWARF reader is not scheduling a declaration-only class for resolution when the class has member types. When reading the code of build_class_type_and_add_to_ir(), we see that the scheduling is done before getting out of the function. But then, building members of the class can trigger another invocation of build_class_type_and_add_to_ir() before the current invocation returns. In that case, the declaration-only class being built appears as not being scheduled for resolution. And that is what violates the assertion that declaration-only classes should be scheduled for resolution whenever they are used. This patch addresses the issue by scheduling the resolution earlier, when we know we are dealing with a declaration-only class, and before dealing with members of that classes. * src/abg-dwarf-reader.cc (build_class_type_and_add_to_ir): Schedule declaration-only class resolution before the class appears as usable as to other types being built. * tests/data/test-read-dwarf/test12-pr18844.so: Add a new binary test input. * tests/data/test-read-dwarf/test12-pr18844.so.abi: The reference ABI XML output for the binary above. * tests/data/Makefile.am: Add the new test inputs above to the source distribution. * tests/test-read-dwarf.cc (in_out_specs): Add the new test inputs above to the set of input this test harness has to run over. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
.. | ||
abg-comp-filter.cc | ||
abg-comparison.cc | ||
abg-config.cc | ||
abg-corpus.cc | ||
abg-diff-utils.cc | ||
abg-dwarf-reader.cc | ||
abg-hash.cc | ||
abg-ini.cc | ||
abg-ir.cc | ||
abg-libxml-utils.cc | ||
abg-libzip-utils.cc | ||
abg-reader.cc | ||
abg-tools-utils.cc | ||
abg-traverse.cc | ||
abg-viz-common.cc | ||
abg-viz-dot.cc | ||
abg-viz-svg.cc | ||
abg-writer.cc | ||
Makefile.am |