Commit Graph

3 Commits

Author SHA1 Message Date
Giuliano Procida
89de572d7b abidiff: do not qualify member names in diff report
Bug 26012 - abidiff: do not emit qualified name for data members

The enclosing struct (or union or class) is given by the surrounding
diff context. This change eliminates a lot of repetition in the diff
report.

	* src/abg-reporter-priv.cc (represent_data_member): Do not
	qualify member names. (represent): Do not qualify member names.
	* tests/data/test-abicompat/test0-fn-changed-report-0.txt: Refresh.
	* tests/data/test-abicompat/test0-fn-changed-report-2.txt: Refresh.
	* tests/data/test-abicompat/test5-fn-changed-report-0.txt: Refresh.
	* tests/data/test-abicompat/test5-fn-changed-report-1.txt: Refresh.
	* tests/data/test-abicompat/test6-var-changed-report-0.txt: Refresh.
	* tests/data/test-abicompat/test6-var-changed-report-1.txt: Refresh.
	* tests/data/test-abicompat/test7-fn-changed-report-0.txt: Refresh.
	* tests/data/test-abicompat/test7-fn-changed-report-1.txt: Refresh.
	* tests/data/test-abicompat/test7-fn-changed-report-2.txt: Refresh.
	* tests/data/test-abicompat/test8-fn-changed-report-0.txt: Refresh.
	* tests/data/test-abicompat/test9-fn-changed-report-0.txt: Refresh.
	* tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt:
	Refresh.
	* tests/data/test-abidiff-exit/test-fun-param-report.txt: Refresh.
	* tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt:
	Refresh.
	* tests/data/test-abidiff-exit/test-leaf-cxx-members-report.txt:
	Refresh.
	* tests/data/test-abidiff-exit/test-leaf-peeling-report.txt: Refresh.
	* tests/data/test-abidiff-exit/test-leaf-redundant-report.txt: Refresh.
	* tests/data/test-abidiff-exit/test-member-size-report0.txt: Refresh.
	* tests/data/test-abidiff-exit/test-member-size-report1.txt: Refresh.
	* tests/data/test-abidiff-exit/test-net-change-report0.txt: Refresh.
	* tests/data/test-abidiff/test-PR18791-report0.txt: Refresh.
	* tests/data/test-abidiff/test-qual-type0-report.txt: Refresh.
	* tests/data/test-abidiff/test-struct0-report.txt: Refresh.
	* tests/data/test-abidiff/test-struct1-report.txt: Refresh.
	* tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt:
	Refresh.
	* tests/data/test-diff-dwarf/test0-report.txt: Refresh.
	* tests/data/test-diff-dwarf/test1-report.txt: Refresh.
	* tests/data/test-diff-dwarf/test10-report.txt: Refresh.
	* tests/data/test-diff-dwarf/test11-report.txt: Refresh.
	* tests/data/test-diff-dwarf/test13-report.txt: Refresh.
	* tests/data/test-diff-dwarf/test21-redundant-fn-report-0.txt: Refresh.
	* tests/data/test-diff-dwarf/test27-local-base-diff-report.txt:
	Refresh.
	* tests/data/test-diff-dwarf/test3-report.txt: Refresh.
	* tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt:
	Refresh.
	* tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt:
	Refresh.
	* tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt:
	Refresh.
	* tests/data/test-diff-dwarf/test37-union-report-0.txt: Refresh.
	* tests/data/test-diff-dwarf/test38-union-report-0.txt: Refresh.
	* tests/data/test-diff-dwarf/test39-union-report-0.txt: Refresh.
	* tests/data/test-diff-dwarf/test4-report.txt: Refresh.
	* tests/data/test-diff-dwarf/test40-report-0.txt: Refresh.
	* tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt:
	Refresh.
	* tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt:
	Refresh.
	* tests/data/test-diff-dwarf/test46-rust-report-0.txt: Refresh.
	* tests/data/test-diff-dwarf/test5-report.txt: Refresh.
	* tests/data/test-diff-dwarf/test8-report.txt: Refresh.
	* tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt:
	Refresh.
	* tests/data/test-diff-filter/test-PR26739-2-report-0.txt: Refresh.
	* tests/data/test-diff-filter/test0-report.txt: Refresh.
	* tests/data/test-diff-filter/test01-report.txt: Refresh.
	* tests/data/test-diff-filter/test1-report.txt: Refresh.
	* tests/data/test-diff-filter/test10-report.txt: Refresh.
	* tests/data/test-diff-filter/test11-report.txt: Refresh.
	* tests/data/test-diff-filter/test13-report.txt: Refresh.
	* tests/data/test-diff-filter/test14-0-report.txt: Refresh.
	* tests/data/test-diff-filter/test14-1-report.txt: Refresh.
	* tests/data/test-diff-filter/test15-0-report.txt: Refresh.
	* tests/data/test-diff-filter/test15-1-report.txt: Refresh.
	* tests/data/test-diff-filter/test16-report-2.txt: Refresh.
	* tests/data/test-diff-filter/test16-report.txt: Refresh.
	* tests/data/test-diff-filter/test17-0-report.txt: Refresh.
	* tests/data/test-diff-filter/test17-1-report.txt: Refresh.
	* tests/data/test-diff-filter/test18-report.txt: Refresh.
	* tests/data/test-diff-filter/test2-report.txt: Refresh.
	* tests/data/test-diff-filter/test25-cyclic-type-report-0.txt: Refresh.
	* tests/data/test-diff-filter/test25-cyclic-type-report-1.txt: Refresh.
	* tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt:
	Refresh.
	* tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt:
	Refresh.
	* tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-0.txt:
	Refresh.
	* tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt:
	Refresh.
	* tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt:
	Refresh.
	* tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt:
	Refresh.
	* tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt:
	Refresh.
	* tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt:
	Refresh.
	* tests/data/test-diff-filter/test3-report.txt: Refresh.
	* tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt:
	Refresh.
	* tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt:
	Refresh.
	* tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt:
	Refresh.
	* tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt:
	Refresh.
	* tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt:
	Refresh.
	* tests/data/test-diff-filter/test32-ppc64le-struct-change-report0.txt:
	Refresh.
	* tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt:
	Refresh.
	* tests/data/test-diff-filter/test36-report-0.txt: Refresh.
	* tests/data/test-diff-filter/test37-report-0.txt: Refresh.
	* tests/data/test-diff-filter/test39/test39-report-0.txt: Refresh.
	* tests/data/test-diff-filter/test42-leaf-report-output-0.txt: Refresh.
	* tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt:
	Refresh.
	* tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt:
	Refresh.
	* tests/data/test-diff-filter/test9-report.txt: Refresh.
	* tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt:
	Refresh.
	* tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: Refresh.
	* tests/data/test-diff-pkg/dirpkg-1-report-1.txt: Refresh.
	* tests/data/test-diff-pkg/dirpkg-3-report-1.txt: Refresh.
	* tests/data/test-diff-pkg/dirpkg-3-report-2.txt: Refresh.
	* tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt:
	Refresh.
	* tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt:
	Refresh.
	* tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt:
	Refresh.
	* tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt:
	Refresh.
	* tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
	Refresh.
	* tests/data/test-diff-pkg/symlink-dir-test1-report0.txt: Refresh.
	* tests/data/test-diff-pkg/tarpkg-0-report-0.txt: Refresh.
	* tests/data/test-diff-pkg/tarpkg-1-report-0.txt: Refresh.
	* tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
	Refresh.
	* tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
	Refresh.
	* tests/data/test-diff-suppr/libtest48-soname-abixml-report-1.txt:
	Refresh.
	* tests/data/test-diff-suppr/test0-type-suppr-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test0-type-suppr-report-3.txt: Refresh.
	* tests/data/test-diff-suppr/test0-type-suppr-report-5.txt: Refresh.
	* tests/data/test-diff-suppr/test0-type-suppr-report-7.txt: Refresh.
	* tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt: Refresh.
	* tests/data/test-diff-suppr/test11-add-data-member-report-0.txt:
	Refresh.
	* tests/data/test-diff-suppr/test12-add-data-member-report-0.txt:
	Refresh.
	* tests/data/test-diff-suppr/test12-add-data-member-report-2.txt:
	Refresh.
	* tests/data/test-diff-suppr/test13-suppr-through-pointer-report-0.txt:
	Refresh.
	* tests/data/test-diff-suppr/test13-suppr-through-pointer-report-1.txt:
	Refresh.
	* tests/data/test-diff-suppr/test14-suppr-non-redundant-report-0.txt:
	Refresh.
	* tests/data/test-diff-suppr/test14-suppr-non-redundant-report-1.txt:
	Refresh.
	* tests/data/test-diff-suppr/test15-suppr-added-fn-report-0.txt:
	Refresh.
	* tests/data/test-diff-suppr/test15-suppr-added-fn-report-1.txt:
	Refresh.
	* tests/data/test-diff-suppr/test15-suppr-added-fn-report-5.txt:
	Refresh.
	* tests/data/test-diff-suppr/test16-suppr-removed-fn-report-0.txt:
	Refresh.
	* tests/data/test-diff-suppr/test16-suppr-removed-fn-report-2.txt:
	Refresh.
	* tests/data/test-diff-suppr/test16-suppr-removed-fn-report-5.txt:
	Refresh.
	* tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt:
	Refresh.
	* tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt:
	Refresh.
	* tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt:
	Refresh.
	* tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt:
	Refresh.
	* tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt:
	Refresh.
	* tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt:
	Refresh.
	* tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test23-alias-filter-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test23-alias-filter-report-2.txt: Refresh.
	* tests/data/test-diff-suppr/test24-soname-report-1.txt: Refresh.
	* tests/data/test-diff-suppr/test24-soname-report-10.txt: Refresh.
	* tests/data/test-diff-suppr/test24-soname-report-12.txt: Refresh.
	* tests/data/test-diff-suppr/test24-soname-report-14.txt: Refresh.
	* tests/data/test-diff-suppr/test24-soname-report-16.txt: Refresh.
	* tests/data/test-diff-suppr/test24-soname-report-4.txt: Refresh.
	* tests/data/test-diff-suppr/test25-typedef-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test26-loc-suppr-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test26-loc-suppr-report-3.txt: Refresh.
	* tests/data/test-diff-suppr/test29-soname-report-3.txt: Refresh.
	* tests/data/test-diff-suppr/test29-soname-report-6.txt: Refresh.
	* tests/data/test-diff-suppr/test29-soname-report-8.txt: Refresh.
	* tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt: Refresh.
	* tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt: Refresh.
	* tests/data/test-diff-suppr/test30-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test31-report-1.txt: Refresh.
	* tests/data/test-diff-suppr/test33-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test35-leaf-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test36-leaf-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test4-local-suppr-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test4-local-suppr-report-1.txt: Refresh.
	* tests/data/test-diff-suppr/test42-negative-suppr-type-report-0.txt:
	Refresh.
	* tests/data/test-diff-suppr/test42-negative-suppr-type-report-1.txt:
	Refresh.
	* tests/data/test-diff-suppr/test46-PR25128-report-1.txt: Refresh.
	* tests/data/test-diff-suppr/test46-PR25128-report-2.txt: Refresh.
	* tests/data/test-diff-suppr/test47-non-reachable-types-report-1.txt:
	Refresh.
	* tests/data/test-diff-suppr/test47-non-reachable-types-report-2.txt:
	Refresh.
	* tests/data/test-diff-suppr/test47-non-reachable-types-report-4.txt:
	Refresh.
	* tests/data/test-diff-suppr/test47-non-reachable-types-report-7.txt:
	Refresh.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt: Refresh.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt: Refresh.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt: Refresh.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt: Refresh.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt: Refresh.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt: Refresh.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt: Refresh.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt: Refresh.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt: Refresh.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-4.txt: Refresh.
	* tests/data/test-diff-suppr/test7-var-suppr-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test7-var-suppr-report-1.txt: Refresh.
	* tests/data/test-diff-suppr/test7-var-suppr-report-2.txt: Refresh.
	* tests/data/test-diff-suppr/test7-var-suppr-report-3.txt: Refresh.
	* tests/data/test-diff-suppr/test7-var-suppr-report-4.txt: Refresh.
	* tests/data/test-diff-suppr/test7-var-suppr-report-7.txt: Refresh.
	* tests/data/test-diff-suppr/test7-var-suppr-report-8.txt: Refresh.
	* tests/data/test-diff-suppr/test8-redundant-fn-report-0.txt: Refresh.
	* tests/data/test-diff-suppr/test8-redundant-fn-report-1.txt: Refresh.

