mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-22 09:49:59 +00:00
e9ce9ef352
A given diff node for a type can be hung off of several contexts: a function parameter type node, another type diff node, etc. For that reason, a type diff node should not have a parent node. Thus, it's should be the job of the context containing the type diff node to propagate its categories to the context nodes. This actually fixes a bug about category propagation. * abg/comparison.cc (var_diff::var_diff): Do not set parent node for the type diff of the var_diff. (var_diff::traverse): Handle category propagation from the type diff node to the var_diff node. (pointer_diff::underlying_type_diff) (reference_diff::underlying_type_diff) (qualified_type_diff::underlying_type_diff, enum_diff::enum_diff) (base_diff::get_underlying_class_diff) (typedef_diff::underlying_type_diff): Do not set the parent node here. ({pointer_diff, reference_diff, qualified_type, enum_diff, class_diff, base_diff, function_decl_diff, typedef_diff}::traverse): Handle category propagation here. * tests/data/test-diff-filter/test4-v0.o: New input binary. * tests/data/test-diff-filter/test4-v0.cc: Source code for the input binary above. * tests/data/test-diff-filter/test4-v1.o: New input binary. * tests/data/test-diff-filter/test4-v1.cc: Source code for the input binary above. * tests/data/test-diff-filter/test4-report.txt: Reference diff report for the input binaries above. * tests/test-diff-filter.cc:: Run bidiff --no-harmless on the binaries above. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
.. | ||
data | ||
Makefile.am | ||
test-bidiff.cc | ||
test-core-diff.cc | ||
test-diff2.cc | ||
test-diff-dwarf.cc | ||
test-diff-filter.cc | ||
test-dot.cc | ||
test-ir-walker.cc | ||
test-read-dwarf.cc | ||
test-read-write.cc | ||
test-svg.cc | ||
test-utils.cc | ||
test-utils.h | ||
test-write-read-archive.cc |