From: Dodji Seketeli Date: Fri, 2 Dec 2016 13:41:07 +0000 (+0100) Subject: Bug 20887 - Show relative change of offsets X-Git-Tag: upstream/1.0~203 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ed0e40bfd7ec301ec623791f940f14262f6d9ab;p=platform%2Fupstream%2Flibabigail.git Bug 20887 - Show relative change of offsets Until now, an offset change is reported by showing the old and new offsets of the data member that changed. This patch adds the string "(by +N bits)" with 'N' being the number of bits by which the offset of the data member was increased, or "(by -N bits) if the offset of the data member was decreased of N bits. The patch also emits a string that says "size hasn't changed" if the size of the structure did not change. This can be disabled by a new --no-show-relative-offset-changes option. * doc/manuals/abidiff.rst: Document the new --no-show-relative-offset-changes. * doc/manuals/abipkgdiff.rst: Likewise. * include/abg-comparison.h (diff_context::show_relative_offset_changes): New accessors. * include/abg-ir.h ({set,get}_data_member_offset): Return uint64_t instead of the less portable size_t. * src/abg-comparison.cc (diff_context::priv::show_relative_offset_changes_): New data member. (dif_context::show_relative_offset_changes): Define accessor. (maybe_show_relative_offset_change): Define new function. (represent): In the overload for var_diff, call the new maybe_show_relative_offset_change. (report_size_and_alignment_changes): If the size of the type didn't change then say it now. * src/abg-ir.cc (set_data_member_offset, get_data_member_offset): Take or return a uint64_t instead of a size_t. * tools/abidiff.cc (options::show_relative_offset_changes): New data member. (options::options): Initialize it. (display_usage): Display help string for the new --no-show-relative-offset-changes. (parse_command_line): Parse the new --no-show-relative-offset-changes options. (set_diff_context_from_opts): Set the "show-relative-offset-changes" flag according to the new option.n * tools/abipkgdiff.cc (options::show_relative_offset_changes): New data member. (options::options): Initialize it. (display_usage): Add help string for the new --no-show-relative-offset-changes option. (set_diff_context_from_opts): Set the "show-relative-offset-changes" flag according to the new option. (parse_command_line): Parse the new command line option. * tests/data/test-diff-dwarf/test40-report-0.txt: Add new reference output. * tests/data/test-diff-dwarf/test40-v0.c: Source code of the first test binary. * tests/data/test-diff-dwarf/test40-v1.c: Source code of the second test binay. * tests/data/test-diff-dwarf/libtest40-v0.so: New first test binary. * tests/data/test-diff-dwarf/libtest40-v1.so: New second test binary. * tests/test-diff-dwarf.cc (in_out_spec): Add the new test binaries above to the set of binaries that are compared. * tests/data/Makefile.am: Add the new test material to source distribution. * tests/data/test-abicompat/test7-fn-changed-report-0.txt: Adjust. * tests/data/test-abidiff/test-PR18791-report0.txt: Likewise. * tests/data/test-abidiff/test-enum0-report.txt: Likewise. * tests/data/test-abidiff/test-enum1-report.txt: Likewise. * tests/data/test-abidiff/test-struct1-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/test15-enum-report.txt: Likewise. * tests/data/test-diff-dwarf/test27-local-base-diff-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/test38-union-report-0.txt: Likewise. * tests/data/test-diff-dwarf/test4-report.txt: Likewise. * tests/data/test-diff-dwarf/test5-report.txt: Likewise. * tests/data/test-diff-dwarf/test6-report.txt: Likewise. * tests/data/test-diff-dwarf/test8-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/test13-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/test18-report.txt: Likewise. * tests/data/test-diff-filter/test19-enum-report-1.txt: Likewise. * tests/data/test-diff-filter/test2-report.txt: Likewise. * tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt: Likewise. * tests/data/test-diff-filter/test24-compatible-vars-report-1.txt: Likewise. * tests/data/test-diff-filter/test25-cyclic-type-report-0.txt: Likewise. * tests/data/test-diff-filter/test25-cyclic-type-report-1.txt: Likewise. * tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.t: Likewise.xt * tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.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/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-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/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/test10-changed-parm-c-report-0.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/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/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. Signed-off-by: Dodji Seketeli --- diff --git a/doc/manuals/abidiff.rst b/doc/manuals/abidiff.rst index 319c4729..b5b33b9f 100644 --- a/doc/manuals/abidiff.rst +++ b/doc/manuals/abidiff.rst @@ -176,6 +176,13 @@ Options Do not show information about where in the *second shared library* the respective type was changed. + * ``--no-show-relative-offset-changes`` + + Without this option, when the offset of a data member changes, + the change report not only mentions the older and newer offset, + but it also mentions by how many bits the data member changes. + With this option, the latter is not shown. + * ``--no-unreferenced-symbols`` In the resulting report, do not display change information about diff --git a/doc/manuals/abipkgdiff.rst b/doc/manuals/abipkgdiff.rst index f4b5fa71..351865a2 100644 --- a/doc/manuals/abipkgdiff.rst +++ b/doc/manuals/abipkgdiff.rst @@ -164,6 +164,13 @@ Options Do not show information about where in the *second shared library* the respective type was changed. + * ``--no-show-relative-offset-changes`` + + Without this option, when the offset of a data member changes, + the change report not only mentions the older and newer offset, + but it also mentions by how many bits the data member changes. + With this option, the latter is not shown. + * ``--show-identical-binaries`` Show the names of the all binaries compared, including the diff --git a/include/abg-comparison.h b/include/abg-comparison.h index 8e155312..a728b2e4 100644 --- a/include/abg-comparison.h +++ b/include/abg-comparison.h @@ -537,6 +537,12 @@ public: void add_suppressions(const suppr::suppressions_type& supprs); + void + show_relative_offset_changes(bool f); + + bool + show_relative_offset_changes(void); + void show_stats_only(bool f); diff --git a/include/abg-ir.h b/include/abg-ir.h index 49146638..ab6fc59a 100644 --- a/include/abg-ir.h +++ b/include/abg-ir.h @@ -2300,12 +2300,12 @@ public: virtual ~var_decl(); friend void - set_data_member_offset(var_decl_sptr m, size_t o); + set_data_member_offset(var_decl_sptr m, uint64_t o); - friend size_t + friend uint64_t get_data_member_offset(const var_decl_sptr m); - friend size_t + friend uint64_t get_data_member_offset(const var_decl& m); friend void diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc index d6e0fa20..b57e7f0d 100644 --- a/src/abg-comparison.cc +++ b/src/abg-comparison.cc @@ -533,6 +533,7 @@ struct diff_context::priv ostream* default_output_stream_; ostream* error_output_stream_; bool forbid_visiting_a_node_twice_; + bool show_relative_offset_changes_; bool show_stats_only_; bool show_soname_change_; bool show_architecture_change_; @@ -554,6 +555,7 @@ struct diff_context::priv default_output_stream_(), error_output_stream_(), forbid_visiting_a_node_twice_(true), + show_relative_offset_changes_(true), show_stats_only_(false), show_soname_change_(true), show_architecture_change_(true), @@ -1075,6 +1077,27 @@ diff_context::add_suppressions(const suppressions_type& supprs) supprs.begin(), supprs.end()); } +/// Set a flag saying if offset changes should be reported in a +/// relative way. That is, if the report should say how of many bits +/// a class/struct data member did move. +/// +/// @param f the new boolean value of the flag. +void +diff_context::show_relative_offset_changes(bool f) +{priv_->show_relative_offset_changes_ = f;} + +/// Get the flag saying if offset changes should be reported in a +/// relative way. That is, if the report should say how of many bits +/// a class/struct data member did move. +/// +/// @return the boolean value of the flag. +bool +diff_context::show_relative_offset_changes(void) +{return priv_->show_relative_offset_changes_;} + + bool + show_relative_offset_changes(void); + /// Set a flag saying if the comparison module should only show the /// diff stats. /// @@ -2804,6 +2827,56 @@ represent_data_member(var_decl_sptr d, } } +/// If a given @ref var_diff node carries a data member change in +/// which the offset of the data member actually changed, then emit a +/// string (to an output stream) that represents that offset change. +/// +/// For instance, if the offset of the data member increased by 32 +/// bits then the string emitted is going to be "by +32 bits". +/// +/// If, on the other hand, the offset of the data member decreased by +/// 64 bits then the string emitted is going to be "by -64 bits". +/// +/// This function is a sub-routine used by the reporting system. +/// +/// @param diff the diff node that potentially carries the data member +/// change. +/// +/// @param ctxt the context in which the diff is being reported. +/// +/// @param out the output stream to emit the string to. +static void +maybe_show_relative_offset_change(var_diff_sptr diff, + diff_context& ctxt, + ostream& out) +{ + if (!ctxt.show_relative_offset_changes()) + return; + + var_decl_sptr o = diff->first_var(); + var_decl_sptr n = diff->second_var(); + + uint64_t first_offset = get_data_member_offset(o), + second_offset = get_data_member_offset(n); + + string sign; + uint64_t change = 0; + if (first_offset < second_offset) + { + sign = "+"; + change = second_offset - first_offset; + } + else if (first_offset > second_offset) + { + sign = "-"; + change = first_offset - second_offset; + } + else + return; + + out << " (by " << sign << change << " bits)"; +} + /// Represent the changes carried by an instance of @ref var_diff that /// represent a difference between two class data members. /// @@ -2903,6 +2976,9 @@ represent(var_diff_sptr diff, << get_data_member_offset(o) << " to " << get_data_member_offset(n) << " (in bits)"; + + maybe_show_relative_offset_change(diff, *ctxt, out); + emitted = true; } if (o->get_binding() != n->get_binding()) @@ -3014,69 +3090,74 @@ report_size_and_alignment_changes(type_or_decl_base_sptr first, if (nl) out << "\n"; - if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY) - && (fs != ss || fdc != sdc)) + if (ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY) { - if (first_array && second_array) + if (fs != ss || fdc != sdc) { - // We are looking at size or alignment changes between two - // arrays ... - out << indent << "array type size changed from "; - if (first_array->is_infinite()) - out << "infinity"; - else - out << first_array->get_size_in_bits(); - out << " to "; - if (second_array->is_infinite()) - out << "infinity"; - else - out << second_array->get_size_in_bits(); - out << " bits:\n"; - - if (sdc != fdc) + if (first_array && second_array) { - out << indent + " " - << "number of dimensions changed from " - << fdc - << " to " - << sdc - << "\n"; - } - array_type_def::subranges_type::const_iterator i, j; - for (i = first_array->get_subranges().begin(), - j = second_array->get_subranges().begin(); - (i != first_array->get_subranges().end() - && j != second_array->get_subranges().end()); - ++i, ++j) - { - if ((*i)->get_length() != (*j)->get_length()) - { - out << indent - << "array type subrange " - << i - first_array->get_subranges().begin() + 1 - << " changed length from "; - - if ((*i)->is_infinite()) - out << "infinity"; - else - out << (*i)->get_length(); - - out << " to "; + // We are looking at size or alignment changes between two + // arrays ... + out << indent << "array type size changed from "; + if (first_array->is_infinite()) + out << "infinity"; + else + out << first_array->get_size_in_bits(); + out << " to "; + if (second_array->is_infinite()) + out << "infinity"; + else + out << second_array->get_size_in_bits(); + out << " bits:\n"; - if ((*j)->is_infinite()) - out << "infinity"; - else - out << (*j)->get_length(); - out << "\n"; + if (sdc != fdc) + { + out << indent + " " + << "number of dimensions changed from " + << fdc + << " to " + << sdc + << "\n"; + } + array_type_def::subranges_type::const_iterator i, j; + for (i = first_array->get_subranges().begin(), + j = second_array->get_subranges().begin(); + (i != first_array->get_subranges().end() + && j != second_array->get_subranges().end()); + ++i, ++j) + { + if ((*i)->get_length() != (*j)->get_length()) + { + out << indent + << "array type subrange " + << i - first_array->get_subranges().begin() + 1 + << " changed length from "; + + if ((*i)->is_infinite()) + out << "infinity"; + else + out << (*i)->get_length(); + + out << " to "; + + if ((*j)->is_infinite()) + out << "infinity"; + else + out << (*j)->get_length(); + out << "\n"; + } } + } // end if (first_array && second_array) + else if (fs != ss) + { + out << indent + << "type size changed from " << fs << " to " << ss << " bits"; + n = true; } - } - else if (fs != ss) - { - out << indent - << "type size changed from " << fs << " to " << ss << " bits"; - n = true; - } + } // end if (fs != ss || fdc != sdc) + else + if (ctxt->show_relative_offset_changes()) + out << indent << "type size hasn't changed\n"; } if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY) && (fa != sa)) diff --git a/src/abg-ir.cc b/src/abg-ir.cc index 5cdf2cda..5d1948f8 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -3371,7 +3371,7 @@ is_data_member(const decl_base_sptr& d) /// /// @param o the offset, in bits. void -set_data_member_offset(var_decl_sptr m, size_t o) +set_data_member_offset(var_decl_sptr m, uint64_t o) { assert(is_data_member(m)); @@ -3387,7 +3387,7 @@ set_data_member_offset(var_decl_sptr m, size_t o) /// @param m the data member to consider. /// /// @return the offset (in bits) of @p m in its containing class. -size_t +uint64_t get_data_member_offset(const var_decl& m) { assert(is_data_member(m)); @@ -3402,7 +3402,7 @@ get_data_member_offset(const var_decl& m) /// @param m the data member to consider. /// /// @return the offset (in bits) of @p m in its containing class. -size_t +uint64_t get_data_member_offset(const var_decl_sptr m) {return get_data_member_offset(*m);} @@ -3411,7 +3411,7 @@ get_data_member_offset(const var_decl_sptr m) /// @param m the data member to consider. /// /// @return the offset (in bits) of @p m in its containing class. -size_t +uint64_t get_data_member_offset(const decl_base_sptr d) {return get_data_member_offset(dynamic_pointer_cast(d));} diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index ad11c411..f121a704 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -297,6 +297,11 @@ test-diff-dwarf/test38-union-v1.cc \ test-diff-dwarf/test39-union-report-0.txt \ test-diff-dwarf/test39-union-v0.cc \ test-diff-dwarf/test39-union-v1.cc \ +test-diff-dwarf/libtest40-v0.so \ +test-diff-dwarf/libtest40-v1.so \ +test-diff-dwarf/test40-report-0.txt \ +test-diff-dwarf/test40-v0.c \ +test-diff-dwarf/test40-v1.c \ \ test-read-dwarf/test0 \ test-read-dwarf/test0.abi \ diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt index 0dd6fecf..02cee302 100644 --- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt +++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt @@ -7,6 +7,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function float add(float, float)' has some indirect sub-type changes: return type changed: type name changed from 'float' to 'int' + type size hasn't changed [C]'function void print(const Student)' has some indirect sub-type changes: diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt index 244f7ca3..8987342d 100644 --- a/tests/data/test-abidiff/test-PR18791-report0.txt +++ b/tests/data/test-abidiff/test-PR18791-report0.txt @@ -14,12 +14,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'method sigc::connection::connection(sigc::slot_base&)' has some indirect sub-type changes: parameter 1 of type 'sigc::slot_base&' has sub-type changes: in referenced type 'class sigc::slot_base': + type size hasn't changed 1 data member change: type of 'sigc::slot_base::rep_type* sigc::slot_base::rep_' changed: in pointed to type 'typedef sigc::slot_base::rep_type': underlying type 'struct sigc::internal::slot_rep' changed: + type size hasn't changed 1 base class change: 'struct sigc::trackable' changed: + type size hasn't changed 1 data member change: type of 'sigc::internal::trackable_callback_list* sigc::trackable::callback_list_' changed: in pointed to type 'struct sigc::internal::trackable_callback_list': @@ -34,7 +37,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: class std::__cxx11::_List_base > - 'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) + 'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits) @@ -42,6 +45,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'method sigc::connection& sigc::connection::operator=(const sigc::connection&)' has some indirect sub-type changes: return type changed: in referenced type 'struct sigc::connection': + type size hasn't changed 1 data member change: type of 'sigc::slot_base* sigc::connection::slot_' changed: pointed to type 'class sigc::slot_base' changed, as reported earlier @@ -140,6 +144,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'method sigc::signal_base& sigc::signal_base::operator=(const sigc::signal_base&)' has some indirect sub-type changes: return type changed: in referenced type 'struct sigc::signal_base': + type size hasn't changed 1 base class change: 'struct sigc::trackable' changed: details were reported earlier diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt index a3232eed..a5fe8c2b 100644 --- a/tests/data/test-abidiff/test-enum0-report.txt +++ b/tests/data/test-abidiff/test-enum0-report.txt @@ -1,5 +1,6 @@ 1 changed type: 'enum E' changed: + type size hasn't changed 1 enumerator deletion: 'E::e2' value '1' @@ -9,6 +10,7 @@ 1 changed declaration: 'function void foo(E)' was changed to 'function void foo(E)': parameter 1 of type 'enum E' has sub-type changes: + type size hasn't changed 1 enumerator deletion: 'E::e2' value '1' diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt index 11a33dd2..17517bdb 100644 --- a/tests/data/test-abidiff/test-enum1-report.txt +++ b/tests/data/test-abidiff/test-enum1-report.txt @@ -1,5 +1,6 @@ 1 changed type: 'enum E' changed: + type size hasn't changed 1 enumerator insertion: 'E::e1' value '1' @@ -9,6 +10,7 @@ 1 changed declaration: 'function void foo(E)' was changed to 'function void foo(E)': parameter 1 of type 'enum E' has sub-type changes: + type size hasn't changed 1 enumerator insertion: 'E::e1' value '1' diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt index fa1f725f..32ad02c0 100644 --- a/tests/data/test-abidiff/test-struct1-report.txt +++ b/tests/data/test-abidiff/test-struct1-report.txt @@ -16,7 +16,7 @@ type size changed from 32 to 8 bits type alignment changed from 32 to 8 bits - 'unsigned int s0::m2' offset changed from 128 to 192 (in bits) + 'unsigned int s0::m2' offset changed from 128 to 192 (in bits) (by +64 bits) 'const s0*' changed: in pointed to type 'const s0': unqualified underlying type 'class s0' changed, as reported earlier diff --git a/tests/data/test-diff-dwarf/libtest40-v0.so b/tests/data/test-diff-dwarf/libtest40-v0.so new file mode 100755 index 00000000..d870228c Binary files /dev/null and b/tests/data/test-diff-dwarf/libtest40-v0.so differ diff --git a/tests/data/test-diff-dwarf/libtest40-v1.so b/tests/data/test-diff-dwarf/libtest40-v1.so new file mode 100755 index 00000000..3635bc5c Binary files /dev/null and b/tests/data/test-diff-dwarf/libtest40-v1.so differ diff --git a/tests/data/test-diff-dwarf/test0-report.txt b/tests/data/test-diff-dwarf/test0-report.txt index 73248c15..8e5e545e 100644 --- a/tests/data/test-diff-dwarf/test0-report.txt +++ b/tests/data/test-diff-dwarf/test0-report.txt @@ -18,6 +18,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 'unsigned int B0S0::m2', at offset 64 (in bits) 1 data member change: - 'int S0::m0' offset changed from 64 to 96 (in bits), access changed from 'private' to 'protected' + 'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected' diff --git a/tests/data/test-diff-dwarf/test1-report.txt b/tests/data/test-diff-dwarf/test1-report.txt index 4357b3f3..4a3d9944 100644 --- a/tests/data/test-diff-dwarf/test1-report.txt +++ b/tests/data/test-diff-dwarf/test1-report.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'unsigned int S::m01', at offset 32 (in bits) 1 data member change: - 'int S::m1' offset changed from 32 to 64 (in bits) + 'int S::m1' offset changed from 32 to 64 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-dwarf/test10-report.txt b/tests/data/test-diff-dwarf/test10-report.txt index 57d97588..9599e2f5 100644 --- a/tests/data/test-diff-dwarf/test10-report.txt +++ b/tests/data/test-diff-dwarf/test10-report.txt @@ -19,6 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable type name changed from 'int' to 'char' type size changed from 32 to 8 bits type name changed from 'int*[10]' to 'char*[10]' - and offset changed from 512 to 640 (in bits) + type size hasn't changed + and offset changed from 512 to 640 (in bits) (by +128 bits) diff --git a/tests/data/test-diff-dwarf/test11-report.txt b/tests/data/test-diff-dwarf/test11-report.txt index 18983cf2..3cfa8cf9 100644 --- a/tests/data/test-diff-dwarf/test11-report.txt +++ b/tests/data/test-diff-dwarf/test11-report.txt @@ -17,6 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable type name changed from 'int[6][4]' to 'int[6][5]' array type size changed from 320 to 352 bits: array type subrange 2 changed length from 4 to 5 - and offset changed from 480 to 576 (in bits) + and offset changed from 480 to 576 (in bits) (by +96 bits) diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt index dd4836f5..b777aaf8 100644 --- a/tests/data/test-diff-dwarf/test13-report.txt +++ b/tests/data/test-diff-dwarf/test13-report.txt @@ -10,12 +10,13 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 3 data member changes: type of 'int S::m0' changed: type name changed from 'int' to 'unsigned int' + type size hasn't changed type of 'unsigned int S::m2' changed: type name changed from 'unsigned int' to 'long long int' type size changed from 32 to 64 bits - 'unsigned char S::m3' offset changed from 96 to 128 (in bits) + 'unsigned char S::m3' offset changed from 96 to 128 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-dwarf/test15-enum-report.txt b/tests/data/test-diff-dwarf/test15-enum-report.txt index f5f592df..19326c5b 100644 --- a/tests/data/test-diff-dwarf/test15-enum-report.txt +++ b/tests/data/test-diff-dwarf/test15-enum-report.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(E)' has some indirect sub-type changes: parameter 1 of type 'typedef E' has sub-type changes: underlying type 'enum __anonymous_enum__' changed: + type size hasn't changed 3 enumerator insertions: '__anonymous_enum__::v3' value '3' '__anonymous_enum__::v4' value '4' diff --git a/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt b/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt index 8eac5514..59761af8 100644 --- a/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt +++ b/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt @@ -19,6 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable details were reported earlier 1 data member change: - 'int S::m0' offset changed from 32 to 64 (in bits) + 'int S::m0' offset changed from 32 to 64 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt b/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt index bb934eaf..be1bd906 100644 --- a/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt +++ b/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt @@ -28,6 +28,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(S)' has some indirect sub-type changes: parameter 1 of type 'class S' has sub-type changes: + type size hasn't changed 3 data member changes: type of 'int ()* S::fnptr0' changed: in pointed to type 'function type int ()': diff --git a/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt b/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt index b5ab2efd..ebaa194e 100644 --- a/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt +++ b/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt @@ -29,6 +29,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(S&)' has some indirect sub-type changes: parameter 1 of type 'S&' has sub-type changes: in referenced type 'class S': + type size hasn't changed 3 data member changes: type of 'int ()& S::fnref0' changed: in referenced type 'function type int ()': @@ -38,6 +39,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable type of 'int ()& S::fnref1' changed: in referenced type 'function type int ()': entity changed from 'function type int ()' to 'int*' + type size hasn't changed type of 'int ()& S::fnref2' changed: in referenced type 'function type int ()': diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt index 5187e783..4d5b0e79 100644 --- a/tests/data/test-diff-dwarf/test38-union-report-0.txt +++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(some_union_type*)' has some indirect sub-type changes: parameter 1 of type 'some_union_type*' has sub-type changes: in pointed to type 'union some_union_type': + type size hasn't changed 1 data member deletion: 'int some_union_type::m0' diff --git a/tests/data/test-diff-dwarf/test4-report.txt b/tests/data/test-diff-dwarf/test4-report.txt index 09f7bf0d..2df515a4 100644 --- a/tests/data/test-diff-dwarf/test4-report.txt +++ b/tests/data/test-diff-dwarf/test4-report.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(C0)' has some indirect sub-type changes: parameter 1 of type 'class C0' has sub-type changes: entity changed from 'class C0' to compatible type 'typedef c0_type' + type size hasn't changed 1 data member change: 'int C0::m0' access changed from 'private' to 'public' diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt new file mode 100644 index 00000000..8ab14047 --- /dev/null +++ b/tests/data/test-diff-dwarf/test40-report-0.txt @@ -0,0 +1,38 @@ +Functions changes summary: 0 Removed, 3 Changed, 0 Added functions +Variables changes summary: 0 Removed, 0 Changed, 0 Added variable + +3 functions with some indirect sub-type change: + + [C]'function int bar(S2*)' has some indirect sub-type changes: + parameter 1 of type 'S2*' has sub-type changes: + in pointed to type 'struct S2': + type size changed from 96 to 64 bits + 1 data member deletion: + 'int S2::to_remove', at offset 0 (in bits) + + 2 data member changes: + 'int S2::m0' offset changed from 32 to 0 (in bits) (by -32 bits) + 'char S2::m1' offset changed from 64 to 32 (in bits) (by -32 bits) + + [C]'function int baz(S3*)' has some indirect sub-type changes: + parameter 1 of type 'S3*' has sub-type changes: + in pointed to type 'struct S3': + type size hasn't changed + 1 data member change: + type of 'int S3::to_change' changed: + type name changed from 'int' to 'unsigned int' + type size hasn't changed + + + + [C]'function int foo(S1*)' has some indirect sub-type changes: + parameter 1 of type 'S1*' has sub-type changes: + in pointed to type 'struct S1': + type size changed from 64 to 128 bits + 1 data member insertion: + 'long long int S1::inserted_member', at offset 0 (in bits) + 2 data member changes: + 'int S1::m0' offset changed from 0 to 64 (in bits) (by +64 bits) + 'char S1::m1' offset changed from 32 to 96 (in bits) (by +64 bits) + + diff --git a/tests/data/test-diff-dwarf/test40-v0.c b/tests/data/test-diff-dwarf/test40-v0.c new file mode 100644 index 00000000..3655e3ec --- /dev/null +++ b/tests/data/test-diff-dwarf/test40-v0.c @@ -0,0 +1,35 @@ +struct S1 +{ + int m0; + char m1; +}; + +struct S2 +{ + int to_remove; + int m0; + char m1; +}; + +struct S3 +{ + int to_change; +}; + +int +foo(struct S1* s) +{ + return s->m0; +} + +int +bar(struct S2* s) +{ + return s->m0; +} + +int +baz(struct S3* s) +{ + return s->to_change; +} diff --git a/tests/data/test-diff-dwarf/test40-v1.c b/tests/data/test-diff-dwarf/test40-v1.c new file mode 100644 index 00000000..d42081ac --- /dev/null +++ b/tests/data/test-diff-dwarf/test40-v1.c @@ -0,0 +1,35 @@ +struct S1 +{ + long long inserted_member; + int m0; + char m1; +}; + +struct S2 +{ + int m0; + char m1; +}; + +struct S3 +{ + unsigned to_change; +}; + +int +foo(struct S1* s) +{ + return s->m0; +} + +int +bar(struct S2* s) +{ + return s->m0; +} + +int +baz(struct S3* s) +{ + return s->to_change; +} diff --git a/tests/data/test-diff-dwarf/test5-report.txt b/tests/data/test-diff-dwarf/test5-report.txt index c10e4029..2f099dbc 100644 --- a/tests/data/test-diff-dwarf/test5-report.txt +++ b/tests/data/test-diff-dwarf/test5-report.txt @@ -8,6 +8,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable and it aliases symbols: _ZN2C0C1Ev, _Z3foov return type changed: entity changed from 'class C0' to compatible type 'typedef c0_type' + type size hasn't changed 1 data member change: 'int C0::m0' access changed from 'private' to 'public' diff --git a/tests/data/test-diff-dwarf/test6-report.txt b/tests/data/test-diff-dwarf/test6-report.txt index 3e3888f9..35817256 100644 --- a/tests/data/test-diff-dwarf/test6-report.txt +++ b/tests/data/test-diff-dwarf/test6-report.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(S0&)' has some indirect sub-type changes: parameter 1 of type 'S0&' has sub-type changes: in referenced type 'struct S0': + type size hasn't changed 1 data member change: name of 'S0::m2' changed to 'S0::m12' diff --git a/tests/data/test-diff-dwarf/test8-report.txt b/tests/data/test-diff-dwarf/test8-report.txt index 8bed6c59..92f84716 100644 --- a/tests/data/test-diff-dwarf/test8-report.txt +++ b/tests/data/test-diff-dwarf/test8-report.txt @@ -13,6 +13,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable type size changed from 64 to 96 bits 1 base class change: 'struct B0' changed: + type size hasn't changed 1 data member change: 'char B0::m0' access changed from 'public' to 'private' @@ -22,6 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable type of 'int S::m0' changed: type name changed from 'int' to 'char' type size changed from 32 to 8 bits - and offset changed from 32 to 64 (in bits), access changed from 'public' to 'private' + and offset changed from 32 to 64 (in bits) (by +32 bits), access changed from 'public' to 'private' diff --git a/tests/data/test-diff-filter/test0-report.txt b/tests/data/test-diff-filter/test0-report.txt index ed070670..c7c81eaa 100644 --- a/tests/data/test-diff-filter/test0-report.txt +++ b/tests/data/test-diff-filter/test0-report.txt @@ -17,9 +17,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'unsigned int B0S0::m2', at offset 32 (in bits) 1 data member change: - 'char B0S0::m1' offset changed from 32 to 64 (in bits) + 'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 bits) 1 data member change: - 'int S0::m0' offset changed from 64 to 96 (in bits) + 'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-filter/test01-report.txt b/tests/data/test-diff-filter/test01-report.txt index 2b67c691..1f5e9036 100644 --- a/tests/data/test-diff-filter/test01-report.txt +++ b/tests/data/test-diff-filter/test01-report.txt @@ -17,9 +17,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'unsigned int B0S0::m2', at offset 32 (in bits) 1 data member change: - 'char B0S0::m1' offset changed from 32 to 64 (in bits) + 'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 bits) 1 data member change: - 'int S0::m0' offset changed from 64 to 96 (in bits), access changed from 'private' to 'protected' + 'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected' diff --git a/tests/data/test-diff-filter/test1-report.txt b/tests/data/test-diff-filter/test1-report.txt index a815402d..c3099002 100644 --- a/tests/data/test-diff-filter/test1-report.txt +++ b/tests/data/test-diff-filter/test1-report.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char C1::m0', at offset 0 (in bits) 1 data member change: - 'int C1::m1' offset changed from 0 to 32 (in bits) + 'int C1::m1' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-filter/test13-report.txt b/tests/data/test-diff-filter/test13-report.txt index 5be56142..e701d75a 100644 --- a/tests/data/test-diff-filter/test13-report.txt +++ b/tests/data/test-diff-filter/test13-report.txt @@ -18,6 +18,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable type of 'int S::m0' changed: type name changed from 'int' to 'char' type size changed from 32 to 8 bits - and offset changed from 32 to 64 (in bits) + and offset changed from 32 to 64 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-filter/test16-report-2.txt b/tests/data/test-diff-filter/test16-report-2.txt index 04593789..fa4b859f 100644 --- a/tests/data/test-diff-filter/test16-report-2.txt +++ b/tests/data/test-diff-filter/test16-report-2.txt @@ -12,6 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member change: type of 'S* S::m2' changed: pointed to type 'struct S' changed; details are being reported - and offset changed from 0 to 64 (in bits) + and offset changed from 0 to 64 (in bits) (by +64 bits) diff --git a/tests/data/test-diff-filter/test16-report.txt b/tests/data/test-diff-filter/test16-report.txt index 84a609ad..2d84fcee 100644 --- a/tests/data/test-diff-filter/test16-report.txt +++ b/tests/data/test-diff-filter/test16-report.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'int S::m0', at offset 0 (in bits) 1 data member change: - 'S* S::m2' offset changed from 0 to 64 (in bits) + 'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits) diff --git a/tests/data/test-diff-filter/test17-0-report.txt b/tests/data/test-diff-filter/test17-0-report.txt index e1ceb5e5..3a418b37 100644 --- a/tests/data/test-diff-filter/test17-0-report.txt +++ b/tests/data/test-diff-filter/test17-0-report.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'int S::m0', at offset 0 (in bits) 1 data member change: - 'S* S::m2' offset changed from 0 to 64 (in bits) + 'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits) diff --git a/tests/data/test-diff-filter/test17-1-report.txt b/tests/data/test-diff-filter/test17-1-report.txt index ab59d945..e176a1eb 100644 --- a/tests/data/test-diff-filter/test17-1-report.txt +++ b/tests/data/test-diff-filter/test17-1-report.txt @@ -12,7 +12,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member change: type of 'S* S::m2' changed: pointed to type 'struct S' changed; details are being reported - and offset changed from 0 to 64 (in bits) + and offset changed from 0 to 64 (in bits) (by +64 bits) [C]'function void foo(S&)' has some indirect sub-type changes: parameter 1 of type 'S&' has sub-type changes: diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt index 5d1d7579..08e354fb 100644 --- a/tests/data/test-diff-filter/test18-report.txt +++ b/tests/data/test-diff-filter/test18-report.txt @@ -6,9 +6,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(S&)' has some indirect sub-type changes: parameter 1 of type 'S&' has sub-type changes: in referenced type 'struct S': + type size hasn't changed 1 data member change: type of 'int S::m0' changed: type name changed from 'int' to 'unsigned int' + type size hasn't changed diff --git a/tests/data/test-diff-filter/test19-enum-report-1.txt b/tests/data/test-diff-filter/test19-enum-report-1.txt index f5f592df..19326c5b 100644 --- a/tests/data/test-diff-filter/test19-enum-report-1.txt +++ b/tests/data/test-diff-filter/test19-enum-report-1.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(E)' has some indirect sub-type changes: parameter 1 of type 'typedef E' has sub-type changes: underlying type 'enum __anonymous_enum__' changed: + type size hasn't changed 3 enumerator insertions: '__anonymous_enum__::v3' value '3' '__anonymous_enum__::v4' value '4' diff --git a/tests/data/test-diff-filter/test2-report.txt b/tests/data/test-diff-filter/test2-report.txt index 3de7c5ae..2aa1dc27 100644 --- a/tests/data/test-diff-filter/test2-report.txt +++ b/tests/data/test-diff-filter/test2-report.txt @@ -21,7 +21,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char C0::m2', at offset 0 (in bits) 2 data member changes: - 'E0 C0::m0' offset changed from 0 to 8 (in bits) - 'E1 C0::m1' offset changed from 8 to 16 (in bits) + 'E0 C0::m0' offset changed from 0 to 8 (in bits) (by +8 bits) + 'E1 C0::m1' offset changed from 8 to 16 (in bits) (by +8 bits) diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt index d3adfb64..a624ef0f 100644 --- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt +++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt @@ -6,9 +6,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function int add(int, int)' has some indirect sub-type changes: parameter 1 of type 'int' changed: type name changed from 'int' to 'float' + type size hasn't changed parameter 2 of type 'int' changed: type name changed from 'int' to 'float' + type size hasn't changed diff --git a/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt b/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt index 539f10fc..a961246c 100644 --- a/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt +++ b/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt @@ -8,5 +8,6 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable array element type 'struct S' changed: entity changed from 'struct S' to compatible type 'typedef typedef_of_S' type name changed from 'S[2]' to 'typedef_of_S[2]' + type size hasn't changed diff --git a/tests/data/test-diff-filter/test25-cyclic-type-report-0.txt b/tests/data/test-diff-filter/test25-cyclic-type-report-0.txt index cbd53e03..d6597ef7 100644 --- a/tests/data/test-diff-filter/test25-cyclic-type-report-0.txt +++ b/tests/data/test-diff-filter/test25-cyclic-type-report-0.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(S&)' has some indirect sub-type changes: parameter 1 of type 'S&' has sub-type changes: in referenced type 'struct S': + type size hasn't changed 1 data member insertion: 'char S::m1', at offset 32 (in bits) no data member change (1 filtered); diff --git a/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt b/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt index 5bb5f547..a213d7f9 100644 --- a/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt +++ b/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(S&)' has some indirect sub-type changes: parameter 1 of type 'S&' has sub-type changes: in referenced type 'struct S': + type size hasn't changed 1 data member insertion: 'char S::m1', at offset 32 (in bits) 1 data member change: diff --git a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt index 74fd741c..7c74f324 100644 --- a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt +++ b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt @@ -9,9 +9,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable underlying type 'const TypedefOfS' changed: in unqualified underlying type 'typedef TypedefOfS': underlying type 'struct S' changed: + type size hasn't changed 1 data member changes (1 filtered): type of 'FooStruct::Embedded* S::m1' changed: in pointed to type 'struct FooStruct::Embedded': + type size hasn't changed 1 data member insertion: 'char FooStruct::Embedded::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt index f1f99a29..593cc1af 100644 --- a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt +++ b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt @@ -9,9 +9,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable underlying type 'const TypedefOfS' changed: in unqualified underlying type 'typedef TypedefOfS': underlying type 'struct S' changed: + type size hasn't changed 2 data member changes: type of 'FooStruct::Embedded* S::m1' changed: in pointed to type 'struct FooStruct::Embedded': + type size hasn't changed 1 data member insertion: 'char FooStruct::Embedded::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt index 5763bb2c..96d94223 100644 --- a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt +++ b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt @@ -13,6 +13,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(S&)' has some indirect sub-type changes: parameter 1 of type 'S&' has sub-type changes: in referenced type 'struct S': + type size hasn't changed 1 data member changes (2 filtered): type of 'S0* S::m0' changed: pointed to type 'struct S0' changed, as reported earlier diff --git a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt index 8df10eb9..82f19264 100644 --- a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt +++ b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt @@ -19,6 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(S&)' has some indirect sub-type changes: parameter 1 of type 'S&' has sub-type changes: in referenced type 'struct S': + type size hasn't changed 3 data member changes: type of 'S0* S::m0' changed: pointed to type 'struct S0' changed, as reported earlier diff --git a/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt b/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt index a6665ce3..8c594002 100644 --- a/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt +++ b/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt @@ -23,6 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable details were reported earlier 1 data member change: - 'int inherited::m0' offset changed from 32 to 64 (in bits) + 'int inherited::m0' offset changed from 32 to 64 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-filter/test3-report.txt b/tests/data/test-diff-filter/test3-report.txt index 884d80c3..b73d79d7 100644 --- a/tests/data/test-diff-filter/test3-report.txt +++ b/tests/data/test-diff-filter/test3-report.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'int S::m0', at offset 0 (in bits) 1 data member change: - 'char S::m1' offset changed from 0 to 32 (in bits) + 'char S::m1' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt index ae90d02b..b3795893 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt @@ -1177,22 +1177,27 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen [C]'function int ORSLRelease(const int, const int* restrict, const ORSLBusySet* restrict, const restrict ORSLTag)' has some indirect sub-type changes: parameter 2 of type 'const int* restrict' changed: entity changed from 'const int* restrict' to 'const int*' + type size hasn't changed parameter 3 of type 'const ORSLBusySet* restrict' changed: entity changed from 'const ORSLBusySet* restrict' to 'const ORSLBusySet*' + type size hasn't changed parameter 4 of type 'const restrict ORSLTag' changed: 'const restrict ORSLTag' changed to 'const ORSLTag' [C]'function int ORSLReservePartial(const ORSLPartialGranularity, const int, const int* restrict, ORSLBusySet* restrict, const restrict ORSLTag)' has some indirect sub-type changes: parameter 3 of type 'const int* restrict' changed: entity changed from 'const int* restrict' to 'const int*' + type size hasn't changed parameter 4 of type 'ORSLBusySet* restrict' changed: entity changed from 'ORSLBusySet* restrict' to 'ORSLBusySet*' + type size hasn't changed parameter 5 of type 'const restrict ORSLTag' changed: 'const restrict ORSLTag' changed to 'const ORSLTag' [C]'method void OffloadDescriptor::report_coi_error(error_types, COIRESULT)' has some indirect sub-type changes: parameter 1 of type 'typedef error_types' has sub-type changes: underlying type 'enum __anonymous_enum__' changed: + type size hasn't changed 21 enumerator insertions: '__anonymous_enum__::c_process_set_cache_size' value '32' '__anonymous_enum__::c_bad_ptr_mem_alloc' value '56' @@ -1314,13 +1319,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen [C]'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' has some indirect sub-type changes: parameter 1 of type 'VarDesc*' has sub-type changes: in pointed to type 'struct VarDesc': + type size hasn't changed 1 data member change: type of 'VarDesc::__anonymous_union__ VarDesc::flags' changed: type name changed from 'VarDesc::__anonymous_union__' to 'varDescFlags' + type size hasn't changed 1 data member change: type of 'VarDesc::__anonymous_union__::__anonymous_struct__ ' changed: type name changed from 'VarDesc::__anonymous_union__::__anonymous_struct__' to 'varDescFlags::__anonymous_struct__' + type size hasn't changed 6 data member insertions: 'uint32_t varDescFlags::__anonymous_struct__::pin', at offset 18 (in bits) @@ -1375,11 +1383,13 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: underlying type 'class std::_Rb_tree, std::less, std::allocator >' changed: type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' + type size hasn't changed 1 data member change: type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' + type size hasn't changed 1 base class deletion: class std::allocator > @@ -1404,16 +1414,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen - 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) - 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) + 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) (by +704 bits) + 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) (by +704 bits) type of 'coifunction* Engine::m_funcs[6]' changed: type name changed from 'coifunction*[6]' to 'coifunction*[7]' array type size changed from 384 to 448 bits: array type subrange 1 changed length from 6 to 7 - and offset changed from 2368 to 5056 (in bits) + and offset changed from 2368 to 5056 (in bits) (by +2688 bits) - 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) - 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) + 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) (by +8 bits) + 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) (by +8 bits) type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: in pointed to type 'struct OffloadDescriptor::VarExtra': type size changed from 576 to 640 bits @@ -1421,28 +1431,28 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen 'void* OffloadDescriptor::VarExtra::alloc', at offset 320 (in bits) 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 608 (in bits) 4 data member changes (3 filtered): - 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) + 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: in pointed to type 'struct CeanReadRanges': type size changed from 512 to 576 bits 1 data member insertion: 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bits) 7 data member changes: - 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) - 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) - 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) - 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) - 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) - 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) - 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) - and offset changed from 384 to 448 (in bits) - 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) - 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) + 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) (by +64 bits) + 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) + 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) + and offset changed from 384 to 448 (in bits) (by +64 bits) + 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) + 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) - 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) - 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) - 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) - 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) + 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) (by +64 bits) + 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) (by +64 bits) [C]'function void __offload_register_image(void*)' has some indirect sub-type changes: return type changed: diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt index f0429e93..939127f8 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt @@ -1177,22 +1177,27 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen [C]'function int ORSLRelease(const int, const int* restrict, const ORSLBusySet* restrict, const restrict ORSLTag)' at orsl-lite.c:327:1 has some indirect sub-type changes: parameter 2 of type 'const int* restrict' changed: entity changed from 'const int* restrict' to 'const int*' + type size hasn't changed parameter 3 of type 'const ORSLBusySet* restrict' changed: entity changed from 'const ORSLBusySet* restrict' to 'const ORSLBusySet*' + type size hasn't changed parameter 4 of type 'const restrict ORSLTag' changed: 'const restrict ORSLTag' changed to 'const ORSLTag' [C]'function int ORSLReservePartial(const ORSLPartialGranularity, const int, const int* restrict, ORSLBusySet* restrict, const restrict ORSLTag)' at orsl-lite.c:290:1 has some indirect sub-type changes: parameter 3 of type 'const int* restrict' changed: entity changed from 'const int* restrict' to 'const int*' + type size hasn't changed parameter 4 of type 'ORSLBusySet* restrict' changed: entity changed from 'ORSLBusySet* restrict' to 'ORSLBusySet*' + type size hasn't changed parameter 5 of type 'const restrict ORSLTag' changed: 'const restrict ORSLTag' changed to 'const ORSLTag' [C]'method void OffloadDescriptor::report_coi_error(error_types, COIRESULT)' at offload_host.h:206:1 has some indirect sub-type changes: parameter 1 of type 'typedef error_types' has sub-type changes: underlying type 'enum __anonymous_enum__' changed: + type size hasn't changed 21 enumerator insertions: '__anonymous_enum__::c_process_set_cache_size' value '32' '__anonymous_enum__::c_bad_ptr_mem_alloc' value '56' @@ -1314,13 +1319,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen [C]'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' at offload_host.h:157:1 has some indirect sub-type changes: parameter 1 of type 'VarDesc*' has sub-type changes: in pointed to type 'struct VarDesc' at offload_common.h:254:1: + type size hasn't changed 1 data member change: type of 'VarDesc::__anonymous_union__ VarDesc::flags' changed: type name changed from 'VarDesc::__anonymous_union__' to 'varDescFlags' + type size hasn't changed 1 data member change: type of 'VarDesc::__anonymous_union__::__anonymous_struct__ ' changed: type name changed from 'VarDesc::__anonymous_union__::__anonymous_struct__' to 'varDescFlags::__anonymous_struct__' + type size hasn't changed 6 data member insertions: 'uint32_t varDescFlags::__anonymous_struct__::pin', at offset 18 (in bits) at offload_common.h:248:1 @@ -1375,11 +1383,13 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: underlying type 'class std::_Rb_tree, std::less, std::allocator >' at stl_set.h:90:1 changed: type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' + type size hasn't changed 1 data member change: type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' at stl_set.h:115:1 type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' + type size hasn't changed 1 base class deletion: class std::allocator > at allocator.h:95:1 @@ -1404,16 +1414,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen - 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) - 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) + 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) (by +704 bits) + 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) (by +704 bits) type of 'coifunction* Engine::m_funcs[6]' changed: type name changed from 'coifunction*[6]' to 'coifunction*[7]' array type size changed from 384 to 448 bits: array type subrange 1 changed length from 6 to 7 - and offset changed from 2368 to 5056 (in bits) + and offset changed from 2368 to 5056 (in bits) (by +2688 bits) - 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) - 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) + 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) (by +8 bits) + 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) (by +8 bits) type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: in pointed to type 'struct OffloadDescriptor::VarExtra' at offload_host.h:216:1: type size changed from 576 to 640 bits @@ -1421,28 +1431,28 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen 'void* OffloadDescriptor::VarExtra::alloc', at offset 320 (in bits) at offload_host.h:222:1 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 608 (in bits) at offload_host.h:227:1 4 data member changes (3 filtered): - 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) + 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: in pointed to type 'struct CeanReadRanges' at cean_util.h:58:1: type size changed from 512 to 576 bits 1 data member insertion: 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bits) at cean_util.h:59:1 7 data member changes: - 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) - 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) - 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) - 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) - 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) - 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) - 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) - and offset changed from 384 to 448 (in bits) - 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) - 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) + 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) (by +64 bits) + 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) + 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) + and offset changed from 384 to 448 (in bits) (by +64 bits) + 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) + 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) - 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) - 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) - 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) - 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) + 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) (by +64 bits) + 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) (by +64 bits) [C]'function void __offload_register_image(void*)' at offload_host.cpp:5531:1 has some indirect sub-type changes: return type changed: diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt index c90f5823..40f24eb3 100644 --- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt +++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt @@ -30,18 +30,20 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere [C]'function __cxxabiv1::__cxa_dependent_exception* __cxxabiv1::__cxa_allocate_dependent_exception()' has some indirect sub-type changes: return type changed: in pointed to type 'struct __cxxabiv1::__cxa_dependent_exception': + type size hasn't changed 1 data member insertion: 'void (void*)* __cxxabiv1::__cxa_dependent_exception::__padding', at offset 32 (in bits) 6 data member changes: - 'std::unexpected_handler __cxxabiv1::__cxa_dependent_exception::unexpectedHandler' offset changed from 32 to 64 (in bits) - 'std::terminate_handler __cxxabiv1::__cxa_dependent_exception::terminateHandler' offset changed from 64 to 96 (in bits) - '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextException' offset changed from 96 to 128 (in bits) - 'int __cxxabiv1::__cxa_dependent_exception::handlerCount' offset changed from 128 to 160 (in bits) - '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextPropagatingException' offset changed from 160 to 192 (in bits) - 'int __cxxabiv1::__cxa_dependent_exception::propagationCount' offset changed from 192 to 224 (in bits) + 'std::unexpected_handler __cxxabiv1::__cxa_dependent_exception::unexpectedHandler' offset changed from 32 to 64 (in bits) (by +32 bits) + 'std::terminate_handler __cxxabiv1::__cxa_dependent_exception::terminateHandler' offset changed from 64 to 96 (in bits) (by +32 bits) + '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextException' offset changed from 96 to 128 (in bits) (by +32 bits) + 'int __cxxabiv1::__cxa_dependent_exception::handlerCount' offset changed from 128 to 160 (in bits) (by +32 bits) + '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextPropagatingException' offset changed from 160 to 192 (in bits) (by +32 bits) + 'int __cxxabiv1::__cxa_dependent_exception::propagationCount' offset changed from 192 to 224 (in bits) (by +32 bits) [C]'function void std::__throw_regex_error(std::regex_constants::error_type)' has some indirect sub-type changes: parameter 1 of type 'enum std::regex_constants::error_type' has sub-type changes: + type size hasn't changed 1 enumerator deletion: 'std::regex_constants::error_type::_S_error_last' value '13' diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt index df78e16d..9a8fe6db 100644 --- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt +++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt @@ -30,18 +30,20 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere [C]'function __cxxabiv1::__cxa_dependent_exception* __cxxabiv1::__cxa_allocate_dependent_exception()' at eh_alloc.cc:158:1 has some indirect sub-type changes: return type changed: in pointed to type 'struct __cxxabiv1::__cxa_dependent_exception' at unwind-cxx.h:112:1: + type size hasn't changed 1 data member insertion: 'void (void*)* __cxxabiv1::__cxa_dependent_exception::__padding', at offset 32 (in bits) at unwind-cxx.h:120:1 6 data member changes: - 'std::unexpected_handler __cxxabiv1::__cxa_dependent_exception::unexpectedHandler' offset changed from 32 to 64 (in bits) - 'std::terminate_handler __cxxabiv1::__cxa_dependent_exception::terminateHandler' offset changed from 64 to 96 (in bits) - '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextException' offset changed from 96 to 128 (in bits) - 'int __cxxabiv1::__cxa_dependent_exception::handlerCount' offset changed from 128 to 160 (in bits) - '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextPropagatingException' offset changed from 160 to 192 (in bits) - 'int __cxxabiv1::__cxa_dependent_exception::propagationCount' offset changed from 192 to 224 (in bits) + 'std::unexpected_handler __cxxabiv1::__cxa_dependent_exception::unexpectedHandler' offset changed from 32 to 64 (in bits) (by +32 bits) + 'std::terminate_handler __cxxabiv1::__cxa_dependent_exception::terminateHandler' offset changed from 64 to 96 (in bits) (by +32 bits) + '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextException' offset changed from 96 to 128 (in bits) (by +32 bits) + 'int __cxxabiv1::__cxa_dependent_exception::handlerCount' offset changed from 128 to 160 (in bits) (by +32 bits) + '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextPropagatingException' offset changed from 160 to 192 (in bits) (by +32 bits) + 'int __cxxabiv1::__cxa_dependent_exception::propagationCount' offset changed from 192 to 224 (in bits) (by +32 bits) [C]'function void std::__throw_regex_error(std::regex_constants::error_type)' at functexcept.cc:139:1 has some indirect sub-type changes: parameter 1 of type 'enum std::regex_constants::error_type' has sub-type changes: + type size hasn't changed 1 enumerator deletion: 'std::regex_constants::error_type::_S_error_last' value '13' diff --git a/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 b/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 index c7935b44..8d2faa6d 100644 --- a/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 +++ b/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 @@ -14,10 +14,12 @@ return type changed: underlying type '_IceConn*' changed: in pointed to type 'struct _IceConn' at ICEconn.h:131:1: + type size hasn't changed 2 data member changes (2 filtered): type of 'IceListenObj _IceConn::listen_obj' changed: underlying type '_IceListenObj*' changed: in pointed to type 'struct _IceListenObj' at ICElibint.h:120:1: + type size hasn't changed 1 data member change: type of '_XtransConnInfo* _IceListenObj::trans_conn' changed: in pointed to type 'struct _XtransConnInfo' at Xtransint.h:136:1: @@ -28,18 +30,21 @@ 1 data member change: type of '_Xtransport* _XtransConnInfo::transptr' changed: in pointed to type 'struct _Xtransport' at Xtransint.h:158:1: + type size hasn't changed 1 data member changes (18 filtered): type of 'int (typedef XtransConnInfo, char*, char*)* _Xtransport::Connect' changed: in pointed to type 'function type int (typedef XtransConnInfo, char*, char*)': parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed type of '_IcePingWait* _IceConn::ping_waits' changed: in pointed to type 'struct _IcePingWait' at ICEconn.h:44:1: + type size hasn't changed 1 data member changes (1 filtered): type of 'IcePingReplyProc _IcePingWait::ping_reply_proc' changed: underlying type 'void (typedef IceConn, typedef IcePointer)*' changed: @@ -54,145 +59,178 @@ parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function int IceRegisterForProtocolReply(char*, char*, char*, int, IcePaVersionRec*, int, const char**, IcePaAuthProc*, IceHostBasedAuthProc, IceProtocolSetupProc, IceProtocolActivateProc, IceIOErrorProc)' at register.c:127:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 3 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function int IceRegisterForProtocolSetup(char*, char*, char*, int, IcePoVersionRec*, int, const char**, IcePoAuthProc*, IceIOErrorProc)' at register.c:36:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 3 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void IceUnlockAuthFile(char*)' at authutil.c:205:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void _IceErrorAuthenticationFailed(IceConn, int, char*)' at error.c:225:1 has some indirect sub-type changes: parameter 3 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void _IceErrorAuthenticationRejected(IceConn, int, char*)' at error.c:196:1 has some indirect sub-type changes: parameter 3 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void _IceErrorProtocolDuplicate(IceConn, char*)' at error.c:254:1 has some indirect sub-type changes: parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void _IceErrorSetupFailed(IceConn, int, char*)' at error.c:165:1 has some indirect sub-type changes: parameter 3 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void _IceErrorUnknownProtocol(IceConn, char*)' at error.c:302:1 has some indirect sub-type changes: parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void _IceGetPaAuthData(char*, char*, char*, unsigned short int*, char**)' at getauth.c:88:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 3 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void _IceGetPaValidAuthIndices(char*, char*, int, char**, int*, int*)' at getauth.c:186:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void _IceGetPoAuthData(char*, char*, char*, unsigned short int*, char**)' at getauth.c:57:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 3 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function void _IceGetPoValidAuthIndices(char*, char*, int, char**, int*, int*)' at getauth.c:127:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed parameter 4 of type 'char**' changed: in pointed to type 'char*': in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function int _IceTransConnect(XtransConnInfo, char*)' at Xtrans.c:880:1 has some indirect sub-type changes: parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function int _IceTransCreateListener(XtransConnInfo, char*, unsigned int)' at Xtrans.c:746:1 has some indirect sub-type changes: parameter 2 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function int _IceTransMakeAllCLTSServerListeners(char*, int*, int*, XtransConnInfo**)' at Xtrans.c:1311:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function int _IceTransMakeAllCOTSServerListeners(char*, int*, int*, XtransConnInfo**)' at Xtrans.c:1180:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function int _IceTransNoListen(char*)' at Xtrans.c:781:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function XtransConnInfo _IceTransOpenCLTSClient(char*)' at Xtrans.c:593:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function XtransConnInfo _IceTransOpenCLTSServer(char*)' at Xtrans.c:606:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function XtransConnInfo _IceTransOpenCOTSClient(char*)' at Xtrans.c:567:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed [C]'function XtransConnInfo _IceTransOpenCOTSServer(char*)' at Xtrans.c:580:1 has some indirect sub-type changes: parameter 1 of type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed 1 Removed variable: @@ -206,7 +244,9 @@ array element type 'char*' changed: in pointed to type 'char': entity changed from 'char' to 'const char' + type size hasn't changed type name changed from 'char*[1]' to 'const char*[1]' + type size hasn't changed ================ end of changes of 'libICE.so.6.3.0'=============== diff --git a/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 b/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 index e2ad40a5..d74de651 100644 --- a/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 +++ b/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 @@ -16,15 +16,19 @@ parameter 1 of type 'const sigc::connection&' has sub-type changes: in referenced type 'const sigc::connection': in unqualified underlying type 'struct sigc::connection': + type size hasn't changed 1 data member change: type of 'sigc::slot_base* sigc::connection::slot_' changed: in pointed to type 'class sigc::slot_base': + type size hasn't changed 1 data member change: type of 'sigc::slot_base::rep_type* sigc::slot_base::rep_' changed: in pointed to type 'typedef sigc::slot_base::rep_type': underlying type 'struct sigc::internal::slot_rep' changed: + type size hasn't changed 1 base class change: 'struct sigc::trackable' changed: + type size hasn't changed 1 data member change: type of 'sigc::internal::trackable_callback_list* sigc::trackable::callback_list_' changed: in pointed to type 'struct sigc::internal::trackable_callback_list': @@ -39,7 +43,7 @@ 1 base class insertion: class std::__cxx11::_List_base > - 'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) + 'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits) diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt index acd317d6..d730be21 100644 --- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt +++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt @@ -31,26 +31,33 @@ in referenced type 'const tbb::internal::concurrent_queue_base': in unqualified underlying type 'typedef tbb::internal::concurrent_queue_base' at concurrent_queue.cpp:57:1: underlying type 'class tbb::internal::concurrent_queue_base_v3' at _concurrent_queue_impl.h:834:1 changed: + type size hasn't changed 1 data member change: type of 'tbb::internal::concurrent_queue_rep* tbb::internal::concurrent_queue_base_v3::my_rep' changed: in pointed to type 'class tbb::internal::concurrent_queue_rep' at concurrent_queue_v2.cpp:102:1: + type size hasn't changed 2 data member changes (1 filtered): type of 'tbb::internal::concurrent_monitor tbb::internal::concurrent_queue_rep::items_avail' changed: + type size hasn't changed 1 data member change: - 'tbb::spin_mutex tbb::internal::concurrent_monitor::mutex_ec' offset changed from 0 to 8 (in bits) + 'tbb::spin_mutex tbb::internal::concurrent_monitor::mutex_ec' offset changed from 0 to 8 (in bits) (by +8 bits) type of 'tbb::internal::micro_queue tbb::internal::concurrent_queue_rep::array[8]' changed: array element type 'struct tbb::internal::micro_queue' changed: + type size hasn't changed 1 data member change: type of 'tbb::spin_mutex tbb::internal::micro_queue::page_mutex' changed: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 + type size hasn't changed [C]'function void tbb::internal::throw_exception_v4(tbb::internal::exception_id)' at tbb_misc.cpp:119:1 has some indirect sub-type changes: parameter 1 of type 'enum tbb::internal::exception_id' has sub-type changes: + type size hasn't changed 1 enumerator insertion: 'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20' @@ -61,12 +68,14 @@ [C]'method void tbb::mutex::scoped_lock::internal_acquire(tbb::mutex&)' at mutex.h:129:1 has some indirect sub-type changes: parameter 1 of type 'tbb::mutex&' has sub-type changes: in referenced type 'class tbb::mutex' at mutex.h:40:1: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 [C]'method void tbb::pipeline::run(std::size_t, tbb::task_group_context&)' at pipeline.cpp:633:1 has some indirect sub-type changes: parameter 2 of type 'tbb::task_group_context&' has sub-type changes: in referenced type 'class tbb::task_group_context' at task.h:302:1: + type size hasn't changed 1 data member insertion: 'tbb::internal::cpu_ctl_env_space tbb::task_group_context::my_cpu_ctl_env', at offset 896 (in bits) at task.h:380:1 2 data member changes (1 filtered): @@ -87,6 +96,7 @@ 2 data member changes (1 filtered): type of 'tbb::internal::arena* tbb::internal::scheduler_state::my_arena' changed: in pointed to type 'class tbb::internal::arena' at arena.h:160:1: + type size hasn't changed 1 base class deletion: struct tbb::internal::padded at tbb_stddef.h:261:1 1 base class insertion: @@ -94,18 +104,22 @@ 1 data member change: type of 'tbb::internal::arena_slot tbb::internal::arena::my_slots[1]' changed: array element type 'struct tbb::internal::arena_slot' changed: + type size hasn't changed 2 base class deletions: struct tbb::internal::padded at tbb_stddef.h:261:1 struct tbb::internal::padded at tbb_stddef.h:261:1 2 base class insertions: struct tbb::internal::padded at tbb_stddef.h:251:1 struct tbb::internal::padded at tbb_stddef.h:251:1 + type size hasn't changed type of 'tbb::internal::mail_inbox tbb::internal::scheduler_state::my_inbox' changed: + type size hasn't changed 1 data member change: type of 'tbb::internal::mail_outbox* tbb::internal::mail_inbox::my_putter' changed: in pointed to type 'class tbb::internal::mail_outbox' at mailbox.h:103:1: + type size hasn't changed 1 base class deletion: class tbb::internal::unpadded_mail_outbox at mailbox.h:97:1 1 base class insertion: @@ -124,7 +138,7 @@ 'volatile uintptr_t* tbb::internal::generic_scheduler::my_ref_reload_epoch', at offset 2752 (in bits) at scheduler.h:443:1 18 data member changes: - 'uintptr_t tbb::internal::generic_scheduler::my_stealing_threshold' offset changed from 704 to 832 (in bits) + 'uintptr_t tbb::internal::generic_scheduler::my_stealing_threshold' offset changed from 704 to 832 (in bits) (by +128 bits) type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed: in pointed to type 'class tbb::internal::market' at market.h:49:1: type size changed from 1664 to 1728 bits @@ -146,52 +160,58 @@ type size changed from 8 to 64 bits - 'intptr_t tbb::internal::market::my_global_top_priority' offset changed from 384 to 448 (in bits) - 'intptr_t tbb::internal::market::my_global_bottom_priority' offset changed from 448 to 512 (in bits) - 'uintptr_t tbb::internal::market::my_global_reload_epoch' offset changed from 512 to 576 (in bits) + 'intptr_t tbb::internal::market::my_global_top_priority' offset changed from 384 to 448 (in bits) (by +64 bits) + 'intptr_t tbb::internal::market::my_global_bottom_priority' offset changed from 448 to 512 (in bits) (by +64 bits) + 'uintptr_t tbb::internal::market::my_global_reload_epoch' offset changed from 512 to 576 (in bits) (by +64 bits) type of 'tbb::internal::market::priority_level_info tbb::internal::market::my_priority_levels[3]' changed: array element type 'struct tbb::internal::market::priority_level_info' changed: + type size hasn't changed 1 data member change: type of 'tbb::internal::intrusive_list_base, tbb::internal::arena>::iterator tbb::internal::market::priority_level_info::next_arena' changed: entity changed from 'class tbb::internal::intrusive_list_base, tbb::internal::arena>::iterator' to 'tbb::internal::arena*' - - and offset changed from 576 to 640 (in bits) - 'uintptr_t tbb::internal::market::my_arenas_aba_epoch' offset changed from 1536 to 1600 (in bits) - 'tbb::internal::generic_scheduler* tbb::internal::market::my_workers[1]' offset changed from 1600 to 1664 (in bits) - and offset changed from 768 to 896 (in bits) - 'tbb::internal::FastRandom tbb::internal::generic_scheduler::my_random' offset changed from 832 to 960 (in bits) - 'tbb::task* tbb::internal::generic_scheduler::my_free_list' offset changed from 960 to 1024 (in bits) - 'tbb::task* tbb::internal::generic_scheduler::my_dummy_task' offset changed from 1024 to 1088 (in bits) - 'long int tbb::internal::generic_scheduler::my_ref_count' offset changed from 1088 to 1152 (in bits) - 'bool tbb::internal::generic_scheduler::my_auto_initialized' offset changed from 1152 to 1216 (in bits) - 'intptr_t tbb::internal::generic_scheduler::my_small_task_count' offset changed from 1216 to 1280 (in bits) - 'tbb::task* tbb::internal::generic_scheduler::my_return_list' offset changed from 1280 to 1344 (in bits) - 'char tbb::internal::generic_scheduler::_padding1[112]' offset changed from 1344 to 1408 (in bits) - 'tbb::internal::context_list_node_t tbb::internal::generic_scheduler::my_context_list_head' offset changed from 2240 to 2304 (in bits) - 'tbb::spin_mutex tbb::internal::generic_scheduler::my_context_list_mutex' offset changed from 2368 to 2432 (in bits) - 'uintptr_t tbb::internal::generic_scheduler::my_context_state_propagation_epoch' offset changed from 2432 to 2496 (in bits) - 'tbb::atomic tbb::internal::generic_scheduler::my_local_ctx_list_update' offset changed from 2496 to 2560 (in bits) - 'uintptr_t tbb::internal::generic_scheduler::my_local_reload_epoch' offset changed from 2816 to 2752 (in bits) - 'volatile bool tbb::internal::generic_scheduler::my_pool_reshuffling_pending' offset changed from 2880 to 2816 (in bits) - 'tbb::atomic tbb::internal::generic_scheduler::my_nonlocal_ctx_list_update' offset changed from 2944 to 2880 (in bits) - '__cilk_tbb_unwatch_thunk tbb::internal::generic_scheduler::my_cilk_unwatch_thunk' offset changed from 3008 to 2944 (in bits) + type size hasn't changed + + type size hasn't changed + and offset changed from 576 to 640 (in bits) (by +64 bits) + 'uintptr_t tbb::internal::market::my_arenas_aba_epoch' offset changed from 1536 to 1600 (in bits) (by +64 bits) + 'tbb::internal::generic_scheduler* tbb::internal::market::my_workers[1]' offset changed from 1600 to 1664 (in bits) (by +64 bits) + and offset changed from 768 to 896 (in bits) (by +128 bits) + 'tbb::internal::FastRandom tbb::internal::generic_scheduler::my_random' offset changed from 832 to 960 (in bits) (by +128 bits) + 'tbb::task* tbb::internal::generic_scheduler::my_free_list' offset changed from 960 to 1024 (in bits) (by +64 bits) + 'tbb::task* tbb::internal::generic_scheduler::my_dummy_task' offset changed from 1024 to 1088 (in bits) (by +64 bits) + 'long int tbb::internal::generic_scheduler::my_ref_count' offset changed from 1088 to 1152 (in bits) (by +64 bits) + 'bool tbb::internal::generic_scheduler::my_auto_initialized' offset changed from 1152 to 1216 (in bits) (by +64 bits) + 'intptr_t tbb::internal::generic_scheduler::my_small_task_count' offset changed from 1216 to 1280 (in bits) (by +64 bits) + 'tbb::task* tbb::internal::generic_scheduler::my_return_list' offset changed from 1280 to 1344 (in bits) (by +64 bits) + 'char tbb::internal::generic_scheduler::_padding1[112]' offset changed from 1344 to 1408 (in bits) (by +64 bits) + 'tbb::internal::context_list_node_t tbb::internal::generic_scheduler::my_context_list_head' offset changed from 2240 to 2304 (in bits) (by +64 bits) + 'tbb::spin_mutex tbb::internal::generic_scheduler::my_context_list_mutex' offset changed from 2368 to 2432 (in bits) (by +64 bits) + 'uintptr_t tbb::internal::generic_scheduler::my_context_state_propagation_epoch' offset changed from 2432 to 2496 (in bits) (by +64 bits) + 'tbb::atomic tbb::internal::generic_scheduler::my_local_ctx_list_update' offset changed from 2496 to 2560 (in bits) (by +64 bits) + 'uintptr_t tbb::internal::generic_scheduler::my_local_reload_epoch' offset changed from 2816 to 2752 (in bits) (by -64 bits) + 'volatile bool tbb::internal::generic_scheduler::my_pool_reshuffling_pending' offset changed from 2880 to 2816 (in bits) (by -64 bits) + 'tbb::atomic tbb::internal::generic_scheduler::my_nonlocal_ctx_list_update' offset changed from 2944 to 2880 (in bits) (by -64 bits) + '__cilk_tbb_unwatch_thunk tbb::internal::generic_scheduler::my_cilk_unwatch_thunk' offset changed from 3008 to 2944 (in bits) (by -64 bits) [C]'method void tbb::queuing_mutex::scoped_lock::acquire(tbb::queuing_mutex&)' at queuing_mutex.h:84:1 has some indirect sub-type changes: parameter 1 of type 'tbb::queuing_mutex&' has sub-type changes: in referenced type 'class tbb::queuing_mutex' at queuing_mutex.h:45:1: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 [C]'method void tbb::queuing_rw_mutex::scoped_lock::acquire(tbb::queuing_rw_mutex&, bool)' at queuing_rw_mutex.h:95:1 has some indirect sub-type changes: parameter 1 of type 'tbb::queuing_rw_mutex&' has sub-type changes: in referenced type 'class tbb::queuing_rw_mutex' at queuing_rw_mutex.h:47:1: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 [C]'method void tbb::recursive_mutex::scoped_lock::internal_acquire(tbb::recursive_mutex&)' at recursive_mutex.h:139:1 has some indirect sub-type changes: parameter 1 of type 'tbb::recursive_mutex&' has sub-type changes: in referenced type 'class tbb::recursive_mutex' at recursive_mutex.h:39:1: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt index cf7b83a9..abdb69d6 100644 --- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt +++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt @@ -28,6 +28,7 @@ [C]'function void tbb::internal::throw_exception_v4(tbb::internal::exception_id)' at tbb_misc.cpp:119:1 has some indirect sub-type changes: parameter 1 of type 'enum tbb::internal::exception_id' has sub-type changes: + type size hasn't changed 1 enumerator insertion: 'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20' @@ -38,12 +39,14 @@ [C]'method void tbb::mutex::scoped_lock::internal_acquire(tbb::mutex&)' at mutex.h:129:1 has some indirect sub-type changes: parameter 1 of type 'tbb::mutex&' has sub-type changes: in referenced type 'class tbb::mutex' at mutex.h:40:1: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 [C]'method void tbb::pipeline::run(std::size_t, tbb::task_group_context&)' at pipeline.cpp:633:1 has some indirect sub-type changes: parameter 2 of type 'tbb::task_group_context&' has sub-type changes: in referenced type 'class tbb::task_group_context' at task.h:302:1: + type size hasn't changed 1 data member insertion: 'tbb::internal::cpu_ctl_env_space tbb::task_group_context::my_cpu_ctl_env', at offset 896 (in bits) at task.h:380:1 1 data member changes (1 filtered): @@ -56,24 +59,28 @@ [C]'method void tbb::queuing_mutex::scoped_lock::acquire(tbb::queuing_mutex&)' at queuing_mutex.h:84:1 has some indirect sub-type changes: parameter 1 of type 'tbb::queuing_mutex&' has sub-type changes: in referenced type 'class tbb::queuing_mutex' at queuing_mutex.h:45:1: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 [C]'method void tbb::queuing_rw_mutex::scoped_lock::acquire(tbb::queuing_rw_mutex&, bool)' at queuing_rw_mutex.h:95:1 has some indirect sub-type changes: parameter 1 of type 'tbb::queuing_rw_mutex&' has sub-type changes: in referenced type 'class tbb::queuing_rw_mutex' at queuing_rw_mutex.h:47:1: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 [C]'method void tbb::recursive_mutex::scoped_lock::internal_acquire(tbb::recursive_mutex&)' at recursive_mutex.h:139:1 has some indirect sub-type changes: parameter 1 of type 'tbb::recursive_mutex&' has sub-type changes: in referenced type 'class tbb::recursive_mutex' at recursive_mutex.h:39:1: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 [C]'method void tbb::spin_mutex::scoped_lock::internal_acquire(tbb::spin_mutex&)' at spin_mutex.h:66:1 has some indirect sub-type changes: parameter 1 of type 'tbb::spin_mutex&' has sub-type changes: in referenced type 'class tbb::spin_mutex' at spin_mutex.h:40:1: + type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt index 0250d930..6f64b97e 100644 --- a/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt +++ b/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(MyType*)' has some indirect sub-type changes: parameter 1 of type 'MyType*' has sub-type changes: in pointed to type 'struct MyType': + type size hasn't changed 1 data member change: type of 'MyType::Private* MyType::priv' changed: in pointed to type 'struct MyType::Private': diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt index 0250d930..6f64b97e 100644 --- a/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt +++ b/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(MyType*)' has some indirect sub-type changes: parameter 1 of type 'MyType*' has sub-type changes: in pointed to type 'struct MyType': + type size hasn't changed 1 data member change: type of 'MyType::Private* MyType::priv' changed: in pointed to type 'struct MyType::Private': diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt index 0250d930..6f64b97e 100644 --- a/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt +++ b/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(MyType*)' has some indirect sub-type changes: parameter 1 of type 'MyType*' has sub-type changes: in pointed to type 'struct MyType': + type size hasn't changed 1 data member change: type of 'MyType::Private* MyType::priv' changed: in pointed to type 'struct MyType::Private': diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt index 0250d930..6f64b97e 100644 --- a/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt +++ b/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt @@ -6,6 +6,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function void foo(MyType*)' has some indirect sub-type changes: parameter 1 of type 'MyType*' has sub-type changes: in pointed to type 'struct MyType': + type size hasn't changed 1 data member change: type of 'MyType::Private* MyType::priv' changed: in pointed to type 'struct MyType::Private': diff --git a/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt b/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt index ae711cd3..85851307 100644 --- a/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt +++ b/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char b_type::m_char', at offset 0 (in bits) 1 data member change: - 'int b_type::m_int' offset changed from 0 to 32 (in bits) + 'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'function void foo(a_type*)' has some indirect sub-type changes: parameter 1 of type 'a_type*' has sub-type changes: @@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char a_type::m_char', at offset 0 (in bits) 1 data member change: - 'int a_type::m_int' offset changed from 0 to 32 (in bits) + 'int a_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt b/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt index 23cb642d..07a729eb 100644 --- a/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt +++ b/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char b_type::m_char', at offset 0 (in bits) 1 data member change: - 'int b_type::m_int' offset changed from 0 to 32 (in bits) + 'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt index e42098de..faaecb89 100644 --- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt +++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt @@ -6,12 +6,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function int foo(int, int)' has some indirect sub-type changes: return type changed: type name changed from 'int' to 'float' + type size hasn't changed parameter 1 of type 'int' changed: type name changed from 'int' to 'float' + type size hasn't changed parameter 2 of type 'int' changed: type name changed from 'int' to 'float' + type size hasn't changed diff --git a/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt b/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt index 550df0d8..0b4e80f8 100644 --- a/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt +++ b/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char C::inserted_char_member', at offset 0 (in bits) 1 data member change: - 'int C::int_member' offset changed from 0 to 32 (in bits) + 'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt b/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt index 805a4b44..43297d86 100644 --- a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt +++ b/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt @@ -13,6 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S::m0' offset changed from 0 to 32 (in bits) + 'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt b/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt index 805a4b44..43297d86 100644 --- a/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt +++ b/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt @@ -13,6 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S::m0' offset changed from 0 to 32 (in bits) + 'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt index bea22acd..3a177c4c 100644 --- a/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt +++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt @@ -10,13 +10,13 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::inserted_char_member', at offset 0 (in bits) 1 data member change: - 'int S::int_member' offset changed from 0 to 32 (in bits) + 'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 bits) parameter 2 of type 'C&' has sub-type changes: in referenced type 'class C': type size changed from 32 to 64 bits 1 data member insertion: 'char C::inserted_char_member', at offset 0 (in bits) 1 data member change: - 'int C::int_member' offset changed from 0 to 32 (in bits) + 'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt index 4c259082..19ce1e6b 100644 --- a/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt +++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char C::inserted_char_member', at offset 0 (in bits) 1 data member change: - 'int C::int_member' offset changed from 0 to 32 (in bits) + 'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt index 224dd6dc..859ada9d 100644 --- a/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt +++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::inserted_char_member', at offset 0 (in bits) 1 data member change: - 'int S::int_member' offset changed from 0 to 32 (in bits) + 'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test30-report-0.txt b/tests/data/test-diff-suppr/test30-report-0.txt index a842ca37..20f151bc 100644 --- a/tests/data/test-diff-suppr/test30-report-0.txt +++ b/tests/data/test-diff-suppr/test30-report-0.txt @@ -20,6 +20,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C]'function int public_function(S*)' at test30-pub-lib-v1.cc:22:1 has some indirect sub-type changes: parameter 1 of type 'S*' has sub-type changes: in pointed to type 'class S' at test30-pub-lib-v1.h:1:1: + type size hasn't changed 1 data member change: type of 'S::priv_type* S::priv' changed: in pointed to type 'class S::priv_type' at test30-pub-lib-v1.cc:14:1: diff --git a/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt b/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt index 72a22925..e8038424 100644 --- a/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt +++ b/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt @@ -15,7 +15,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable type size changed from 32 to 64 bits 1 data member insertion: 'char private_data::private_data1', at offset 32 (in bits) - and offset changed from 0 to 64 (in bits) + and offset changed from 0 to 64 (in bits) (by +64 bits) parameter 2 of type 'a_not_private_type*' has sub-type changes: in pointed to type 'struct a_not_private_type': type size changed from 32 to 64 bits diff --git a/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt b/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt index 414a4258..aa5790f3 100644 --- a/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt +++ b/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'unsigned int public_type::oops', at offset 0 (in bits) 1 data member change: - 'private_data* public_type::priv_' offset changed from 0 to 64 (in bits) + 'private_data* public_type::priv_' offset changed from 0 to 64 (in bits) (by +64 bits) parameter 2 of type 'a_not_private_type*' has sub-type changes: in pointed to type 'struct a_not_private_type': type size changed from 32 to 64 bits diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt index 76ff8710..05793e01 100644 --- a/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt +++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::m0', at offset 0 (in bits) 1 data member change: - 'int S::m1' offset changed from 0 to 32 (in bits) + 'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'function void bar(int, S)' has some indirect sub-type changes: parameter 2 of type 'struct S' has sub-type changes: diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt index 97716fbd..ebfe16cb 100644 --- a/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt +++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt @@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::m0', at offset 0 (in bits) 1 data member change: - 'int S::m1' offset changed from 0 to 32 (in bits) + 'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt index 97716fbd..ebfe16cb 100644 --- a/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt +++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt @@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::m0', at offset 0 (in bits) 1 data member change: - 'int S::m1' offset changed from 0 to 32 (in bits) + 'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt index 97716fbd..ebfe16cb 100644 --- a/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt +++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt @@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::m0', at offset 0 (in bits) 1 data member change: - 'int S::m1' offset changed from 0 to 32 (in bits) + 'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt index 79a7feaf..cde992bc 100644 --- a/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt +++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::m0', at offset 0 (in bits) 1 data member change: - 'int S::m1' offset changed from 0 to 32 (in bits) + 'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt index 97716fbd..ebfe16cb 100644 --- a/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt +++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt @@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 data member insertion: 'char S::m0', at offset 0 (in bits) 1 data member change: - 'int S::m1' offset changed from 0 to 32 (in bits) + 'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt index fcaf5dfe..eced8dce 100644 --- a/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt +++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base at test6-fn-suppr-v1.cc:4:1 1 data member change: - 'int S1::m0' offset changed from 0 to 32 (in bits) + 'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'function int bar(S&)' at test6-fn-suppr-v1.cc:42:1 has some indirect sub-type changes: parameter 1 of type 'S&' has sub-type changes: @@ -19,7 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base at test6-fn-suppr-v1.cc:4:1 1 data member change: - 'int S::m0' offset changed from 0 to 32 (in bits) + 'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'function char bar(int, S2**)' at test6-fn-suppr-v1.cc:52:1 has some indirect sub-type changes: parameter 2 of type 'S2**' has sub-type changes: @@ -29,6 +29,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base at test6-fn-suppr-v1.cc:4:1 1 data member change: - 'int S2::m0' offset changed from 0 to 32 (in bits) + 'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt index 09484439..1fc6b9b3 100644 --- a/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt +++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base 1 data member change: - 'int S1::m0' offset changed from 0 to 32 (in bits) + 'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'function int bar(S&)' has some indirect sub-type changes: parameter 1 of type 'S&' has sub-type changes: @@ -19,7 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base 1 data member change: - 'int S::m0' offset changed from 0 to 32 (in bits) + 'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'function char bar(int, S2**)' has some indirect sub-type changes: parameter 2 of type 'S2**' has sub-type changes: @@ -29,6 +29,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base 1 data member change: - 'int S2::m0' offset changed from 0 to 32 (in bits) + 'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt index 3a368f9a..5d2a1ef8 100644 --- a/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt +++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base 1 data member change: - 'int S1::m0' offset changed from 0 to 32 (in bits) + 'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'function char bar(int, S2**)' has some indirect sub-type changes: parameter 2 of type 'S2**' has sub-type changes: @@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base 1 data member change: - 'int S2::m0' offset changed from 0 to 32 (in bits) + 'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt index 3a368f9a..5d2a1ef8 100644 --- a/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt +++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base 1 data member change: - 'int S1::m0' offset changed from 0 to 32 (in bits) + 'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'function char bar(int, S2**)' has some indirect sub-type changes: parameter 2 of type 'S2**' has sub-type changes: @@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base 1 data member change: - 'int S2::m0' offset changed from 0 to 32 (in bits) + 'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt index 3a368f9a..5d2a1ef8 100644 --- a/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt +++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base 1 data member change: - 'int S1::m0' offset changed from 0 to 32 (in bits) + 'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'function char bar(int, S2**)' has some indirect sub-type changes: parameter 2 of type 'S2**' has sub-type changes: @@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 base class insertion: struct base 1 data member change: - 'int S2::m0' offset changed from 0 to 32 (in bits) + 'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt index 32b823b9..41050878 100644 --- a/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt +++ b/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables 1 data member insertion: 'char S0::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S0::m0' offset changed from 0 to 32 (in bits) + 'int S0::m0' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'S1* var1' was changed: type of variable changed: @@ -19,6 +19,6 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables 1 data member insertion: 'char S1::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S1::m0' offset changed from 0 to 32 (in bits) + 'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt index 2062d3c7..dcb700b1 100644 --- a/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt +++ b/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab 1 data member insertion: 'char S1::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S1::m0' offset changed from 0 to 32 (in bits) + 'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt index 1e34357a..55dd3f5a 100644 --- a/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt +++ b/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab 1 data member insertion: 'char S0::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S0::m0' offset changed from 0 to 32 (in bits) + 'int S0::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt index 2062d3c7..dcb700b1 100644 --- a/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt +++ b/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab 1 data member insertion: 'char S1::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S1::m0' offset changed from 0 to 32 (in bits) + 'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt index 1e34357a..55dd3f5a 100644 --- a/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt +++ b/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab 1 data member insertion: 'char S0::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S0::m0' offset changed from 0 to 32 (in bits) + 'int S0::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt index 1e34357a..55dd3f5a 100644 --- a/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt +++ b/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt @@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab 1 data member insertion: 'char S0::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S0::m0' offset changed from 0 to 32 (in bits) + 'int S0::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt index 32b823b9..41050878 100644 --- a/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt +++ b/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt @@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables 1 data member insertion: 'char S0::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S0::m0' offset changed from 0 to 32 (in bits) + 'int S0::m0' offset changed from 0 to 32 (in bits) (by +32 bits) [C]'S1* var1' was changed: type of variable changed: @@ -19,6 +19,6 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables 1 data member insertion: 'char S1::inserted_member', at offset 0 (in bits) 1 data member change: - 'int S1::m0' offset changed from 0 to 32 (in bits) + 'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits) diff --git a/tests/test-diff-dwarf.cc b/tests/test-diff-dwarf.cc index bab1661e..68878193 100644 --- a/tests/test-diff-dwarf.cc +++ b/tests/test-diff-dwarf.cc @@ -308,6 +308,12 @@ InOutSpec in_out_specs[] = "data/test-diff-dwarf/test39-union-report-0.txt", "output/test-diff-dwarf/test39-union-report-0.txt" }, + { + "data/test-diff-dwarf/libtest40-v0.so", + "data/test-diff-dwarf/libtest40-v1.so", + "data/test-diff-dwarf/test40-report-0.txt", + "output/test-diff-dwarf/test40-report-0.txt" + }, // This should be the last entry {NULL, NULL, NULL, NULL} }; diff --git a/tools/abidiff.cc b/tools/abidiff.cc index 4d344d6c..fefcf7d9 100644 --- a/tools/abidiff.cc +++ b/tools/abidiff.cc @@ -78,6 +78,7 @@ struct options bool drop_private_types; bool no_default_supprs; bool no_arch; + bool show_relative_offset_changes; bool show_stats_only; bool show_symtabs; bool show_deleted_fns; @@ -107,6 +108,7 @@ struct options drop_private_types(true), no_default_supprs(), no_arch(), + show_relative_offset_changes(true), show_stats_only(), show_symtabs(), show_deleted_fns(), @@ -159,6 +161,8 @@ display_usage(const string& prog_name, ostream& out) << " --no-unreferenced-symbols do not display changes " "about symbols not referenced by debug info\n" << " --no-show-locs do now show location information\n" + << " --no-show-relative-offset-changes do not show relative" + " offset changes\n" << " --suppressions|--suppr specify a suppression file\n" << " --drop drop functions and variables matching a regexp\n" << " --drop-fn drop functions matching a regexp\n" @@ -327,6 +331,8 @@ parse_command_line(int argc, char* argv[], options& opts) opts.show_symbols_not_referenced_by_debug_info = false; else if (!strcmp(argv[i], "--no-show-locs")) opts.show_locs = false; + else if (!strcmp(argv[i], "--no-show-relative-offset-changes")) + opts.show_relative_offset_changes = false; else if (!strcmp(argv[i], "--suppressions") || !strcmp(argv[i], "--suppr")) { @@ -506,6 +512,7 @@ set_diff_context_from_opts(diff_context_sptr ctxt, { ctxt->default_output_stream(&cout); ctxt->error_output_stream(&cerr); + ctxt->show_relative_offset_changes(opts.show_relative_offset_changes); ctxt->show_stats_only(opts.show_stats_only); ctxt->show_deleted_fns(opts.show_all_fns || opts.show_deleted_fns); ctxt->show_changed_fns(opts.show_all_fns || opts.show_changed_fns); diff --git a/tools/abipkgdiff.cc b/tools/abipkgdiff.cc index 4060f01e..6542c32f 100644 --- a/tools/abipkgdiff.cc +++ b/tools/abipkgdiff.cc @@ -170,6 +170,7 @@ public: string debug_package2; string devel_package1; string devel_package2; + bool show_relative_offset_changes; bool no_default_suppression; bool keep_tmp_files; bool compare_dso_only; @@ -189,6 +190,7 @@ public: missing_operand(), abignore(true), parallel(true), + show_relative_offset_changes(true), no_default_suppression(), keep_tmp_files(), compare_dso_only(), @@ -607,6 +609,8 @@ display_usage(const string& prog_name, ostream& out) "added/removed/changed\n" << " --redundant display redundant changes\n" << " --no-show-locs do not show location information\n" + << " --no-show-relative-offset-changes do not show relative" + " offset changes\n" << " --no-added-syms do not display added functions or variables\n" << " --no-added-binaries do not display added binaries\n" << " --no-abignore do not look for *.abignore files\n" @@ -973,6 +977,7 @@ set_diff_context_from_opts(diff_context_sptr ctxt, { ctxt->default_output_stream(&cout); ctxt->error_output_stream(&cerr); + ctxt->show_relative_offset_changes(opts.show_relative_offset_changes); ctxt->show_redundant_changes(opts.show_redundant_changes); ctxt->show_locs(opts.show_locs); ctxt->show_linkage_names(opts.show_linkage_names); @@ -1908,6 +1913,8 @@ parse_command_line(int argc, char* argv[], options& opts) opts.show_redundant_changes = true; else if (!strcmp(argv[i], "--no-show-locs")) opts.show_locs = false; + else if (!strcmp(argv[i], "--no-show-relative-offset-changes")) + opts.show_relative_offset_changes = false; else if (!strcmp(argv[i], "--no-added-syms")) opts.show_added_syms = false; else if (!strcmp(argv[i], "--no-added-binaries"))