diff options
author | Dodji Seketeli <dodji@redhat.com> | 2022-03-07 17:55:05 +0100 |
---|---|---|
committer | Dodji Seketeli <dodji@redhat.com> | 2022-03-10 10:57:53 +0100 |
commit | 9eb931c10dc5d5fbeed4219eff2e9332fa3cb67c (patch) | |
tree | 946a0953df86f2c2b0854543d4f3f68f4c1e1771 | |
parent | comparison: Factorize the code that inserts diff nodes to the graph (diff) | |
download | libabigail-9eb931c10dc5d5fbeed4219eff2e9332fa3cb67c.tar.gz libabigail-9eb931c10dc5d5fbeed4219eff2e9332fa3cb67c.tar.bz2 libabigail-9eb931c10dc5d5fbeed4219eff2e9332fa3cb67c.tar.xz |
comparison: Avoid sorting diff nodes with wrong criteria
This should address PR28939, reported at
https://sourceware.org/bugzilla/show_bug.cgi?id=28939
In function_type_diff::chain_into_hierarchy, the diff details
represented by the diff nodes of the function parameters are already
sorted in the vector priv->sorted_changed_parms_by_id_. Note that the
sorting of function parameter diff nodes was done using a criterion
that takes into account the position of each function parameter.
Members of the vector priv->sorted_changed_parms_by_id_ are then added
to the diff graph using diff::append_child_node.
The problem is that diff::append_child_node sorts the children nodes
/again/, this time using a criterion that is different from the one
used in function_type_diff::chain_into_hierarchy. This is wrong.
This patch prevents diff::append_child_node from sorting the children
node because they have been sorted already.
* src/abg-comparison.cc (diff::append_child_node): Do not sort
children nodes here because they must have been sorted already.
* tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust.
* tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise.
* tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise.
* tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise.
* tests/data/test-diff-filter/test41-report-0.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.
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
7 files changed, 45 insertions, 52 deletions
diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc index 5e61ba50..193af52f 100644 --- a/src/abg-comparison.cc +++ b/src/abg-comparison.cc | |||
@@ -2005,11 +2005,6 @@ diff::append_child_node(diff_sptr d) | |||
2005 | // above. | 2005 | // above. |
2006 | priv_->children_.push_back(d.get()); | 2006 | priv_->children_.push_back(d.get()); |
2007 | 2007 | ||
2008 | diff_less_than_functor comp; | ||
2009 | std::sort(priv_->children_.begin(), | ||
2010 | priv_->children_.end(), | ||
2011 | comp); | ||
2012 | |||
2013 | d->priv_->parent_ = this; | 2008 | d->priv_->parent_ = this; |
2014 | } | 2009 | } |
2015 | 2010 | ||
diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt index 20b3859f..77510262 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt | |||
@@ -1270,8 +1270,7 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
1270 | 'void* alloc', at offset 320 (in bits) | 1270 | 'void* alloc', at offset 320 (in bits) |
1271 | 'OffloadDescriptor::OmpAsyncLastEventType omp_last_event_type', at offset 608 (in bits) | 1271 | 'OffloadDescriptor::OmpAsyncLastEventType omp_last_event_type', at offset 608 (in bits) |
1272 | 4 data member changes (3 filtered): | 1272 | 4 data member changes (3 filtered): |
1273 | 'CeanReadRanges* read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) | 1273 | type of 'CeanReadRanges* read_rng_src' changed: |
1274 | type of 'CeanReadRanges* read_rng_dst' changed: | ||
1275 | in pointed to type 'struct CeanReadRanges': | 1274 | in pointed to type 'struct CeanReadRanges': |
1276 | type size changed from 512 to 576 (in bits) | 1275 | type size changed from 512 to 576 (in bits) |
1277 | 1 data member insertion: | 1276 | 1 data member insertion: |
@@ -1284,7 +1283,8 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
1284 | 'int last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) | 1283 | 'int last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) |
1285 | 'int64_t init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) | 1284 | 'int64_t init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) |
1286 | 'CeanReadDim Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) | 1285 | 'CeanReadDim Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) |
1287 | and offset changed from 384 to 448 (in bits) (by +64 bits) | 1286 | and offset changed from 320 to 384 (in bits) (by +64 bits) |
1287 | 'CeanReadRanges* read_rng_dst' offset changed from 384 to 448 (in bits) (by +64 bits) | ||
1288 | 'int64_t ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) | 1288 | 'int64_t ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) |
1289 | 'bool is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) | 1289 | 'bool is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) |
1290 | 'OffloadHostTimerData* m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) | 1290 | 'OffloadHostTimerData* m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) |
diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt index 65fa3f1a..5cf624c1 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt | |||
@@ -1270,8 +1270,7 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
1270 | 'void* alloc', at offset 320 (in bits) at offload_host.h:222:1 | 1270 | 'void* alloc', at offset 320 (in bits) at offload_host.h:222:1 |
1271 | 'OffloadDescriptor::OmpAsyncLastEventType omp_last_event_type', at offset 608 (in bits) at offload_host.h:227:1 | 1271 | 'OffloadDescriptor::OmpAsyncLastEventType omp_last_event_type', at offset 608 (in bits) at offload_host.h:227:1 |
1272 | 4 data member changes (3 filtered): | 1272 | 4 data member changes (3 filtered): |
1273 | 'CeanReadRanges* read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) | 1273 | type of 'CeanReadRanges* read_rng_src' changed: |
1274 | type of 'CeanReadRanges* read_rng_dst' changed: | ||
1275 | in pointed to type 'struct CeanReadRanges' at cean_util.h:58:1: | 1274 | in pointed to type 'struct CeanReadRanges' at cean_util.h:58:1: |
1276 | type size changed from 512 to 576 (in bits) | 1275 | type size changed from 512 to 576 (in bits) |
1277 | 1 data member insertion: | 1276 | 1 data member insertion: |
@@ -1284,7 +1283,8 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
1284 | 'int last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) | 1283 | 'int last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) |
1285 | 'int64_t init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) | 1284 | 'int64_t init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) |
1286 | 'CeanReadDim Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) | 1285 | 'CeanReadDim Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) |
1287 | and offset changed from 384 to 448 (in bits) (by +64 bits) | 1286 | and offset changed from 320 to 384 (in bits) (by +64 bits) |
1287 | 'CeanReadRanges* read_rng_dst' offset changed from 384 to 448 (in bits) (by +64 bits) | ||
1288 | 'int64_t ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) | 1288 | 'int64_t ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) |
1289 | 'bool is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) | 1289 | 'bool is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) |
1290 | 'OffloadHostTimerData* m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) | 1290 | 'OffloadHostTimerData* m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) |
diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt index 0248394f..68014539 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt | |||
@@ -1270,8 +1270,7 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
1270 | 'void* alloc', at offset 0x28 (in bytes) at offload_host.h:222:1 | 1270 | 'void* alloc', at offset 0x28 (in bytes) at offload_host.h:222:1 |
1271 | 'OffloadDescriptor::OmpAsyncLastEventType omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1 | 1271 | 'OffloadDescriptor::OmpAsyncLastEventType omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1 |
1272 | 4 data member changes (3 filtered): | 1272 | 4 data member changes (3 filtered): |
1273 | 'CeanReadRanges* read_rng_src' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes) | 1273 | type of 'CeanReadRanges* read_rng_src' changed: |
1274 | type of 'CeanReadRanges* read_rng_dst' changed: | ||
1275 | in pointed to type 'struct CeanReadRanges' at cean_util.h:58:1: | 1274 | in pointed to type 'struct CeanReadRanges' at cean_util.h:58:1: |
1276 | type size changed from 0x40 to 0x48 (in bytes) | 1275 | type size changed from 0x40 to 0x48 (in bytes) |
1277 | 1 data member insertion: | 1276 | 1 data member insertion: |
@@ -1284,7 +1283,8 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
1284 | 'int last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes) | 1283 | 'int last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes) |
1285 | 'int64_t init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes) | 1284 | 'int64_t init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes) |
1286 | 'CeanReadDim Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes) | 1285 | 'CeanReadDim Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes) |
1287 | and offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes) | 1286 | and offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes) |
1287 | 'CeanReadRanges* read_rng_dst' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes) | ||
1288 | 'int64_t ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes) | 1288 | 'int64_t ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes) |
1289 | 'bool is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes) | 1289 | 'bool is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes) |
1290 | 'OffloadHostTimerData* m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes) | 1290 | 'OffloadHostTimerData* m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes) |
diff --git a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt index 75b7116d..e14819a4 100644 --- a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt +++ b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt | |||
@@ -186,8 +186,7 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
186 | 'void* alloc', at offset 320 (in bits) | 186 | 'void* alloc', at offset 320 (in bits) |
187 | 'OffloadDescriptor::OmpAsyncLastEventType omp_last_event_type', at offset 608 (in bits) | 187 | 'OffloadDescriptor::OmpAsyncLastEventType omp_last_event_type', at offset 608 (in bits) |
188 | 4 data member changes (3 filtered): | 188 | 4 data member changes (3 filtered): |
189 | 'CeanReadRanges* read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) | 189 | type of 'CeanReadRanges* read_rng_src' changed: |
190 | type of 'CeanReadRanges* read_rng_dst' changed: | ||
191 | in pointed to type 'struct CeanReadRanges': | 190 | in pointed to type 'struct CeanReadRanges': |
192 | type size changed from 512 to 576 (in bits) | 191 | type size changed from 512 to 576 (in bits) |
193 | 1 data member insertion: | 192 | 1 data member insertion: |
@@ -200,7 +199,8 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
200 | 'int last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) | 199 | 'int last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) |
201 | 'int64_t init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) | 200 | 'int64_t init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) |
202 | 'CeanReadDim Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) | 201 | 'CeanReadDim Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) |
203 | and offset changed from 384 to 448 (in bits) (by +64 bits) | 202 | and offset changed from 320 to 384 (in bits) (by +64 bits) |
203 | 'CeanReadRanges* read_rng_dst' offset changed from 384 to 448 (in bits) (by +64 bits) | ||
204 | 'int64_t ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) | 204 | 'int64_t ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) |
205 | 'bool is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) | 205 | 'bool is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) |
206 | 'OffloadHostTimerData* m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) | 206 | 'OffloadHostTimerData* m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) |
diff --git a/tests/data/test-diff-filter/test41-report-0.txt b/tests/data/test-diff-filter/test41-report-0.txt index e6caf368..2da31ef6 100644 --- a/tests/data/test-diff-filter/test41-report-0.txt +++ b/tests/data/test-diff-filter/test41-report-0.txt | |||
@@ -42,7 +42,7 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
42 | in unqualified underlying type 'class abigail::xml_writer::write_context' at abg-writer.cc:155:1: | 42 | in unqualified underlying type 'class abigail::xml_writer::write_context' at abg-writer.cc:155:1: |
43 | type size hasn't changed | 43 | type size hasn't changed |
44 | 4 data member changes (3 filtered): | 44 | 4 data member changes (3 filtered): |
45 | type of 'abigail::xml_writer::type_ptr_map m_emitted_decl_only_map' changed: | 45 | type of 'abigail::xml_writer::type_ptr_map m_type_id_map' changed: |
46 | underlying type 'class std::tr1::unordered_map<abigail::ir::type_base*, abigail::interned_string, abigail::xml_writer::type_hasher, abigail::diff_utils::deep_ptr_eq_functor, std::allocator<std::pair<abigail::ir::type_base* const, abigail::interned_string> > >' at unordered_map.h:180:1 changed: | 46 | underlying type 'class std::tr1::unordered_map<abigail::ir::type_base*, abigail::interned_string, abigail::xml_writer::type_hasher, abigail::diff_utils::deep_ptr_eq_functor, std::allocator<std::pair<abigail::ir::type_base* const, abigail::interned_string> > >' at unordered_map.h:180:1 changed: |
47 | type name changed from 'std::tr1::unordered_map<abigail::ir::type_base*, abigail::interned_string, abigail::xml_writer::type_hasher, abigail::diff_utils::deep_ptr_eq_functor, std::allocator<std::pair<abigail::ir::type_base* const, abigail::interned_string> > >' to 'std::tr1::unordered_map<abigail::ir::type_base *, abigail::interned_string, abigail::xml_writer::type_hasher, abigail::diff_utils::deep_ptr_eq_functor, std::allocator<std::pair<abigail::ir::type_base *const, abigail::interned_string> > >' | 47 | type name changed from 'std::tr1::unordered_map<abigail::ir::type_base*, abigail::interned_string, abigail::xml_writer::type_hasher, abigail::diff_utils::deep_ptr_eq_functor, std::allocator<std::pair<abigail::ir::type_base* const, abigail::interned_string> > >' to 'std::tr1::unordered_map<abigail::ir::type_base *, abigail::interned_string, abigail::xml_writer::type_hasher, abigail::diff_utils::deep_ptr_eq_functor, std::allocator<std::pair<abigail::ir::type_base *const, abigail::interned_string> > >' |
48 | type size hasn't changed | 48 | type size hasn't changed |
@@ -113,23 +113,25 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
113 | 1 base class insertion: | 113 | 1 base class insertion: |
114 | class std::allocator<std::__cxx11::basic_string<char> > at allocator.h:108:1 | 114 | class std::allocator<std::__cxx11::basic_string<char> > at allocator.h:108:1 |
115 | 3 data member changes (1 filtered): | 115 | 3 data member changes (1 filtered): |
116 | name of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Deque_impl::_M_map' changed to 'std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::_Deque_impl::_M_map' at stl_deque.h:550:1 | 116 | type of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Map_pointer _M_map' changed: |
117 | name of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Deque_impl::_M_start' changed to 'std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::_Deque_impl::_M_start' at stl_deque.h:552:1 | 117 | typedef name changed from std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Map_pointer to std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::_Map_pointer at stl_deque.h:542:1 |
118 | type of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::iterator _M_finish' changed: | 118 | underlying type 'typedef std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::_Map_pointer' at stl_deque.h:123:1 changed: |
119 | typedef name changed from std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::_Map_pointer to std::_Deque_iterator<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> &, std::__cxx11::basic_string<char> *>::_Map_pointer at stl_deque.h:112:1 | ||
120 | underlying type 'typedef std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::__ptr_to' at stl_deque.h:116:1 changed: | ||
121 | entity changed from 'typedef std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::__ptr_to' to compatible type 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >**' | ||
122 | in pointed to type 'class std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >': | ||
123 | entity changed from 'class std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >' to 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*' | ||
124 | type size changed from 256 to 64 (in bits) | ||
125 | and name of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Deque_impl::_M_map' changed to 'std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::_Deque_impl::_M_map' at stl_deque.h:550:1 | ||
126 | type of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::iterator _M_start' changed: | ||
119 | typedef name changed from std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::iterator to std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::iterator at stl_deque.h:485:1 | 127 | typedef name changed from std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::iterator to std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::iterator at stl_deque.h:485:1 |
120 | underlying type 'struct std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>' at stl_deque.h:106:1 changed: | 128 | underlying type 'struct std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>' at stl_deque.h:106:1 changed: |
121 | type name changed from 'std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>' to 'std::_Deque_iterator<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> &, std::__cxx11::basic_string<char> *>' | 129 | type name changed from 'std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>' to 'std::_Deque_iterator<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> &, std::__cxx11::basic_string<char> *>' |
122 | type size hasn't changed | 130 | type size hasn't changed |
123 | 1 data member changes (3 filtered): | 131 | 1 data member changes (3 filtered): |
124 | type of 'std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::_Map_pointer _M_node' changed: | 132 | name of 'std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::_M_node' changed to 'std::_Deque_iterator<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> &, std::__cxx11::basic_string<char> *>::_M_node' at stl_deque.h:140:1 |
125 | typedef name changed from std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::_Map_pointer to std::_Deque_iterator<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> &, std::__cxx11::basic_string<char> *>::_Map_pointer at stl_deque.h:112:1 | 133 | and name of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Deque_impl::_M_start' changed to 'std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::_Deque_impl::_M_start' at stl_deque.h:552:1 |
126 | underlying type 'typedef std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::__ptr_to' at stl_deque.h:116:1 changed: | 134 | name of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Deque_impl::_M_finish' changed to 'std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::_Deque_impl::_M_finish' at stl_deque.h:553:1 |
127 | entity changed from 'typedef std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::__ptr_to' to compatible type 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >**' | ||
128 | in pointed to type 'class std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >': | ||
129 | entity changed from 'class std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >' to 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*' | ||
130 | type size changed from 256 to 64 (in bits) | ||
131 | and name of 'std::_Deque_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>::_M_node' changed to 'std::_Deque_iterator<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> &, std::__cxx11::basic_string<char> *>::_M_node' at stl_deque.h:140:1 | ||
132 | and name of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Deque_impl::_M_finish' changed to 'std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::_Deque_impl::_M_finish' at stl_deque.h:553:1 | ||
133 | and name of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_impl' changed to 'std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::_M_impl' at stl_deque.h:631:1 | 135 | and name of 'std::_Deque_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_impl' changed to 'std::_Deque_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >::_M_impl' at stl_deque.h:631:1 |
134 | 136 | ||
135 | [C] 'method void std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_M_initialize_map(std::size_t)' at stl_deque.h:625:1 has some indirect sub-type changes: | 137 | [C] 'method void std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_M_initialize_map(std::size_t)' at stl_deque.h:625:1 has some indirect sub-type changes: |
@@ -139,20 +141,21 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen | |||
139 | 1 data member change: | 141 | 1 data member change: |
140 | type of 'std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl _M_impl' changed: | 142 | type of 'std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl _M_impl' changed: |
141 | type size hasn't changed | 143 | type size hasn't changed |
142 | 1 data member changes (2 filtered): | 144 | 2 data member changes (1 filtered): |
143 | type of 'std::_Deque_base<unsigned int, std::allocator<unsigned int> >::iterator _M_finish' changed: | 145 | type of 'std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Map_pointer _M_map' changed: |
146 | underlying type 'typedef std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::_Map_pointer' at stl_deque.h:123:1 changed: | ||
147 | typedef name changed from std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::_Map_pointer to std::_Deque_iterator<unsigned int, unsigned int &, unsigned int *>::_Map_pointer at stl_deque.h:112:1 | ||
148 | underlying type 'typedef std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::__ptr_to' at stl_deque.h:116:1 changed: | ||
149 | entity changed from 'typedef std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::__ptr_to' to compatible type 'unsigned int**' | ||
150 | in pointed to type 'unsigned int': | ||
151 | entity changed from 'unsigned int' to 'unsigned int*' | ||
152 | type size changed from 32 to 64 (in bits) | ||
153 | type of 'std::_Deque_base<unsigned int, std::allocator<unsigned int> >::iterator _M_start' changed: | ||
144 | underlying type 'struct std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>' at stl_deque.h:106:1 changed: | 154 | underlying type 'struct std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>' at stl_deque.h:106:1 changed: |
145 | type name changed from 'std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>' to 'std::_Deque_iterator<unsigned int, unsigned int &, unsigned int *>' | 155 | type name changed from 'std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>' to 'std::_Deque_iterator<unsigned int, unsigned int &, unsigned int *>' |
146 | type size hasn't changed | 156 | type size hasn't changed |
147 | 1 data member changes (3 filtered): | 157 | 1 data member changes (3 filtered): |
148 | type of 'std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::_Map_pointer _M_node' changed: | 158 | name of 'std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::_M_node' changed to 'std::_Deque_iterator<unsigned int, unsigned int &, unsigned int *>::_M_node' at stl_deque.h:140:1 |
149 | typedef name changed from std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::_Map_pointer to std::_Deque_iterator<unsigned int, unsigned int &, unsigned int *>::_Map_pointer at stl_deque.h:112:1 | ||
150 | underlying type 'typedef std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::__ptr_to' at stl_deque.h:116:1 changed: | ||
151 | entity changed from 'typedef std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::__ptr_to' to compatible type 'unsigned int**' | ||
152 | in pointed to type 'unsigned int': | ||
153 | entity changed from 'unsigned int' to 'unsigned int*' | ||
154 | type size changed from 32 to 64 (in bits) | ||
155 | and name of 'std::_Deque_iterator<unsigned int, unsigned int&, unsigned int*>::_M_node' changed to 'std::_Deque_iterator<unsigned int, unsigned int &, unsigned int *>::_M_node' at stl_deque.h:140:1 | ||
156 | 159 | ||
157 | 1 Removed function symbol not referenced by debug info: | 160 | 1 Removed function symbol not referenced by debug info: |
158 | 161 | ||
diff --git a/tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt b/tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt index 3c05d925..a837ba48 100644 --- a/tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt +++ b/tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt | |||
@@ -16,18 +16,13 @@ | |||
16 | in pointed to type 'struct _IceConn' at ICEconn.h:131:1: | 16 | in pointed to type 'struct _IceConn' at ICEconn.h:131:1: |
17 | type size hasn't changed | 17 | type size hasn't changed |
18 | 2 data member changes (3 filtered): | 18 | 2 data member changes (3 filtered): |
19 | type of 'IceListenObj listen_obj' changed: | 19 | type of '_XtransConnInfo* trans_conn' changed: |
20 | underlying type '_IceListenObj*' changed: | 20 | in pointed to type 'struct _XtransConnInfo' at Xtransint.h:136:1: |
21 | in pointed to type 'struct _IceListenObj' at ICElibint.h:120:1: | 21 | type size changed from 640 to 768 (in bits) |
22 | type size hasn't changed | 22 | 2 data member insertions: |
23 | 1 data member change: | 23 | '_XtransConnFd* recv_fds', at offset 640 (in bits) at Xtransint.h:148:1 |
24 | type of '_XtransConnInfo* trans_conn' changed: | 24 | '_XtransConnFd* send_fds', at offset 704 (in bits) at Xtransint.h:149:1 |
25 | in pointed to type 'struct _XtransConnInfo' at Xtransint.h:136:1: | 25 | no data member change (1 filtered); |
26 | type size changed from 640 to 768 (in bits) | ||
27 | 2 data member insertions: | ||
28 | '_XtransConnFd* recv_fds', at offset 640 (in bits) at Xtransint.h:148:1 | ||
29 | '_XtransConnFd* send_fds', at offset 704 (in bits) at Xtransint.h:149:1 | ||
30 | no data member change (1 filtered); | ||
31 | type of '_IcePingWait* ping_waits' changed: | 26 | type of '_IcePingWait* ping_waits' changed: |
32 | in pointed to type 'struct _IcePingWait' at ICEconn.h:48:1: | 27 | in pointed to type 'struct _IcePingWait' at ICEconn.h:48:1: |
33 | entity changed from 'struct _IcePingWait' to compatible type 'typedef _IcePingWait' at ICEconn.h:48:1 | 28 | entity changed from 'struct _IcePingWait' to compatible type 'typedef _IcePingWait' at ICEconn.h:48:1 |