Bug 20887 - Show relative change of offsets
authorDodji Seketeli <dodji@redhat.com>
Fri, 2 Dec 2016 13:41:07 +0000 (14:41 +0100)
committerDodji Seketeli <dodji@redhat.com>
Fri, 2 Dec 2016 20:29:28 +0000 (21:29 +0100)
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 <dodji@redhat.com>
97 files changed:
doc/manuals/abidiff.rst
doc/manuals/abipkgdiff.rst
include/abg-comparison.h
include/abg-ir.h
src/abg-comparison.cc
src/abg-ir.cc
tests/data/Makefile.am
tests/data/test-abicompat/test7-fn-changed-report-0.txt
tests/data/test-abidiff/test-PR18791-report0.txt
tests/data/test-abidiff/test-enum0-report.txt
tests/data/test-abidiff/test-enum1-report.txt
tests/data/test-abidiff/test-struct1-report.txt
tests/data/test-diff-dwarf/libtest40-v0.so [new file with mode: 0755]
tests/data/test-diff-dwarf/libtest40-v1.so [new file with mode: 0755]
tests/data/test-diff-dwarf/test0-report.txt
tests/data/test-diff-dwarf/test1-report.txt
tests/data/test-diff-dwarf/test10-report.txt
tests/data/test-diff-dwarf/test11-report.txt
tests/data/test-diff-dwarf/test13-report.txt
tests/data/test-diff-dwarf/test15-enum-report.txt
tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
tests/data/test-diff-dwarf/test38-union-report-0.txt
tests/data/test-diff-dwarf/test4-report.txt
tests/data/test-diff-dwarf/test40-report-0.txt [new file with mode: 0644]
tests/data/test-diff-dwarf/test40-v0.c [new file with mode: 0644]
tests/data/test-diff-dwarf/test40-v1.c [new file with mode: 0644]
tests/data/test-diff-dwarf/test5-report.txt
tests/data/test-diff-dwarf/test6-report.txt
tests/data/test-diff-dwarf/test8-report.txt
tests/data/test-diff-filter/test0-report.txt
tests/data/test-diff-filter/test01-report.txt
tests/data/test-diff-filter/test1-report.txt
tests/data/test-diff-filter/test13-report.txt
tests/data/test-diff-filter/test16-report-2.txt
tests/data/test-diff-filter/test16-report.txt
tests/data/test-diff-filter/test17-0-report.txt
tests/data/test-diff-filter/test17-1-report.txt
tests/data/test-diff-filter/test18-report.txt
tests/data/test-diff-filter/test19-enum-report-1.txt
tests/data/test-diff-filter/test2-report.txt
tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
tests/data/test-diff-filter/test25-cyclic-type-report-0.txt
tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
tests/data/test-diff-filter/test3-report.txt
tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
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
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
tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
tests/data/test-diff-suppr/test30-report-0.txt
tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
tests/test-diff-dwarf.cc
tools/abidiff.cc
tools/abipkgdiff.cc

index 319c47297443c75780e58eba1740695f639fdfd0..b5b33b9f6ab712ccb9d9e605d2ad5978f7002c81 100644 (file)
@@ -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
index f4b5fa71fa7a857ce72f52a0354775ff08698b7a..351865a2cb800271a6c60b2b347b0835a598fa69 100644 (file)
@@ -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
index 8e1553120ac4110c5f995b5facee69c5f7087a8e..a728b2e450fe6f564013cf01d11512d245a682c2 100644 (file)
@@ -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);
 
index 491466383d4cf87c8ec086454944016901aa8b6d..ab6fc59a80d99bd276c9dc132c610706be96cd3a 100644 (file)
@@ -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
index d6e0fa201f038bef0f1c656d43647e11706eae88..b57e7f0d8e4532e86bd93f72a4819e93a6105af3 100644 (file)
@@ -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))
index 5cdf2cdae5e6fe00d31cf10350fb28894dd3ca60..5d1948f8362aa7f2d28ea4c72660245d48606aba 100644 (file)
@@ -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<var_decl>(d));}
 
index ad11c4115134f60f8de3d39d9680bb780e9eb1b7..f121a7045d3c0d3828c7e1cb1f02a37f454722f5 100644 (file)
@@ -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                      \
index 0dd6fecfdbdce33bdcd4e56a86d1f03e911c10f9..02cee302e896a9759a590a135cc996e0acd424a8 100644 (file)
@@ -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:
index 244f7ca3d553d22427fcba71ad106b25cd69075e..8987342d1634352e3d83c36d7e522eb27ee564b8 100644 (file)
@@ -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<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >
 
