libabigail/tests/data/test-abicompat/test8-fn-changed-report-0.txt

11 lines
465 B
Plaintext
Raw Permalink Normal View History

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 11:20:27 +00:00
functions defined in library 'libtest8-fn-changed-libapp-v1.so'
have sub-types that are different from what application 'test8-fn-changed-app' expects:
function int foo(S*):
parameter 1 of type 'S*' has sub-type changes:
in pointed to type 'struct S' at test8-fn-changed-libapp-v1.h:1:1:
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-20 15:31:35 +00:00
type size changed from 32 to 64 (in bits)
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 11:20:27 +00:00
1 data member insertion:
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-01-27 12:08:43 +00:00
'char m1', at offset 32 (in bits) at test8-fn-changed-libapp-v1.h:4:1
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 11:20:27 +00:00