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>
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
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
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);
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
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_;
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),
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.
///
}
}
+/// 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.
///
<< 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())
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))
///
/// @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));
/// @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));
/// @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);}
/// @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));}
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 \
[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:
[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':
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)
[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
[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
1 changed type:
'enum E' changed:
+ type size hasn't changed
1 enumerator deletion:
'E::e2' value '1'
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'
1 changed type:
'enum E' changed:
+ type size hasn't changed
1 enumerator insertion:
'E::e1' value '1'
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'
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
'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'
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)
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)
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)
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)
[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'
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)
[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 ()':
[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 ()':
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 ()':
[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'
[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'
--- /dev/null
+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)
+
+
--- /dev/null
+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;
+}
--- /dev/null
+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;
+}
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'
[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'
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'
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'
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)
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'
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)
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)
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)
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)
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)
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:
[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
[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'
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)
[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
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
[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);
[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:
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)
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)
[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
[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
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)
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)
[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'
[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)
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> >
- '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
'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:
[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'
[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
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
- '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
'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:
[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'
[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'
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'===============
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':
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)
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):
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
[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
[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':
[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':
[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':
[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':
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:
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)
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 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
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)
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)
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)
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)
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)
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)
[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:
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
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
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:
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)
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)
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)
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)
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)
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:
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:
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)
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:
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:
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)
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:
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)
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:
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)
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:
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)
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:
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)
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)
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)
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)
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)
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)
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:
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)
"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}
};
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;
drop_private_types(true),
no_default_supprs(),
no_arch(),
+ show_relative_offset_changes(true),
show_stats_only(),
show_symtabs(),
show_deleted_fns(),
<< " --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"
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"))
{
{
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);
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;
missing_operand(),
abignore(true),
parallel(true),
+ show_relative_offset_changes(true),
no_default_suppression(),
keep_tmp_files(),
compare_dso_only(),
"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"
{
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);
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"))