-                         '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
index a3232eed68ee6d5a4aa6eb3952fee1c40ae2d24e..a5fe8c2b94b929306d2f7aac4bc0bbacf6e19a12 100644 (file)
@@ -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'
 
index 11a33dd2711e852549f9c476db4ab1730dbca4c9..17517bdb4ead7eb12b1f643624e2cbf270c45784 100644 (file)
@@ -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'
 
index fa1f725fb0e673a0ecaf73ec74d7c571e2c459af..32ad02c0a024170789bcf53ed11f7d5b5c2279f5 100644 (file)
@@ -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 (executable)
index 0000000..d870228
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 (executable)
index 0000000..3635bc5
Binary files /dev/null and b/tests/data/test-diff-dwarf/libtest40-v1.so differ
index 73248c152e2076268c231e81c6d2a4a12444b6d4..8e5e545e3891f38a7e88bf41766ce953ef8df7dc 100644 (file)
@@ -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'
 
 
index 4357b3f352cff571973b53d3a37747507a1e6904..4a3d99448437664a39def6ba04aa5f44b6044e8b 100644 (file)
@@ -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)
 
 
index 57d97588a75c04ce359bc14c07b6622a2f84cd2e..9599e2f543888ad87cfad910265b0abc0c4abfad 100644 (file)
@@ -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)
 
 
index 18983cf2a3491f63a3b50e68f1cf66603f7a63e3..3cfa8cf92dd598f5b9634c01ff9ce2bc1d24bd4b 100644 (file)
@@ -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)
 
 
index dd4836f5a42fc9ee5b6348ec58cd84f099d0887b..b777aaf82790936d3804931c859b41bc809bad96 100644 (file)
@@ -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)
 
 
index f5f592df9f594c2a430a52eec93ea7feb0fb5e74..19326c5b5f173b2eae6ea5a22452fe530a212f8a 100644 (file)
@@ -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'
index 8eac5514c8211a0d4a93b7186fab15ab9b8fe06d..59761af8f45112d7966d43f05333801e04a9770a 100644 (file)
@@ -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)
 
 
index bb934eaf42c0653f3b70e47a9cd2004eded2680d..be1bd906223df7964e537330b2bd4b70fc63f2d2 100644 (file)
@@ -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 ()':
index b5ab2efdc6360c1a42ce050254577f7e78406789..ebaa194e33554ff01697197aa87cc2ebd5a84a1b 100644 (file)
@@ -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 ()':
index 5187e7833d2da3383b3ac22fc2d824e0ad525012..4d5b0e79f1daf56d41d5402b54e550f1bae4ed5e 100644 (file)
@@ -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'
 
index 09f7bf0db864506642556f17819ea2085985f35d..2df515a4e062f4f0f93694a0e5c8e125b13fe634 100644 (file)
@@ -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 (file)
index 0000000..8ab1404
--- /dev/null
@@ -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 (file)
index 0000000..3655e3e
--- /dev/null
@@ -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 (file)
index 0000000..d42081a
--- /dev/null
@@ -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;
+}
index c10e4029a8f9eb9f5fb1fe0cd570abc025f71759..2f099dbc1db89ee2921fe104d09cd2ea7b6424fc 100644 (file)
@@ -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'
 
index 3e3888f9d96dafe1ed1f2811e7a06b6e804f16d0..358172566dc940bc5d8d412077e84129d58bf4fd 100644 (file)
@@ -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'
 