Signed-off-by: Giuliano Procida <gprocida@google.com>
2021-02-08 16:29:13 +01:00
Dodji Seketeli
ee5f2f06a6 Represent sizes and offsets in bytes and hexadecimal values
In current change reports, sizes and offsets are represented in bits,
and as decimal values.  Some users prefer having those offsets be in
bytes and as hexadecimal values.

This commits adds 4 new options to let users see sizes and offsets be
represented either in bits, bytes, decimal or hexadecimal values.

	* doc/manuals/abidiff.rst: Add documentation for the new
	--show-bits, --show-bytes, --show-hex and --show-dec options.
	* doc/manuals/abipkgdiff.rst: Likewise.
	* doc/manuals/kmidiff.rst: Likewise.
	* include/abg-comparison.h (diff_context::{show_hex_values,
	show_offsets_sizes_in_bits}): Declare new member functions.
	* src/abg-comparison-priv.h (diff_context::priv::{hex_values_,
	show_offsets_sizes_in_bits_}): Declare new data members.
	(diff_context::priv::priv): Initialize them.
	* src/abg-comparison.cc (diff_context::{show_hex_values,
	show_offsets_sizes_in_bits}): Define new member functions.
	* src/abg-default-reporter.cc (default_reporter::report): Adjust
	the call to maybe_report_diff_for_symbol.
	* src/abg-leaf-reporter.cc (leaf_reporter::report): Likewise.
	* src/abg-reporter-priv.h (convert_bits_to_bytes)
	(maybe_convert_bits_to_bytes, emit_num_value, show_offset_or_size)
	(show_numerical_change): Declare new functions.
	(maybe_report_diff_for_symbol): Take a diff_context in parameter.
	* src/abg-reporter-priv.cc (convert_bits_to_bytes, emit_num_value)
	(maybe_convert_bits_to_bytes, show_numerical_change)
	(show_offset_or_size): Define new functions.
	(represent): In the overload for method_decl, var_decl, use the
	new emit_num_value function.
	(represent_data_member): Use the new show_offset_or_size function.
	(maybe_show_relative_offset_change): Use the new
	convert_bits_to_bytes, diff_context::show_offsets_sizes_in_bits,
	emit_num_value functions.
	(maybe_show_relative_offset_change): Likewise.
	(report_size_and_alignment_changes): Use the new emit_num_value
	and show_numerical_change functions.
	(maybe_report_diff_for_symbol): Tak a diff_context in argument.
	Use the new show_numerical_change function.
	* tests/test-diff-filter.cc (in_out_spec): Add a new entry to test
	hexa and bytes output.
	* tools/abidiff.cc (options::{show_hexadecimal_values,
	show_offsets_sizes_in_bits}): New data members.
	(options::options): Initialize them.
	(display_usage): New help strings for the new
	--show{bytes,bits,hex,dec} options.
	(parse_command_line): Parse the new --show{bytes,bits,hex,dec} options.
	(set_diff_context_from_opts) Set the diff context wrt hex and
	bytes values.
	* tools/abipkgdiff.cc (options::{show_hexadecimal_values,
	show_offsets_sizes_in_bits}): New data members.
	(options::options): Initialize them.
	(display_usage): New help strings for the new
	--show{bytes,bits,hex,dec} options.
	(set_diff_context_from_opts): Set the diff context wrt hex and
	bytes values.
	(parse_command_line): Parse the new --show{bytes,bits,hex,dec}
	options.
	* tools/kmidiff.cc (options::{show_hexadecimal_values,
	show_offsets_sizes_in_bits}): New data members.
	(options::options): Initialize them.
	(display_usage):New help strings for the new
	--show{bytes,bits,hex,dec} options.
	(parse_command_line): Parse the new --show{bytes,bits,hex,dec}
	options.
	(set_diff_context): Set the diff context wrt hex and bytes values.
	* tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt:
	New reference test output.
	* tests/data/Makefile.am: Add the new reference test output above
	to source distribution.
	* tests/data/test-abicompat/test0-fn-changed-report-0.txt: Adjust.
	* tests/data/test-abicompat/test0-fn-changed-report-2.txt: Likewise.
	* tests/data/test-abicompat/test5-fn-changed-report-0.txt: Likewise.
	* tests/data/test-abicompat/test5-fn-changed-report-1.txt: Likewise.
	* tests/data/test-abicompat/test6-var-changed-report-0.txt: Likewise.
	* tests/data/test-abicompat/test6-var-changed-report-1.txt: Likewise.
	* tests/data/test-abicompat/test7-fn-changed-report-0.txt: Likewise.
	* tests/data/test-abicompat/test7-fn-changed-report-1.txt: Likewise.
	* tests/data/test-abicompat/test7-fn-changed-report-2.txt: Likewise.
	* tests/data/test-abicompat/test8-fn-changed-report-0.txt: Likewise.
	* tests/data/test-abicompat/test9-fn-changed-report-0.txt: Likewise.
	* tests/data/test-abidiff/test-PR18791-report0.txt: Likewise.
	* tests/data/test-abidiff/test-qual-type0-report.txt: Likewise.
	* tests/data/test-abidiff/test-struct0-report.txt: Likewise.
	* tests/data/test-abidiff/test-struct1-report.txt: Likewise.
	* tests/data/test-abidiff/test-var0-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test0-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test1-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test10-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test11-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test13-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test21-redundant-fn-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test22-changed-parm-c-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test26-added-parms-before-variadic-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test27-local-base-diff-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test3-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test34-pr19173-libfoo-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test37-union-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test39-union-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test40-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test43-PR22913-report-0.txt: Likewise.
	* tests/data/test-diff-dwarf/test8-report.txt: Likewise.
	* tests/data/test-diff-dwarf/test9-report.txt: Likewise.
	* tests/data/test-diff-filter/test0-report.txt: Likewise.
	* tests/data/test-diff-filter/test01-report.txt: Likewise.
	* tests/data/test-diff-filter/test1-report.txt: Likewise.
	* tests/data/test-diff-filter/test10-report.txt: Likewise.
	* tests/data/test-diff-filter/test11-report.txt: Likewise.
	* tests/data/test-diff-filter/test13-report.txt: Likewise.
	* tests/data/test-diff-filter/test14-0-report.txt: Likewise.
	* tests/data/test-diff-filter/test14-1-report.txt: Likewise.
	* tests/data/test-diff-filter/test15-0-report.txt: Likewise.
	* tests/data/test-diff-filter/test15-1-report.txt: Likewise.
	* tests/data/test-diff-filter/test16-report-2.txt: Likewise.
	* tests/data/test-diff-filter/test16-report.txt: Likewise.
	* tests/data/test-diff-filter/test17-0-report.txt: Likewise.
	* tests/data/test-diff-filter/test17-1-report.txt: Likewise.
	* tests/data/test-diff-filter/test2-report.txt: Likewise.
	* tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-0.txt: Likewise.
	* tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt: Likewise.
	* tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt: Likewise.
	* tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt: Likewise.
	* tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt: Likewise.
	* tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt: Likewise.
	* tests/data/test-diff-filter/test3-report.txt: Likewise.
	* tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise.
	* tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise.
	* tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise.
	* tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise.
	* tests/data/test-diff-filter/test32-ppc64le-struct-change-report0.txt: Likewise.
	* tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise.
	* tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt: Likewise.
	* tests/data/test-diff-filter/test37-report-0.txt: Likewise.
	* tests/data/test-diff-filter/test39/test39-report-0.txt: Likewise.
	* tests/data/test-diff-filter/test42-leaf-report-output-0.txt: Likewise.
	* tests/data/test-diff-filter/test6-report.txt: Likewise.
	* tests/data/test-diff-filter/test9-report.txt: Likewise.
	* tests/data/test-diff-pkg/dirpkg-1-report-1.txt: Likewise.
	* tests/data/test-diff-pkg/dirpkg-3-report-1.txt: Likewise.
	* tests/data/test-diff-pkg/dirpkg-3-report-2.txt: Likewise.
	* tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt: Likewise.
	* tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt: Likewise.
	* tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Likewise.
	* tests/data/test-diff-pkg/symlink-dir-test1-report0.txt: Likewise.
	* tests/data/test-diff-pkg/tarpkg-0-report-0.txt: Likewise.
	* tests/data/test-diff-pkg/tarpkg-1-report-0.txt: Likewise.
	* tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: Likewise.
	* tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test0-type-suppr-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test0-type-suppr-report-3.txt: Likewise.
	* tests/data/test-diff-suppr/test0-type-suppr-report-5.txt: Likewise.
	* tests/data/test-diff-suppr/test0-type-suppr-report-7.txt: Likewise.
	* tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test11-add-data-member-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test12-add-data-member-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test12-add-data-member-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test13-suppr-through-pointer-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test13-suppr-through-pointer-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test14-suppr-non-redundant-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test14-suppr-non-redundant-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test15-suppr-added-fn-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test15-suppr-added-fn-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test15-suppr-added-fn-report-5.txt: Likewise.
	* tests/data/test-diff-suppr/test16-suppr-removed-fn-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test16-suppr-removed-fn-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt: Likewise.
	* tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt: Likewise.
	* tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test23-alias-filter-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test23-alias-filter-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test24-soname-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test24-soname-report-10.txt: Likewise.
	* tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise.
	* tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise.
	* tests/data/test-diff-suppr/test24-soname-report-16.txt: Likewise.
	* tests/data/test-diff-suppr/test24-soname-report-4.txt: Likewise.
	* tests/data/test-diff-suppr/test25-typedef-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test26-loc-suppr-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test26-loc-suppr-report-3.txt: Likewise.
	* tests/data/test-diff-suppr/test29-soname-report-3.txt: Likewise.
	* tests/data/test-diff-suppr/test29-soname-report-6.txt: Likewise.
	* tests/data/test-diff-suppr/test29-soname-report-8.txt: Likewise.
	* tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test30-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test31-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test32-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test32-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test33-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test35-leaf-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test36-leaf-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test4-local-suppr-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test4-local-suppr-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt: Likewise.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt: Likewise.
	* tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt: Likewise.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt: Likewise.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt: Likewise.
	* tests/data/test-diff-suppr/test7-var-suppr-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test7-var-suppr-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test7-var-suppr-report-2.txt: Likewise.
	* tests/data/test-diff-suppr/test7-var-suppr-report-3.txt: Likewise.
	* tests/data/test-diff-suppr/test7-var-suppr-report-4.txt: Likewise.
	* tests/data/test-diff-suppr/test7-var-suppr-report-7.txt: Likewise.
	* tests/data/test-diff-suppr/test7-var-suppr-report-8.txt: Likewise.
	* tests/data/test-diff-suppr/test8-redundant-fn-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test8-redundant-fn-report-1.txt: Likewise.
	* tests/data/test-diff-suppr/test9-changed-parm-c-report-0.txt: Likewise.
	* tests/data/test-diff-suppr/test9-changed-parm-c-report-1.txt: Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2018-04-30 17:11:40 +02:00