index 8bed6c59001b5193821056a9cbcd26ab5e8fec00..92f847161c945056358b8018c7e1b223a100d8ec 100644 (file)
@@ -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'
 
 
index ed070670f05395e14168a8ef55ca6a439a1dd7f8..c7c81eaa33484bb83ad76acadf74bc8c1bb23bf2 100644 (file)
@@ -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)
 
 
index 2b67c691f954ebf6c3eda332556368db2c4465b6..1f5e9036fbfd0f8a4405afcc6f8f8d0690f2edcc 100644 (file)
@@ -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'
 
 
index a815402ddd9449e4cc833a0119221a461f3ec1d2..c309900244d94d236d9627982d4f72d52681bc92 100644 (file)
@@ -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)
 
 
index 5be56142bb69bcdc66b5f9a264708267c79c526f..e701d75a2addb5529222e1cce43bcea6c4134e87 100644 (file)
@@ -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)
 
 
index 0459378957503dbb1d4d0a3f59619f7b17ff503b..fa4b859fdd809259aaf2d0839a9de08702797731 100644 (file)
@@ -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)
 
 
index 84a609ad5d4c5b30d64f7c7162dbc844034a0a2b..2d84fceece65a52f134e5cab9fdd9be274b7deb8 100644 (file)
@@ -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)
 
 
index e1ceb5e5df4c227ec3ff793700e84703c1f147a0..3a418b37ea92fac189f3f993ae91f7acb7320a6c 100644 (file)
@@ -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)
 
 
index ab59d945aff96ce982d8cef3434156ddffd76777..e176a1ebe35bcaa5814aa36dfc4e4511a3e7b62b 100644 (file)
@@ -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:
index 5d1d75797a83975ae4cab60fced4751e9e91493e..08e354fb35b2d9ab570969cf6086759df68908e1 100644 (file)
@@ -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
 
 
 
index f5f592df9f594c2a430a52eec93ea7feb0fb5e74..19326c5b5f173b2eae6ea5a22452fe530a212f8a 100644 (file)
@@ -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'
index 3de7c5ae188dc41887f6de5a89c9cbb09ecb0516..2aa1dc276fd5f3e76c3ac966b936a38ddfb05581 100644 (file)
@@ -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)
 
 
index d3adfb643d9dc780f790d3cd70f55eacd044ae67..a624ef0f95a00fc0c003475c44c7aef72942da42 100644 (file)
@@ -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
 
 
 
index 539f10fcba114b88c3d4e7421e56fd93d14b0274..a961246c50965cbf3b9f74b889bf821f67ce7e47 100644 (file)
@@ -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
 
 
index cbd53e0382d49327c1d46726a8b055939b9ccd06..d6597ef7ff6d27dbaea68654da3832c20f23c6d8 100644 (file)
@@ -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);
index 5bb5f5471abfb161af265ac240c30a4169f699b7..a213d7f9edd7f10ed113ce198e0a182829971b50 100644 (file)
@@ -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:
index 74fd741c286d479f3a0ee903e1d7de5528d26011..7c74f3247bc1126a6f62190dc3b84d4bdb6beffd 100644 (file)
@@ -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)
 
index f1f99a293b0841729ed29d986ce7fb8a95df58dd..593cc1af137eef1f1c74d07af1c1532d6f2b6635 100644 (file)
@@ -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)
 
index 5763bb2c52f1e2101b84cf7bace94ce4da618912..96d942235047a4e4fc3fc94dab9a20163d6cac20 100644 (file)
@@ -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
index 8df10eb903b147927aadc88158c3112af21626a7..82f192641612e47259e89307a1a4224e176b21e8 100644 (file)
@@ -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
index a6665ce30a785e4c2d903abbc86ae3b64cd79e9a..8c594002533e1b440c3965e4f10d5bf94d7c11e8 100644 (file)
@@ -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)
 
 
index 884d80c3390237664185e2e911ca3b5f2dd3d096..b73d79d766f6fddcc425752797798c8228297667 100644 (file)
@@ -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)
 
 
index ae90d02b28d507dccb1fbb5f13a1422f91ecf0ca..b3795893b5442c48e0da9ae004310bf587ea3140 100644 (file)
@@ -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<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed:
                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' changed:
                          type name changed from 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >'
+                         type size hasn't changed
 
                          1 data member change:
                           type of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed:
                             entity changed from 'struct std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>' to compatible type 'typedef std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type'
                               type name changed from 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >'
+                              type size hasn't changed
 
                               1 base class deletion:
                                 class std::allocator<std::_Rb_tree_node<PtrData> >
@@ -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:
index f0429e9366524b533ec812a4653d8ff6c211bc58..939127f8980f6820956f2cc530345f2f3c07fcc2 100644 (file)
@@ -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<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed:
                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_set.h:90:1 changed:
                          type name changed from 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >'
+                         type size hasn't changed
 
                          1 data member change:
                           type of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed:
                             entity changed from 'struct std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>' to compatible type 'typedef std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type' at stl_set.h:115:1
                               type name changed from 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >'
+                              type size hasn't changed
 
                               1 base class deletion:
                                 class std::allocator<std::_Rb_tree_node<PtrData> > 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:
index c90f58232c5f4f11fa8ee119019d8ab4e65531d3..40f24eb3dd1a561c8789cba05d8e27574d1bbf46 100644 (file)
@@ -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'
 
index df78e16de048aca0a3994f37eff2f8ad4b1c7ef4..9a8fe6db408f1c0567b4dae465edc740b5a9d07d 100644 (file)
@@ -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'
 
index c7935b44dca11aa8ec8b2659ed2961ebf5ce2abd..8d2faa6dc6169898d274bbcdd4d688be759ff07c 100644 (file)
       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:
                         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:
       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:
        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'===============
index e2ad40a57c94cfdba5a13e0568a3fb065969d463..d74de65164a9e3f5cf8bf6c7a32740d8d9d0b740 100644 (file)
       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<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >
 
-                                  '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)
 
 
 
index acd317d616da735ef977d68b1fcf3a435efa37f4..d730be210c54ca158487492ebf6535ba204f8987 100644 (file)
         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'
 
     [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<tbb::internal::arena_base> at tbb_stddef.h:261:1
                         1 base class insertion:
                         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<tbb::internal::arena_slot_line1> at tbb_stddef.h:261:1
                                struct tbb::internal::padded<tbb::internal::arena_slot_line2> at tbb_stddef.h:261:1
                              2 base class insertions:
                                struct tbb::internal::padded<tbb::internal::arena_slot_line1, 128ul> at tbb_stddef.h:251:1
                                struct tbb::internal::padded<tbb::internal::arena_slot_line2, 128ul> 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:
                  '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
                                   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::intrusive_list<tbb::internal::arena>, tbb::internal::arena>::iterator tbb::internal::market::priority_level_info::next_arena' changed:
                             entity changed from 'class tbb::internal::intrusive_list_base<tbb::internal::intrusive_list<tbb::internal::arena>, 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<long unsigned int> 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<long unsigned int> 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<long unsigned int> 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<long unsigned int> 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
 
index cf7b83a943a4eb539dcb0777680a9883744f89e1..abdb69d6c527e874c3b49fee3aabded1fc3a8518 100644 (file)
@@ -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'
 
     [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):
     [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
 
index 0250d93051e1adc00665eb7c890682b7830e6a2e..6f64b97ee40b391e934febb580d9fb8d7d0a795f 100644 (file)
@@ -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':
index 0250d93051e1adc00665eb7c890682b7830e6a2e..6f64b97ee40b391e934febb580d9fb8d7d0a795f 100644 (file)
@@ -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':
index 0250d93051e1adc00665eb7c890682b7830e6a2e..6f64b97ee40b391e934febb580d9fb8d7d0a795f 100644 (file)
@@ -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':
index 0250d93051e1adc00665eb7c890682b7830e6a2e..6f64b97ee40b391e934febb580d9fb8d7d0a795f 100644 (file)
@@ -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':
index ae711cd30adb9ca839897ef43c5d86bc5df88f04..858513075dec9f9beb431691f72470c306a49738 100644 (file)
@@ -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)
 
 
index 23cb642d6e07f3eb6faf337f71cf5accfd7f79a1..07a729eb8a242c6fdc439769cc9b73fcb624f407 100644 (file)
@@ -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)
 
 
index e42098dea11a6e1bff636e73faa5c835b94168a5..faaecb895f85352bcd0e536aba9bde84d815c71c 100644 (file)
@@ -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
 
 
 