Dodji Seketeli
2f88edd3b3 Fix synthesizing of pointer type
Libabigail fails to to synthesize a non-existing pointer type to an
existing type.

This makes abicompat fail in weak mode when trying to detect changes
to a function type where the parameter is a pointer to a structure
which changed.  In the application, the function is invoked and a
pointer to the structure is passed to it.  It appears that the type of
structure is defined in the debug info of the application, but not the
pointer to that structure.  So abicompat needs to synthesize that
pointer to struct in order to synthesize the type of the function, and
so, compare it to the type of the function coming from the library.

It appears that synthesizing a pointer type (to an existing type) is
not supported.  Only synthesizing qualified type was supported.

This patch adds support for that and thus fixes the abicompat test
case that is attached.

	* include/abg-ir.h: Update copyright.
	* src/abg-ir.cc (synthesize_type_from_translation_unit): Support
	synthesizing pointer types.

	* tests/data/test-abicompat/libtest8-fn-changed-libapp-v0.so: New
	test input.
	* tests/data/test-abicompat/libtest8-fn-changed-libapp-v1.so: Likewise.
	* tests/data/test-abicompat/test8-fn-changed-app: Likewise.
	* tests/data/test-abicompat/test8-fn-changed-app.c: Likewise.
	* tests/data/test-abicompat/test8-fn-changed-libapp-v0.c: Likewise.
	* tests/data/test-abicompat/test8-fn-changed-libapp-v0.h: Likewise.
	* tests/data/test-abicompat/test8-fn-changed-libapp-v1.c: Likewise.
	* tests/data/test-abicompat/test8-fn-changed-libapp-v1.h: Likewise.
	* tests/data/test-abicompat/test8-fn-changed-report-0.txt: Likewise.
	* tests/data/Makefile.am: Add the new test input files to source
	distribution.
	* tests/test-abicompat.cc (in_out_specs): Add the new test inputs
	above to the test harness.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2016-02-03 13:00:51 +01:00