index 550df0d85cbe897190916805549a7c573accbe2f..0b4e80f85a95a904b88a6c5273b1ad8f7849aaf2 100644 (file)
@@ -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)
 
 
index 805a4b4470f0e3b8fca6cda6755cbe45a71caf33..43297d867a125c6b8755b699e7416c5c9b94744f 100644 (file)
@@ -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)
 
 
index 805a4b4470f0e3b8fca6cda6755cbe45a71caf33..43297d867a125c6b8755b699e7416c5c9b94744f 100644 (file)
@@ -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)
 
 
index bea22acd348e1627b35c242bb65bc7f3d8c6d915..3a177c4cb9c8cbfb65aede2c806193f6894e5fac 100644 (file)
@@ -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)
 
 
index 4c2590828862909e4a883f2745429701a0e77319..19ce1e6b9fd855ef54572e74abf4f53bd3234fe9 100644 (file)
@@ -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)
 
 
index 224dd6dc20354ac1f3a7b8c5402cf477681a6ed9..859ada9d240940be69ea8e9bdc680fa89376c1f7 100644 (file)
@@ -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)
 
 
index a842ca373c2c046421243c113a342f95c078a2d0..20f151bce85d35064e8e1474f15fbbf214ee1faf 100644 (file)
@@ -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:
index 72a22925be9f4b031b34bd8f380463f2dd06954a..e80384246d1277e9fcf26cc8a9328b93b4ecac98 100644 (file)
@@ -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
index 414a4258140439dfbae8b12272791197aef78af0..aa5790f3b697e3888e110228e4068e287e88e311 100644 (file)
@@ -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
index 76ff8710908a185953f371b9833fe3ffa597ebc6..05793e0112855e3aa06b418c3663bc01080ebf88 100644 (file)
@@ -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:
index 97716fbd257842d3912c375cae52f70144e32a6a..ebfe16cb6c7ac018e3e3861817bb3ccc2cd608a0 100644 (file)
@@ -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)
 
 
index 97716fbd257842d3912c375cae52f70144e32a6a..ebfe16cb6c7ac018e3e3861817bb3ccc2cd608a0 100644 (file)
@@ -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)
 
 
index 97716fbd257842d3912c375cae52f70144e32a6a..ebfe16cb6c7ac018e3e3861817bb3ccc2cd608a0 100644 (file)
@@ -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)
 
 
index 79a7feafd0b743a49e51e8d52a81b23f9966035b..cde992bcd6926fce6a97c7c991a7d6d5e0076782 100644 (file)
@@ -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)
 
 
index 97716fbd257842d3912c375cae52f70144e32a6a..ebfe16cb6c7ac018e3e3861817bb3ccc2cd608a0 100644 (file)
@@ -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)
 
 
index fcaf5dfeb1d1e6958421d1469c42fb88c35de713..eced8dce643cd85a40026370b45ad3f82eae2cec 100644 (file)
@@ -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)
 
 
index 09484439511b63420b3a5a4cce4bed90abce8358..1fc6b9b33be2a25389508312de654c9da88f46d2 100644 (file)
@@ -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)
 
 
index 3a368f9a9f827e0531ff3c1e0709a85c78924b7a..5d2a1ef809e17347cd0143c2c8828bb5b65888d8 100644 (file)
@@ -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)
 
 
index 3a368f9a9f827e0531ff3c1e0709a85c78924b7a..5d2a1ef809e17347cd0143c2c8828bb5b65888d8 100644 (file)
@@ -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)
 
 
index 3a368f9a9f827e0531ff3c1e0709a85c78924b7a..5d2a1ef809e17347cd0143c2c8828bb5b65888d8 100644 (file)
@@ -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)
 
 
index 32b823b9745ddd7d499fc7f5f8a429b69132595f..41050878eaa9662805cb6f1525eb50d267bdc04d 100644 (file)
@@ -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)
 
 
index 2062d3c767fa04e43cc86037d95f6b47ed0f97f0..dcb700b154051ce57666ea6d3911e90e43784135 100644 (file)
@@ -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)
 
 
index 1e34357a6cdfeb232061dc00dcd9290a2b06ca14..55dd3f5aecf08d2c08b33e9b4fbc05504c36f2b9 100644 (file)
@@ -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)
 
 
index 2062d3c767fa04e43cc86037d95f6b47ed0f97f0..dcb700b154051ce57666ea6d3911e90e43784135 100644 (file)
@@ -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)
 
 
index 1e34357a6cdfeb232061dc00dcd9290a2b06ca14..55dd3f5aecf08d2c08b33e9b4fbc05504c36f2b9 100644 (file)
@@ -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)
 
 
index 1e34357a6cdfeb232061dc00dcd9290a2b06ca14..55dd3f5aecf08d2c08b33e9b4fbc05504c36f2b9 100644 (file)
@@ -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)
 
 
index 32b823b9745ddd7d499fc7f5f8a429b69132595f..41050878eaa9662805cb6f1525eb50d267bdc04d 100644 (file)
@@ -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)
 
 
index bab1661ea21913cd49172a6249874b7c9fbfe3c7..688781932a009b1d01c824773c6937c4eab73aaf 100644 (file)
@@ -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}
 };
index 4d344d6c293a39c3eb732d586927c8758cc42655..fefcf7d946140c352f8900155704bb0fd248a578 100644 (file)
@@ -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 <path> specify a suppression file\n"
     << " --drop <regex>  drop functions and variables matching a regexp\n"
     << " --drop-fn <regex> 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);
index 4060f01e11e2685d6f43082c851d89a39844edb8..6542c32f50892357b05f7e27771789687e776045 100644 (file)
@@ -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"))