public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/5] More whitespace and leaf-changes-only fixes
@ 2020-03-12  6:30 Giuliano Procida
  2020-03-12  6:30 ` [PATCH 1/5] Fix interaction of --redundant and --leaf-changes-only options Giuliano Procida
                   ` (4 more replies)
  0 siblings, 5 replies; 21+ messages in thread
From: Giuliano Procida @ 2020-03-12  6:30 UTC (permalink / raw)
  To: libabigail; +Cc: dodji, kernel-team, gprocida

This patch series should apply cleanly on top of the ealier:

[PATCH 1/2] [abidiff] Fix spurious new lines after diff sections.
[PATCH 2/2] [abidiff] Add more leaf change reporting.

Patch 1/5 fixes bugs in abidiff and abipkgdiff around the handling of
--redundant and --leaf-changes-only flags.

The next 3 changes improve formatting.

Patch 5/5 makes --leaf-changes-only mode report more differences.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 1/5] Fix interaction of --redundant and --leaf-changes-only options.
  2020-03-12  6:30 [PATCH 0/5] More whitespace and leaf-changes-only fixes Giuliano Procida
@ 2020-03-12  6:30 ` Giuliano Procida
  2020-03-13 17:30   ` Dodji Seketeli
  2020-03-12  6:30 ` [PATCH 2/5] abg-leaf-reporter.cc: Fix indentation of function parameter diffs Giuliano Procida
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 21+ messages in thread
From: Giuliano Procida @ 2020-03-12  6:30 UTC (permalink / raw)
  To: libabigail; +Cc: dodji, kernel-team, gprocida

The --redundant (meaning show-redundant-changes) option is supposed to
be implied by --leaf-changes-only and this is currently implemented by
making diff_context's --leaf-changes-only setter also duplicate the
behaviour of its --redundant setter.

In both abidiff and abipkgdiff, the diff_context setters are called
unconditionally, but the relative order of the calls for these two
options is different in each case, resulting in two different issues.

In abidiff, the --redundant setter is called second, undoing the
intended side-effect of any --leaf-changes-only flag. So --redundant
is not actually turned on in --leaf-changes-only mode unless requested
explicitly.

In abipkgdiff, the leaf-changes-only setter is called second, undoing
(in non-leaf mode) the effect of any --redundant flag. So --redundant
has no effect in default reporting mode.

The fix is move to move the "--leaf-changes-only implies --redundant"
logic from the setter to the set_diff_context_from_opts functions.
This patch also documents the implied behaviour in the usage strings.

	* src/abg-comparison.cc (diff_context::show_leaf_changes_only):
	Remove "--leaf-changes-only implies --redundant" logic.
	* tools/abidiff.cc (display_usage): Mention that
	--leaf-changes-only implies --redundant.
	(set_diff_context_from_opts): Make --leaf-changes-only imply
	--redundant; document this behaviour in a comment.
	* tools/abipkgdiff.cc: Ditto.
	* tests/data/Makefile.am: Add new test case files.
	* tests/data/test-abidiff-exit/test-leaf3-report.txt: Add new
	test case, to show --leaf-changes-only implies --redundant.
	* tests/data/test-abidiff-exit/test-leaf3-v0.c: Ditto.
	* tests/data/test-abidiff-exit/test-leaf3-v0.o: Ditto.
	* tests/data/test-abidiff-exit/test-leaf3-v1.c: Ditto.
	* tests/data/test-abidiff-exit/test-leaf3-v1.o: Ditto.
	* tests/test-abidiff-exit.cc: Run new test case.
	* tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt:
	Update abipkgdiff report with --redundant output.
	* tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt:
	Ditto.
	* tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
	Ditto.

Signed-off-by: Giuliano Procida <gprocida@google.com>
---
 src/abg-comparison.cc                         |  13 -
 tests/data/Makefile.am                        |   5 +
 .../test-abidiff-exit/test-leaf3-report.txt   |  29 +
 tests/data/test-abidiff-exit/test-leaf3-v0.c  |  19 +
 tests/data/test-abidiff-exit/test-leaf3-v0.o  | Bin 0 -> 3320 bytes
 tests/data/test-abidiff-exit/test-leaf3-v1.c  |  20 +
 tests/data/test-abidiff-exit/test-leaf3-v1.o  | Bin 0 -> 3384 bytes
 ...4--libcdio-0.94-2.fc26.x86_64-report.1.txt |   8 +-
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt |   3 +-
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 496 +++++++++++++++++-
 tests/test-abidiff-exit.cc                    |   9 +
 tools/abidiff.cc                              |  16 +-
 tools/abipkgdiff.cc                           |   6 +-
 13 files changed, 587 insertions(+), 37 deletions(-)
 create mode 100644 tests/data/test-abidiff-exit/test-leaf3-report.txt
 create mode 100644 tests/data/test-abidiff-exit/test-leaf3-v0.c
 create mode 100644 tests/data/test-abidiff-exit/test-leaf3-v0.o
 create mode 100644 tests/data/test-abidiff-exit/test-leaf3-v1.c
 create mode 100644 tests/data/test-abidiff-exit/test-leaf3-v1.o

diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc
index b99cfa7d..48a2d22e 100644
--- a/src/abg-comparison.cc
+++ b/src/abg-comparison.cc
@@ -1521,20 +1521,7 @@ diff_context::show_leaf_changes_only(bool f)
   // created.  Once it's been created, we are supposed to live with
   // it.
   ABG_ASSERT(priv_->reporter_ == 0);
-
   priv_->leaf_changes_only_ = f;
-  // So when we are showing only leaf changes, we want to show
-  // redundant changes because of this: Suppose several functions have
-  // their return type changed from void* to int*.  We want them all
-  // to be reported.  In that case the change is not redundant.  As
-  // far as user-defined type changes (like struct/class) they are
-  // already put inside a map which makes them be non-redundant, so we
-  // don't have to worry about that case.
-  //
-  // TODO: maybe that in this case we should avoid firing the
-  // redundancy analysis pass altogether.  That could help save a
-  // couple of CPU cycle here and there!
-  priv_->show_redundant_changes_ = f;
 }
 
 /// Get the flag that indicates if the diff using this context should
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 5dab8685..bf76ca2e 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -120,6 +120,11 @@ test-abidiff-exit/test-leaf1-v0.o \
 test-abidiff-exit/test-leaf1-v1.cc \
 test-abidiff-exit/test-leaf1-v1.o \
 test-abidiff-exit/test-leaf1-report.txt \
+test-abidiff-exit/test-leaf3-v0.c \
+test-abidiff-exit/test-leaf3-v0.o \
+test-abidiff-exit/test-leaf3-v1.c \
+test-abidiff-exit/test-leaf3-v1.o \
+test-abidiff-exit/test-leaf3-report.txt \
 \
 test-diff-dwarf/test0-v0.cc		\
 test-diff-dwarf/test0-v0.o			\
diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
new file mode 100644
index 00000000..d02c71a7
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
@@ -0,0 +1,29 @@
+Leaf changes summary: 4 artifacts changed
+Changed leaf types summary: 0 leaf type changed
+Removed/Changed/Added functions summary: 0 Removed, 4 Changed, 0 Added function
+Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
+
+4 functions with some sub-type change:
+
+  [C] 'function void fn1(sto1)' at test-leaf3-v1.c:10:1 has some sub-type changes:
+    parameter 1 of type 'struct sto1' changed:
+    type name changed from 'sto1' to 'stn1'
+    type size hasn't changed
+
+
+  [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
+    parameter 1 of type 'struct sto2' changed:
+    type name changed from 'sto2' to 'stn2'
+    type size changed from 64 to 128 (in bits)
+    1 data member insertion:
+      'double stn2::y', at offset 64 (in bits) at test-leaf3-v1.c:7:1
+
+  [C] 'function void fn3(sto1*)' at test-leaf3-v1.c:16:1 has some sub-type changes:
+    parameter 1 of type 'sto1*' changed:
+    pointer type changed from: 'sto1*' to: 'stn1*'
+
+  [C] 'function void fn4(sto2*)' at test-leaf3-v1.c:19:1 has some sub-type changes:
+    parameter 1 of type 'sto2*' changed:
+    pointer type changed from: 'sto2*' to: 'stn2*'
+
+
diff --git a/tests/data/test-abidiff-exit/test-leaf3-v0.c b/tests/data/test-abidiff-exit/test-leaf3-v0.c
new file mode 100644
index 00000000..1d9c6266
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-leaf3-v0.c
@@ -0,0 +1,19 @@
+struct sto1 {
+  int x;
+};
+
+struct sto2 {
+  long x;
+};
+
+void fn1(struct sto1 s) {
+}
+
+void fn2(struct sto2 s) {
+}
+
+void fn3(struct sto1* s) {
+}
+
+void fn4(struct sto2* s) {
+}
diff --git a/tests/data/test-abidiff-exit/test-leaf3-v0.o b/tests/data/test-abidiff-exit/test-leaf3-v0.o
new file mode 100644
index 0000000000000000000000000000000000000000..1e74a51b929f63ba77041febe2b2aa064e41cc78
GIT binary patch
literal 3320
zcmbtWTW=dx5T4`p#%r877ef;#AZ@wyqOgnYgf=N87(&xlK!p&M`aqSgo%Kbv*Ok34
zDNum~LgX!xkSJ2#c;K}!`~n{N1^fUc9^nnCMKH5_X1zYyyue64XXg86=FGXSKfnC$
zc1j3f5wHm(i&20zW29FDwF(88gBw@(f7^fX<lxrNq+Q*A@Yjjz^O!dsgc`vJlcS8G
zwj2Xeq^E^2wz1dtK%_FHA(qzLo(}<U2;FE%ej?BSbVDb%iH5fdVs3(Tl3dt<IQky7
z%mBH0(o%;lFpT$5!-y3S(+Ls3$cX8A(!vNUjHrN^Oo;efMogZf%oLGrcx4dT$oDD4
zNyHJ=l08NFQimM`X2nbSLQcys<!8lQW@aAog3$80+@;)Wx%HeV;Cf7fW`yRo!WvF3
z{UYRYn>h_PNtbFKXJm^vitKo{Na?Bz-@R3&6d661BDDZuOk;{`$Yf85!UA8WBJqdb
zLCeiDD@y+%+8Ug}R*1*>DQtt2hPyAocL%=Jah=ABb+2UCgGjvy*)Ttvi@F%<#Z6s&
zsV|P&l!jRbey<GJRE}lo^t`4?=i?Q>dl#-;zhQ2bFPiIi#V(tbQhB{xE>%pc>kmD5
zqv?8Xzg<Vu>DOBudutc03#+EpG_8g+xbM|l{hrqw4y>W~aogLqe5clN2LM;Lwl10H
z-gawk#|txC<%{Q)G2rQ7LO9V+J^-;dBbFvJ#sN<JS;Xl_5}biI^D|$kwx%X7qXS~Z
zy-p+wZY%)v+avxX!ck7*KMUzZUQ)+8x{+!4^Pgh`0=VQ!Fyhf>jqw^XNutT?uW}kh
z*J6y)ATwsOp+T0_v0jUA`527VOpOE5(f}_>f@pB;X@Xhwn~SXj-`{5>&UUaTh!rJH
zJPG5^p-y>B0#O)0c9QA6Xm}O;t>AAp^u{|a6&jCqg1BPBX?4yKh(dLfFwS*yU5vjF
zx&?KUN;@9k-Sd(s|M=y%V|aX5t}A%(C?nQZ@I`44WzXZ9(*9Awx$a*Toad#>qsn=t
zTeMc>$F&eQBOO%#S5LrAiPPG|*QcuBT+eL<=lZ`;a8ue~5AJvIslndwhkc7R-`(@U
z-gSHj?Al-ecHiwd_O4qSHh0=yqla9eJGENhy*EZXeaCC!>lF{_v^|$Ya0syLy>8dV
zx6}4|zH8&-X$^d*en$qmt(`{S>AGC#|Ld19oYp*khACr}8kFU*i(0v@k$oC9!qk`M
zPUJDJsPSi!rgQvX<I5PU=A;pM{4)xvn8Bx%{tQ(qC?=2O;armebUw+C?;L)q1KGe<
z%}K<e1djr*QKS04kCcj$w<QmCX%rf0s_#39Ce{DD+)$3E`so!{>)%C8&501)lH=bb
zBPOcv4suE3FUU^@uM>?=?~*$HUBoCS*NJK%Kgsd=8_GD3&;6%JB*mBIfui#j7mnlp
zD<oNu``uIzq$E{e`tM4ZEH_HQ@ed;;RCxXje~U`e`jzDR-Ik8De)N^(cwX0}u_@#a
sS^q;>FnxdM>#N4oo+M568+rauBOe!;E`lg;Qv89e|A)vkRMhx?0pT#>z5oCK

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/test-leaf3-v1.c b/tests/data/test-abidiff-exit/test-leaf3-v1.c
new file mode 100644
index 00000000..fe182cd8
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-leaf3-v1.c
@@ -0,0 +1,20 @@
+struct stn1 {
+  int x;
+};
+
+struct stn2 {
+  long x;
+  double y;
+};
+
+void fn1(struct stn1 s) {
+}
+
+void fn2(struct stn2 s) {
+}
+
+void fn3(struct stn1* s) {
+}
+
+void fn4(struct stn2* s) {
+}
diff --git a/tests/data/test-abidiff-exit/test-leaf3-v1.o b/tests/data/test-abidiff-exit/test-leaf3-v1.o
new file mode 100644
index 0000000000000000000000000000000000000000..f7db3a0cd5c0d44e14a1d00e7503a07e50a7e1cd
GIT binary patch
literal 3384
zcmbtW&u<%55T57F#+$fyoEVyz0CFTsTf}bTG&D&e!4Q(VDpXaa2oRuT?W_|EdmZd`
z>re`nia@zF5)wtqjUxxRa&7+sPKXOfPF&zt2_%?#`^H|s7!EK}_RW0X{Ccx*pYzGu
z>+3NgfJMLx^ejdJI#y3FNVNbNn1GGq!7m55|Gf9!L(+-|k1EBnj~^5d)_yA<Y&`11
zw>5PhYYfRWmaKN7mp#-LB0!AvAt9`FT#XKhSe!J(hRmuTfaKG{v_4S$u++fV2N56b
zAZUSUnG|7Kvg&Zfp9hf{CWs^vE+CG+K`q`wZj!Xv;VxL#8>nH#c@XIV5kISl^dxCv
zgdIlAfk<{ECJ`eMM`O5Us*yZNnPZ1rFjDdJAV#~sqtcUn$#3)|<%=EG5EvJyQkjI2
znof<2iFg{5#xlZ4B@!1CFD8}}B7+l3f?<W`<;)^(ZRi<DBvujzzCu%}Dcq4GUe2=P
z=`5uyOnv!kmQuvcNQ&4L4sZ-pTt;T(AEL0q=c!5Ac;u|09etIOR*yGvHQ-r%3h_rO
ziBEYBaX113uNBxe&#j!dZ{(e_j4-n>66UAC5n+n9nO!l3wQN3t%iZu9Gcb`J-U|FV
zs5ShZ9G#c#M!Qt=;9OAO17z}W>FP#qHNTKsa^{?TZf-Wel+Vx3<?MRU_PymD&-a?u
zGMa9)yt~|4ykK9L&)GXUyW+O?{qk<J;WyeXyY1hs`rCHkV)7QirPbAoxihbMrK;<P
zneF_-S*-><Cbx!L{_r}8PFhT#h+Fq?1WzJPe<boWypl?P7F$gYub~5C#Jxl$iac4&
zU+?knhIDwknP2bmAN>ojsACI#twZqpU&japaPos-#JjJpk2jDRB!;>gbk2b82hv9w
z5bv|uFkpn$zSZb{?|m?Klk5kSWdMFI1H^!1*A|SU-$Y~%{3SoGaJJ<;LoBQC8C*&D
zCVC2W%0nL&3FF7U47xcgc)IC+qFYS~Pm1cXP84@cI8Emqfhg2B3FDy!Kz)-iekwF&
z-=xwTkG|criYNc*HQ+>Ws{5R>uWEQ&*@1?0AGb98X=Q(|R_=%A_PvJloPX7D>X&4a
z5}<IN(CW>Q{Nyi*BDi1O{{_YCcuwIov*_Fk8qWP}Y50t??`Syh7o6699j_o<gJ!ty
zvKDxq0Gw?%aKS0HTHrLjn(J(PrS{Hd)vq*=le$|fHN6{swA*z39lX_|A+@USaR`<G
zr`)L5J-lBXzY%y2UaEF0aLezjAa8fG(sb*dYW#mL(-=>)jh<~vS)d1s{-Z;_QK2~!
zrr$s}qfQZBk3WqZo$vn|pT}4|Cza#+iyEn!@?M~SWeOA&k)PDzyru%^e3Bo3i}+hE
zWf`A(P9nZl;F0v|J#^n|Na+}PUr~p8wihZj-S-NjgZe+Cu5ym2{t43i-$qQ&i4fdU
z_1_^QBD(J;a)au>rRwvXs6O3Sdi_1bC@1%cs+1p9{ksgPmFx3L_t>ELx7C57^A#12
z<MmS{S&#bN(GR2|b>FX4ylS_bg5&RZkx=3NGyDZAgXXuV=C`FBX@2zU$?-f_>PN3l
uAybqT<-Tf|ewXN1S&yf8GH9#csq;UBd{p%PQ{F-GKdAn{js~Ny$NvoiB<>FY

literal 0
HcmV?d00001

diff --git a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
index d73fae52..23b12adf 100644
--- a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
+++ b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
@@ -1,8 +1,8 @@
 ================ changes of 'libcdio.so.16.0.0'===============
-  Functions changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added functions
+  Functions changes summary: 0 Removed, 2 Changed, 0 Added functions
   Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
 
-  1 function with some indirect sub-type change:
+  2 functions with some indirect sub-type change:
 
     [C] 'function discmode_t mmc_get_dvd_struct_physical(const CdIo_t*, cdio_dvd_struct_t*)' at mmc.c:949:1 has some indirect sub-type changes:
       parameter 2 of type 'cdio_dvd_struct_t*' has sub-type changes:
@@ -37,6 +37,10 @@
 
 
 
+    [C] 'function discmode_t mmc_get_dvd_struct_physical_private(void*, mmc_run_cmd_fn_t, cdio_dvd_struct_t*)' at mmc.c:450:1 has some indirect sub-type changes:
+      parameter 3 of type 'cdio_dvd_struct_t*' has sub-type changes:
+        pointed to type 'typedef cdio_dvd_struct_t' changed at dvd.h:130:1, as reported earlier
+
 
 ================ end of changes of 'libcdio.so.16.0.0'===============
 
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
index bf081f52..7b86b964 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
@@ -50,8 +50,7 @@
     [C] 'function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)' at reds.c:3602:1 has some indirect sub-type changes:
       parameter 2 of type 'typedef spice_image_compression_t' changed:
         typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
-        underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
-          enum type 'enum __anonymous_enum__2' changed at spice.h:471:1, as reported earlier
+        underlying type 'enum __anonymous_enum__2' changed at spice.h:471:1, as reported earlier
 
 
 ================ end of changes of 'libspice-server.so.1.8.0'===============
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
index b4104bda..3d20caf1 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
@@ -1,5 +1,5 @@
 ================ changes of 'libspice-server.so.1.8.0'===============
-  Functions changes summary: 1 Removed, 6 Changed (73 filtered out), 8 Added functions
+  Functions changes summary: 1 Removed, 79 Changed, 8 Added functions
   Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
 
   1 Removed function:
@@ -17,7 +17,7 @@
     'function void spice_server_set_playback_rate(SpicePlaybackInstance*, uint32_t)'    {spice_server_set_playback_rate@@SPICE_SERVER_0.12.5}
     'function void spice_server_set_record_rate(SpiceRecordInstance*, uint32_t)'    {spice_server_set_record_rate@@SPICE_SERVER_0.12.5}
 
-  6 functions with some indirect sub-type change:
+  79 functions with some indirect sub-type change:
 
     [C] 'function void spice_qxl_add_memslot(QXLInstance*, QXLDevMemSlot*)' at red_dispatcher.c:879:1 has some indirect sub-type changes:
       parameter 1 of type 'QXLInstance*' has sub-type changes:
@@ -34,7 +34,11 @@
                       in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
                         underlying type 'struct RedDispatcher' at red_dispatcher.c:53:1 changed:
                           type size changed from 3264 to 3328 (in bits)
-                          12 data member changes (1 filtered):
+                          13 data member changes:
+                           type of 'QXLInstance* RedDispatcher::qxl' changed:
+                             in pointed to type 'typedef QXLInstance' at spice-qxl.h:34:1:
+                               underlying type 'struct QXLInstance' changed; details are being reported
+
                            type of 'Dispatcher RedDispatcher::dispatcher' changed:
                              underlying type 'struct Dispatcher' at dispatcher.h:22:1 changed:
                                type size changed from 960 to 1024 (in bits)
@@ -47,7 +51,10 @@
                            'int RedDispatcher::x_res' offset changed from 2176 to 2240 (in bits) (by +64 bits)
                            'int RedDispatcher::y_res' offset changed from 2208 to 2272 (in bits) (by +64 bits)
                            'int RedDispatcher::use_hardware_cursor' offset changed from 2240 to 2304 (in bits) (by +64 bits)
-                           'RedDispatcher* RedDispatcher::next' offset changed from 2304 to 2368 (in bits) (by +64 bits)
+                           type of 'RedDispatcher* RedDispatcher::next' changed:
+                             in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
+                               underlying type 'struct RedDispatcher' changed; details are being reported
+                           and offset changed from 2304 to 2368 (in bits) (by +64 bits)
                            'Ring RedDispatcher::async_commands' offset changed from 2368 to 2432 (in bits) (by +64 bits)
                            'pthread_mutex_t RedDispatcher::async_lock' offset changed from 2496 to 2560 (in bits) (by +64 bits)
                            'QXLDevSurfaceCreate RedDispatcher::surface_create' offset changed from 2816 to 2880 (in bits) (by +64 bits)
@@ -55,6 +62,102 @@
 
 
 
+    [C] 'function void spice_qxl_add_memslot_async(QXLInstance*, QXLDevMemSlot*, uint64_t)' at red_dispatcher.c:948:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_create_primary_surface(QXLInstance*, uint32_t, QXLDevSurfaceCreate*)' at red_dispatcher.c:909:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_create_primary_surface_async(QXLInstance*, uint32_t, QXLDevSurfaceCreate*, uint64_t)' at red_dispatcher.c:966:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_del_memslot(QXLInstance*, uint32_t, uint32_t)' at red_dispatcher.c:885:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_destroy_primary_surface(QXLInstance*, uint32_t)' at red_dispatcher.c:903:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_destroy_primary_surface_async(QXLInstance*, uint32_t, uint64_t)' at red_dispatcher.c:960:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_destroy_surface_async(QXLInstance*, uint32_t, uint64_t)' at red_dispatcher.c:973:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_destroy_surface_wait(QXLInstance*, uint32_t)' at red_dispatcher.c:928:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_destroy_surfaces(QXLInstance*)' at red_dispatcher.c:897:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_destroy_surfaces_async(QXLInstance*, uint64_t)' at red_dispatcher.c:954:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_driver_unload(QXLInstance*)' at red_dispatcher.c:998:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_flush_surfaces_async(QXLInstance*, uint64_t)' at red_dispatcher.c:979:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_loadvm_commands(QXLInstance*, QXLCommandExt*, uint32_t)' at red_dispatcher.c:934:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_monitors_config_async(QXLInstance*, QXLPHYSICAL, int, uint64_t)' at red_dispatcher.c:985:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_oom(QXLInstance*)' at red_dispatcher.c:852:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_reset_cursor(QXLInstance*)' at red_dispatcher.c:922:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_reset_image_cache(QXLInstance*)' at red_dispatcher.c:916:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_reset_memslots(QXLInstance*)' at red_dispatcher.c:891:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_set_max_monitors(QXLInstance*, unsigned int)' at red_dispatcher.c:992:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_start(QXLInstance*)' at red_dispatcher.c:858:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_stop(QXLInstance*)' at red_dispatcher.c:864:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_update_area(QXLInstance*, uint32_t, QXLRect*, QXLRect*, uint32_t, uint32_t)' at red_dispatcher.c:870:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_update_area_async(QXLInstance*, uint32_t, QXLRect*, uint32_t, uint64_t)' at red_dispatcher.c:940:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
+    [C] 'function void spice_qxl_wakeup(QXLInstance*)' at red_dispatcher.c:846:1 has some indirect sub-type changes:
+      parameter 1 of type 'QXLInstance*' has sub-type changes:
+        pointed to type 'typedef QXLInstance' changed at spice.h:103:1, as reported earlier
+
     [C] 'function int spice_server_add_client(SpiceServer*, int, int)' at reds.c:2391:1 has some indirect sub-type changes:
       parameter 1 of type 'SpiceServer*' has sub-type changes:
         in pointed to type 'typedef SpiceServer' at spice-server.h:38:1:
@@ -79,10 +182,28 @@
                          'Ring SpiceCharDeviceState::clients' offset changed from 640 to 704 (in bits) (by +64 bits)
                          'uint32_t SpiceCharDeviceState::num_clients' offset changed from 768 to 832 (in bits) (by +64 bits)
                          'uint64_t SpiceCharDeviceState::client_tokens_interval' offset changed from 832 to 896 (in bits) (by +64 bits)
-                         'SpiceCharDeviceInstance* SpiceCharDeviceState::sin' offset changed from 896 to 960 (in bits) (by +64 bits)
+                         type of 'SpiceCharDeviceInstance* SpiceCharDeviceState::sin' changed:
+                           in pointed to type 'typedef SpiceCharDeviceInstance' at spice-char.h:33:1:
+                             underlying type 'struct SpiceCharDeviceInstance' at spice.h:416:1 changed:
+                               type size hasn't changed
+                               1 data member change:
+                                type of 'SpiceCharDeviceState* SpiceCharDeviceInstance::st' changed:
+                                  in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
+                                    underlying type 'struct SpiceCharDeviceState' changed; details are being reported
+
+                         and offset changed from 896 to 960 (in bits) (by +64 bits)
                          'int SpiceCharDeviceState::during_read_from_device' offset changed from 960 to 1024 (in bits) (by +64 bits)
                          'int SpiceCharDeviceState::during_write_to_device' offset changed from 992 to 1056 (in bits) (by +64 bits)
-                         'SpiceCharDeviceCallbacks SpiceCharDeviceState::cbs' offset changed from 1024 to 1088 (in bits) (by +64 bits)
+                         type of 'SpiceCharDeviceCallbacks SpiceCharDeviceState::cbs' changed:
+                           underlying type 'struct SpiceCharDeviceCallbacks' at char_device.h:81:1 changed:
+                             type size hasn't changed
+                             1 data member change:
+                              type of 'SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)* SpiceCharDeviceCallbacks::read_one_msg_from_device' changed:
+                                in pointed to type 'function type SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)':
+                                  parameter 1 of type 'SpiceCharDeviceInstance*' has sub-type changes:
+                                    pointed to type 'typedef SpiceCharDeviceInstance' changed at spice.h:399:1, as reported earlier
+
+                         and offset changed from 1024 to 1088 (in bits) (by +64 bits)
                          'void* SpiceCharDeviceState::opaque' offset changed from 1472 to 1536 (in bits) (by +64 bits)
 
                  no data member changes (3 filtered);
@@ -95,19 +216,23 @@
                     type of 'RedChannel MainChannel::base' changed:
                       underlying type 'struct RedChannel' at red_channel.h:303:1 changed:
                         type size hasn't changed
-                        1 data member changes (2 filtered):
+                        2 data member changes (1 filtered):
                          type of 'ChannelCbs RedChannel::channel_cbs' changed:
                            underlying type 'struct {channel_configure_socket_proc config_socket; channel_disconnect_proc on_disconnect; channel_send_pipe_item_proc send_item; channel_hold_pipe_item_proc hold_item; channel_release_pipe_item_proc release_item; channel_alloc_msg_recv_buf_proc alloc_recv_buf; channel_release_msg_recv_buf_proc release_recv_buf; channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark; channel_handle_migrate_data_proc handle_migrate_data; channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial;}' at red_channel.h:195:1 changed:
                              type size hasn't changed
-                             1 data member changes (9 filtered):
-                              type of 'channel_alloc_msg_recv_buf_proc alloc_recv_buf' changed:
-                                underlying type 'uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)*' changed:
-                                  in pointed to type 'function type uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)':
+                             10 data member changes:
+                              type of 'channel_configure_socket_proc config_socket' changed:
+                                underlying type 'int (RedChannelClient*)*' changed:
+                                  in pointed to type 'function type int (RedChannelClient*)':
                                     parameter 1 of type 'RedChannelClient*' has sub-type changes:
                                       in pointed to type 'typedef RedChannelClient' at red_channel.h:131:1:
                                         underlying type 'struct RedChannelClient' at red_channel.h:247:1 changed:
                                           type size hasn't changed
-                                          1 data member changes (3 filtered):
+                                          2 data member changes (2 filtered):
+                                           type of 'RedChannel* RedChannelClient::channel' changed:
+                                             in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
+                                               underlying type 'struct RedChannel' changed; details are being reported
+
                                            type of 'RedsStream* RedChannelClient::stream' changed:
                                              in pointed to type 'typedef RedsStream' at reds_stream.h:31:1:
                                                underlying type 'struct RedsStream' at reds.h:68:1 changed:
@@ -322,11 +447,111 @@
                                                   and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
 
 
+                              type of 'channel_disconnect_proc on_disconnect' changed:
+                                underlying type 'void (RedChannelClient*)*' changed:
+                                  in pointed to type 'function type void (RedChannelClient*)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'channel_send_pipe_item_proc send_item' changed:
+                                underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
+                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'channel_hold_pipe_item_proc hold_item' changed:
+                                underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
+                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'channel_release_pipe_item_proc release_item' changed:
+                                underlying type 'void (RedChannelClient*, PipeItem*, int)*' changed:
+                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*, int)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'channel_alloc_msg_recv_buf_proc alloc_recv_buf' changed:
+                                underlying type 'uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)*' changed:
+                                  in pointed to type 'function type uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'channel_release_msg_recv_buf_proc release_recv_buf' changed:
+                                underlying type 'void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)*' changed:
+                                  in pointed to type 'function type void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark' changed:
+                                underlying type 'int (RedChannelClient*)*' changed:
+                                  in pointed to type 'function type int (RedChannelClient*)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'channel_handle_migrate_data_proc handle_migrate_data' changed:
+                                underlying type 'int (RedChannelClient*, typedef uint32_t, void*)*' changed:
+                                  in pointed to type 'function type int (RedChannelClient*, typedef uint32_t, void*)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial' changed:
+                                underlying type 'typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)*' changed:
+                                  in pointed to type 'function type typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+
+                         type of 'ClientCbs RedChannel::client_cbs' changed:
+                           underlying type 'struct {channel_client_connect_proc connect; channel_client_disconnect_proc disconnect; channel_client_migrate_proc migrate;}' at red_channel.h:213:1 changed:
+                             type size hasn't changed
+                             3 data member changes:
+                              type of 'channel_client_connect_proc connect' changed:
+                                underlying type 'void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)*' changed:
+                                  in pointed to type 'function type void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)':
+                                    parameter 1 of type 'RedChannel*' has sub-type changes:
+                                      in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
+                                        underlying type 'struct RedChannel' changed; details are being reported
+                                    parameter 3 of type 'RedsStream*' has sub-type changes:
+                                      pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
+
+                              type of 'channel_client_disconnect_proc disconnect' changed:
+                                underlying type 'void (RedChannelClient*)*' changed:
+                                  in pointed to type 'function type void (RedChannelClient*)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'channel_client_migrate_proc migrate' changed:
+                                underlying type 'void (RedChannelClient*)*' changed:
+                                  in pointed to type 'function type void (RedChannelClient*)':
+                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
 
 
 
             no data member change (1 filtered);
 
+    [C] 'function int spice_server_add_interface(SpiceServer*, SpiceBaseInstance*)' at reds.c:3159:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_add_renderer(SpiceServer*, const char*)' at reds.c:3704:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_add_ssl_client(SpiceServer*, int, int)' at reds.c:2408:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function void spice_server_char_device_wakeup(SpiceCharDeviceInstance*)' at reds.c:3024:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceCharDeviceInstance*' has sub-type changes:
+        pointed to type 'typedef SpiceCharDeviceInstance' changed at spice.h:399:1, as reported earlier
+
+    [C] 'function void spice_server_destroy(SpiceServer*)' at reds.c:3419:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
     [C] 'function spice_image_compression_t spice_server_get_image_compression(SpiceServer*)' at reds.c:3618:1 has some indirect sub-type changes:
       return type changed:
         typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
@@ -354,6 +579,52 @@
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ4' value '7'
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_ENUM_END' value '8'
 
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_get_num_clients(SpiceServer*)' at reds.c:845:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_get_peer_info(SpiceServer*, sockaddr*, socklen_t*)' at reds.c:3689:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_get_sock_info(SpiceServer*, sockaddr*, socklen_t*)' at reds.c:3680:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_init(SpiceServer*, SpiceCoreInterface*)' at reds.c:3407:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_is_server_mouse(SpiceServer*)' at reds.c:3698:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_migrate_connect(SpiceServer*, const char*, int, int, const char*)' at reds.c:3791:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_migrate_end(SpiceServer*, int)' at reds.c:3866:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_migrate_info(SpiceServer*, const char*, int, int, const char*)' at reds.c:3842:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_migrate_start(SpiceServer*)' at reds.c:3856:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_migrate_switch(SpiceServer*)' at reds.c:3899:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function SpiceServer* spice_server_new()' at reds.c:3398:1 has some indirect sub-type changes:
+      return type changed:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
 
     [C] 'function void spice_server_playback_get_buffer(SpicePlaybackInstance*, uint32_t**, uint32_t*)' at snd_worker.c:1081:1 has some indirect sub-type changes:
       parameter 1 of type 'SpicePlaybackInstance*' has sub-type changes:
@@ -367,9 +638,86 @@
                    type size changed from 512 to 576 (in bits)
                    1 data member insertion:
                      'uint32_t SpicePlaybackState::frequency', at offset 512 (in bits) at snd_worker.c:159:1
-                   no data member changes (2 filtered);
+                   2 data member changes:
+                    type of 'SndWorker SpicePlaybackState::worker' changed:
+                      type size hasn't changed
+                      3 data member changes:
+                       type of 'RedChannel* SndWorker::base_channel' changed:
+                         pointed to type 'typedef RedChannel' changed at red_channel.h:135:1, as reported earlier
+
+                       type of 'SndChannel* SndWorker::connection' changed:
+                         in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                           underlying type 'struct SndChannel' at snd_worker.c:89:1 changed:
+                             type size hasn't changed
+                             6 data member changes:
+                              type of 'RedsStream* SndChannel::stream' changed:
+                                pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
+
+                              type of 'SndWorker* SndChannel::worker' changed:
+                                in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
+                                  underlying type 'struct SndWorker' changed; details are being reported
+
+                              type of 'RedChannelClient* SndChannel::channel_client' changed:
+                                pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                              type of 'snd_channel_handle_message_proc SndChannel::handle_message' changed:
+                                underlying type 'int (SndChannel*, typedef size_t, typedef uint32_t, void*)*' changed:
+                                  in pointed to type 'function type int (SndChannel*, typedef size_t, typedef uint32_t, void*)':
+                                    parameter 1 of type 'SndChannel*' has sub-type changes:
+                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                                        underlying type 'struct SndChannel' changed; details are being reported
+
+                              type of 'snd_channel_on_message_done_proc SndChannel::on_message_done' changed:
+                                underlying type 'void (SndChannel*)*' changed:
+                                  in pointed to type 'function type void (SndChannel*)':
+                                    parameter 1 of type 'SndChannel*' has sub-type changes:
+                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                                        underlying type 'struct SndChannel' changed; details are being reported
+
+                              type of 'snd_channel_cleanup_channel_proc SndChannel::cleanup' changed:
+                                underlying type 'void (SndChannel*)*' changed:
+                                  in pointed to type 'function type void (SndChannel*)':
+                                    parameter 1 of type 'SndChannel*' has sub-type changes:
+                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                                        underlying type 'struct SndChannel' changed; details are being reported
+
+                             no data member change (1 filtered);
+
+                       type of 'SndWorker* SndWorker::next' changed:
+                         in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
+                           underlying type 'struct SndWorker' changed; details are being reported
 
 
+                    type of 'SpicePlaybackInstance* SpicePlaybackState::sin' changed:
+                      in pointed to type 'typedef SpicePlaybackInstance' at spice-audio.h:33:1:
+                        underlying type 'struct SpicePlaybackInstance' changed; details are being reported
+
+
+
+    [C] 'function void spice_server_playback_put_samples(SpicePlaybackInstance*, uint32_t*)' at snd_worker.c:1100:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpicePlaybackInstance*' has sub-type changes:
+        pointed to type 'typedef SpicePlaybackInstance' changed at spice.h:335:1, as reported earlier
+
+    [C] 'function void spice_server_playback_set_mute(SpicePlaybackInstance*, uint8_t)' at snd_worker.c:1021:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpicePlaybackInstance*' has sub-type changes:
+        pointed to type 'typedef SpicePlaybackInstance' changed at spice.h:335:1, as reported earlier
+
+    [C] 'function void spice_server_playback_set_volume(SpicePlaybackInstance*, uint8_t, uint16_t*)' at snd_worker.c:1003:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpicePlaybackInstance*' has sub-type changes:
+        pointed to type 'typedef SpicePlaybackInstance' changed at spice.h:335:1, as reported earlier
+
+    [C] 'function void spice_server_playback_start(SpicePlaybackInstance*)' at snd_worker.c:1035:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpicePlaybackInstance*' has sub-type changes:
+        pointed to type 'typedef SpicePlaybackInstance' changed at spice.h:335:1, as reported earlier
+
+    [C] 'function void spice_server_playback_stop(SpicePlaybackInstance*)' at snd_worker.c:1054:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpicePlaybackInstance*' has sub-type changes:
+        pointed to type 'typedef SpicePlaybackInstance' changed at spice.h:335:1, as reported earlier
+
+    [C] 'function void spice_server_port_event(SpiceCharDeviceInstance*, uint8_t)' at spicevmc.c:574:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceCharDeviceInstance*' has sub-type changes:
+        pointed to type 'typedef SpiceCharDeviceInstance' changed at spice.h:399:1, as reported earlier
+
     [C] 'function uint32_t spice_server_record_get_samples(SpiceRecordInstance*, uint32_t*, uint32_t)' at snd_worker.c:1331:1 has some indirect sub-type changes:
       parameter 1 of type 'SpiceRecordInstance*' has sub-type changes:
         in pointed to type 'typedef SpiceRecordInstance' at spice-audio.h:67:1:
@@ -382,14 +730,130 @@
                    type size changed from 512 to 576 (in bits)
                    1 data member insertion:
                      'uint32_t SpiceRecordState::frequency', at offset 512 (in bits) at snd_worker.c:166:1
-                   no data member changes (2 filtered);
+                   2 data member changes:
+                    type of 'SndWorker SpiceRecordState::worker' changed:
+                      details were reported earlier
+
+                    type of 'SpiceRecordInstance* SpiceRecordState::sin' changed:
+                      in pointed to type 'typedef SpiceRecordInstance' at spice-audio.h:67:1:
+                        underlying type 'struct SpiceRecordInstance' changed; details are being reported
+
+
+
+    [C] 'function void spice_server_record_set_mute(SpiceRecordInstance*, uint8_t)' at snd_worker.c:1279:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceRecordInstance*' has sub-type changes:
+        pointed to type 'typedef SpiceRecordInstance' changed at spice.h:369:1, as reported earlier
+
+    [C] 'function void spice_server_record_set_volume(SpiceRecordInstance*, uint8_t, uint16_t*)' at snd_worker.c:1261:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceRecordInstance*' has sub-type changes:
+        pointed to type 'typedef SpiceRecordInstance' changed at spice.h:369:1, as reported earlier
 
+    [C] 'function void spice_server_record_start(SpiceRecordInstance*)' at snd_worker.c:1293:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceRecordInstance*' has sub-type changes:
+        pointed to type 'typedef SpiceRecordInstance' changed at spice.h:369:1, as reported earlier
+
+    [C] 'function void spice_server_record_stop(SpiceRecordInstance*)' at snd_worker.c:1313:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceRecordInstance*' has sub-type changes:
+        pointed to type 'typedef SpiceRecordInstance' changed at spice.h:369:1, as reported earlier
+
+    [C] 'function void spice_server_set_addr(SpiceServer*, const char*, int)' at reds.c:3455:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_agent_copypaste(SpiceServer*, int)' at reds.c:3747:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_agent_file_xfer(SpiceServer*, int)' at reds.c:3756:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_agent_mouse(SpiceServer*, int)' at reds.c:3739:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_channel_security(SpiceServer*, const char*, int)' at reds.c:3648:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_compat_version(SpiceServer*, spice_compat_version_t)' at reds.c:3430:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_exit_on_disconnect(SpiceServer*, int)' at reds.c:3479:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
 
     [C] 'function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)' at reds.c:3602:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
       parameter 2 of type 'typedef spice_image_compression_t' changed:
         typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
-        underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
-          enum type 'enum __anonymous_enum__2' changed at spice.h:471:1, as reported earlier
+        underlying type 'enum __anonymous_enum__2' changed at spice.h:471:1, as reported earlier
+
+    [C] 'function int spice_server_set_jpeg_compression(SpiceServer*, spice_wan_compression_t)' at reds.c:3624:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_listen_socket_fd(SpiceServer*, int)' at reds.c:3472:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function void spice_server_set_name(SpiceServer*, const char*)' at reds.c:3517:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_noauth(SpiceServer*)' at reds.c:3486:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_playback_compression(SpiceServer*, int)' at reds.c:3732:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_port(SpiceServer*, int)' at reds.c:3445:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_sasl(SpiceServer*, int)' at reds.c:3494:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_sasl_appname(SpiceServer*, const char*)' at reds.c:3505:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function void spice_server_set_seamless_migration(SpiceServer*, int)' at reds.c:3941:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_streaming_video(SpiceServer*, int)' at reds.c:3720:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_ticket(SpiceServer*, const char*, int, int, int)' at reds.c:3529:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_tls(SpiceServer*, int, const char*, const char*, const char*, const char*, const char*, const char*)' at reds.c:3564:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function void spice_server_set_uuid(SpiceServer*, const uint8_t*)' at reds.c:3523:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function int spice_server_set_zlib_glz_compression(SpiceServer*, spice_wan_compression_t)' at reds.c:3636:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function void spice_server_vm_start(SpiceServer*)' at reds.c:3911:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
+
+    [C] 'function void spice_server_vm_stop(SpiceServer*)' at reds.c:3926:1 has some indirect sub-type changes:
+      parameter 1 of type 'SpiceServer*' has sub-type changes:
+        pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier
 
 
 ================ end of changes of 'libspice-server.so.1.8.0'===============
diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc
index cb87f63f..45258a9f 100644
--- a/tests/test-abidiff-exit.cc
+++ b/tests/test-abidiff-exit.cc
@@ -139,6 +139,15 @@ InOutSpec in_out_specs[] =
     "data/test-abidiff-exit/test-leaf1-report.txt",
     "output/test-abidiff-exit/test-leaf1-report.txt"
   },
+  {
+    "data/test-abidiff-exit/test-leaf3-v0.o",
+    "data/test-abidiff-exit/test-leaf3-v1.o",
+    "",
+    "--leaf-changes-only",
+    abigail::tools_utils::ABIDIFF_ABI_CHANGE,
+    "data/test-abidiff-exit/test-leaf3-report.txt",
+    "output/test-abidiff-exit/test-leaf3-report.txt"
+  },
   {0, 0, 0 ,0,  abigail::tools_utils::ABIDIFF_OK, 0, 0}
 };
 
diff --git a/tools/abidiff.cc b/tools/abidiff.cc
index f83a7e54..bbe2f4f2 100644
--- a/tools/abidiff.cc
+++ b/tools/abidiff.cc
@@ -198,7 +198,7 @@ display_usage(const string& prog_name, ostream& out)
     << " --no-corpus-path  do not take the path to the corpora into account\n"
     << " --fail-no-debug-info  bail out if no debug info was found\n"
     << " --leaf-changes-only|-l  only show leaf changes, "
-    "so no change impact analysis\n"
+    "so no change impact analysis (implies --redundant)\n"
     << " --deleted-fns  display deleted public functions\n"
     << " --changed-fns  display changed public functions\n"
     << " --added-fns  display added public functions\n"
@@ -649,7 +649,19 @@ set_diff_context_from_opts(diff_context_sptr ctxt,
   ctxt->show_added_vars(opts.show_all_vars || opts.show_added_vars);
   ctxt->show_linkage_names(opts.show_linkage_names);
   ctxt->show_locs(opts.show_locs);
-  ctxt->show_redundant_changes(opts.show_redundant_changes);
+  // So when we are showing only leaf changes, we want to show
+  // redundant changes because of this: Suppose several functions have
+  // their return type changed from void* to int*.  We want them all
+  // to be reported.  In that case the change is not redundant.  As
+  // far as user-defined type changes (like struct/class) they are
+  // already put inside a map which makes them be non-redundant, so we
+  // don't have to worry about that case.
+  //
+  // TODO: maybe that in this case we should avoid firing the
+  // redundancy analysis pass altogether.  That could help save a
+  // couple of CPU cycle here and there!
+  ctxt->show_redundant_changes(opts.show_redundant_changes
+                               || opts.leaf_changes_only);
   ctxt->show_symbols_unreferenced_by_debug_info
     (opts.show_symbols_not_referenced_by_debug_info);
   ctxt->show_added_symbols_unreferenced_by_debug_info
diff --git a/tools/abipkgdiff.cc b/tools/abipkgdiff.cc
index 87950020..83fdc2b6 100644
--- a/tools/abipkgdiff.cc
+++ b/tools/abipkgdiff.cc
@@ -849,7 +849,7 @@ display_usage(const string& prog_name, ostream& out)
     << " --private-dso                  compare DSOs that are private "
     "to the package as well\n"
     << " --leaf-changes-only|-l  only show leaf changes, "
-    "so no change impact analysis\n"
+    "so no change impact analysis (implies --redundant)\n"
     << " --impacted-interfaces|-i when in leaf mode, show "
     "interfaces impacted by ABI changes\n"
     << " --full-impact|-f  when comparing kernel packages, show the "
@@ -1173,7 +1173,9 @@ set_diff_context_from_opts(diff_context_sptr ctxt,
 {
   ctxt->default_output_stream(&cout);
   ctxt->error_output_stream(&cerr);
-  ctxt->show_redundant_changes(opts.show_redundant_changes);
+  // See comment in abidiff.cc's set_diff_context_from_opts.
+  ctxt->show_redundant_changes(opts.show_redundant_changes
+                               || opts.leaf_changes_only);
   ctxt->show_leaf_changes_only(opts.leaf_changes_only);
   ctxt->show_impacted_interfaces(opts.show_impacted_interfaces);
   ctxt->show_unreachable_types(opts.show_all_types);
-- 
2.25.1.481.gfbce0eb801-goog


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 2/5] abg-leaf-reporter.cc: Fix indentation of function parameter diffs.
  2020-03-12  6:30 [PATCH 0/5] More whitespace and leaf-changes-only fixes Giuliano Procida
  2020-03-12  6:30 ` [PATCH 1/5] Fix interaction of --redundant and --leaf-changes-only options Giuliano Procida
@ 2020-03-12  6:30 ` Giuliano Procida
  2020-03-13 17:37   ` Dodji Seketeli
  2020-03-12  6:30 ` [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output Giuliano Procida
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 21+ messages in thread
From: Giuliano Procida @ 2020-03-12  6:30 UTC (permalink / raw)
  To: libabigail; +Cc: dodji, kernel-team, gprocida

When reporting the details of changes to function parameter
differences in leaf-changes-only mode, the details are output at the
same level of indentation as the introductory text. In default mode
the usual 2-space indentation is used.

This patch fixes this discrepancy, making the output more readable.

	* src/abg-leaf-reporter.cc (report): In the fn_parm_diff
	override, indent the lines of detail by 2 spaces.
	* tests/data/test-abidiff-exit/test-leaf3-report.txt: Update
	report with correct indentation.

Signed-off-by: Giuliano Procida <gprocida@google.com>
---
 src/abg-leaf-reporter.cc                         |  2 +-
 .../data/test-abidiff-exit/test-leaf3-report.txt | 16 ++++++++--------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
index 878e4125..bbd51dcb 100644
--- a/src/abg-leaf-reporter.cc
+++ b/src/abg-leaf-reporter.cc
@@ -250,7 +250,7 @@ leaf_reporter::report(const fn_parm_diff& d,
   out << " of type '"
       << f->get_type_pretty_representation()
       << "' changed:\n";
-  d.type_diff()->report(out, indent);
+  d.type_diff()->report(out, indent + "  ");
 }
 
 /// Report the changes carried by a @ref function_type_diff node.
diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
index d02c71a7..138c4b5a 100644
--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt
+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
@@ -7,23 +7,23 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 
   [C] 'function void fn1(sto1)' at test-leaf3-v1.c:10:1 has some sub-type changes:
     parameter 1 of type 'struct sto1' changed:
-    type name changed from 'sto1' to 'stn1'
-    type size hasn't changed
+      type name changed from 'sto1' to 'stn1'
+      type size hasn't changed
 
 
   [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
     parameter 1 of type 'struct sto2' changed:
-    type name changed from 'sto2' to 'stn2'
-    type size changed from 64 to 128 (in bits)
-    1 data member insertion:
-      'double stn2::y', at offset 64 (in bits) at test-leaf3-v1.c:7:1
+      type name changed from 'sto2' to 'stn2'
+      type size changed from 64 to 128 (in bits)
+      1 data member insertion:
+        'double stn2::y', at offset 64 (in bits) at test-leaf3-v1.c:7:1
 
   [C] 'function void fn3(sto1*)' at test-leaf3-v1.c:16:1 has some sub-type changes:
     parameter 1 of type 'sto1*' changed:
-    pointer type changed from: 'sto1*' to: 'stn1*'
+      pointer type changed from: 'sto1*' to: 'stn1*'
 
   [C] 'function void fn4(sto2*)' at test-leaf3-v1.c:19:1 has some sub-type changes:
     parameter 1 of type 'sto2*' changed:
-    pointer type changed from: 'sto2*' to: 'stn2*'
+      pointer type changed from: 'sto2*' to: 'stn2*'
 
 
-- 
2.25.1.481.gfbce0eb801-goog


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output.
  2020-03-12  6:30 [PATCH 0/5] More whitespace and leaf-changes-only fixes Giuliano Procida
  2020-03-12  6:30 ` [PATCH 1/5] Fix interaction of --redundant and --leaf-changes-only options Giuliano Procida
  2020-03-12  6:30 ` [PATCH 2/5] abg-leaf-reporter.cc: Fix indentation of function parameter diffs Giuliano Procida
@ 2020-03-12  6:30 ` Giuliano Procida
  2020-03-14 20:09   ` Matthias Maennich
  2020-03-16 13:10   ` [PATCH 3/5 v2] " Giuliano Procida
  2020-03-12  6:30 ` [PATCH 4/5] [abidiff] Output 2-space indentation consistently Giuliano Procida
  2020-03-12  6:30 ` [PATCH 5/5] [abidiff] Treat function type changes as local Giuliano Procida
  4 siblings, 2 replies; 21+ messages in thread
From: Giuliano Procida @ 2020-03-12  6:30 UTC (permalink / raw)
  To: libabigail; +Cc: dodji, kernel-team, gprocida

There is distributed responsibility for horizontal and vertical
whitespace in the reporting code with indent and new line control
information being manipulated by and passed in and out of functions.
Occasionally, this information is ignored or incorrect and the code
tends to err on the side of more rather than fewer new lines.

The outcome is that abidiff output sometimes contains extra blank
lines which can be confusing.

This patch eliminates some of the more obvious cases:

   - after data member deletions
   - in enumerator change lists
   - after "type size hasn't changed"
   - before listing impacted interfaces

The patch cleans up the reporting of data members. The code will
either emit indentation, a short description and a new line or do
nothing at all.

The patch also removes some stray location reporting code for array
diffs which would have produced some oddly placed output. I could not
get this code to trigger as loc = decl->get_location() was never
present on the array decls in question.

	* src/abg-default-reporter.cc (report): In the enum_diff
	override, simplify new line logic; emit just one
	blank line after each enum. In the array_diff override, remove
	stray location reporting which doesn't appear to ever trigger;
	fix new line logic. In the class_or_union_diff override,
	simplify new line logic for deleted members; pass indentation
	to represent_data_member.
	* src/abg-leaf-reporter.cc (report): In the array_diff
	override, remove stray location reporting which doesn't appear
	to ever trigger; fix new line handling. In the
	class_or_union_diff override, simplify new line logic for
	deleted members; pass indentation to represent_data_member.
	* src/abg-reporter-priv.cc (represent_data_member): Handle
	indentation; fix new line logic.
	(report_size_and_alignment_changes): Fix new line logic
	for "type size hasn't changed" message; simplify new line
	logic.
	(report_name_size_and_alignment_changes): Fix new line logic.
	(maybe_report_interfaces_impacted_by_diff) Remove new line
	prefix code and new_line_prefix argument.
	* src/abg-reporter-priv.h (represent_data_member): Add indent
	argument.
	(maybe_report_interfaces_impacted_by_diff) Remove
	new_line_prefix argument.
	* tests/data/test-*/*report*.txt: Remove some blank lines.

Signed-off-by: Giuliano Procida <gprocida@google.com>
---
 src/abg-default-reporter.cc                   |  43 +++-----
 src/abg-leaf-reporter.cc                      |  27 ++---
 src/abg-reporter-priv.cc                      |  34 +++---
 src/abg-reporter-priv.h                       |   9 +-
 .../test5-fn-changed-report-0.txt             |   1 -
 .../test5-fn-changed-report-1.txt             |   1 -
 .../test6-var-changed-report-0.txt            |   1 -
 .../test6-var-changed-report-1.txt            |   1 -
 .../test7-fn-changed-report-0.txt             |   1 -
 .../test-abidiff-exit/test-leaf3-report.txt   |   1 -
 .../test-loc-with-locs-report.txt             |   1 -
 .../test-loc-without-locs-report.txt          |   1 -
 .../test-abidiff/test-PR18791-report0.txt     |   2 -
 tests/data/test-abidiff/test-enum0-report.txt |   1 -
 tests/data/test-abidiff/test-enum1-report.txt |   1 -
 .../data/test-abidiff/test-struct1-report.txt |   1 -
 .../PR25058-liblttng-ctl-report-1.txt         |   5 -
 tests/data/test-diff-dwarf/test13-report.txt  |   1 -
 .../test-diff-dwarf/test38-union-report-0.txt |   1 -
 .../data/test-diff-dwarf/test40-report-0.txt  |   2 -
 .../test42-PR21296-clanggcc-report0.txt       |   1 -
 .../test43-PR22913-report-0.txt               |   1 -
 tests/data/test-diff-filter/test10-report.txt |   1 -
 tests/data/test-diff-filter/test18-report.txt |   1 -
 ...st23-redundant-fn-parm-change-report-0.txt |   2 -
 .../test30-pr18904-rvalueref-report0.txt      |   8 --
 .../test30-pr18904-rvalueref-report1.txt      |   8 --
 .../test30-pr18904-rvalueref-report2.txt      |   8 --
 .../test35-pr18754-no-added-syms-report-0.txt |   8 --
 .../data/test-diff-filter/test36-report-0.txt |   3 -
 .../test42-leaf-report-output-0.txt           |   1 -
 tests/data/test-diff-filter/test7-report.txt  |   1 -
 ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt |   2 -
 .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |   4 -
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-0.txt |   2 -
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt |   2 -
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 101 ------------------
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt |   3 -
 ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt |   5 -
 ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   1 -
 .../test10-changed-parm-c-report-0.txt        |   3 -
 .../test-diff-suppr/test35-leaf-report-0.txt  |   1 -
 .../test-diff-suppr/test36-leaf-report-0.txt  |   2 -
 .../test41-enumerator-changes-report-0.txt    |   2 -
 44 files changed, 42 insertions(+), 264 deletions(-)

diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
index 3bfdfbc4..a0b9eeea 100644
--- a/src/abg-default-reporter.cc
+++ b/src/abg-default-reporter.cc
@@ -130,16 +130,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
 	   i != sorted_deleted_enumerators.end();
 	   ++i)
 	{
-	  if (i != sorted_deleted_enumerators.begin())
-	    out << "\n";
 	  out << indent
 	      << "  '"
 	      << i->get_qualified_name()
 	      << "' value '"
 	      << i->get_value()
 	      << "'";
+	  out << "\n";
 	}
-      out << "\n\n";
     }
   if (numins)
     {
@@ -151,16 +149,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
 	   i != sorted_inserted_enumerators.end();
 	   ++i)
 	{
-	  if (i != sorted_inserted_enumerators.begin())
-	    out << "\n";
 	  out << indent
 	      << "  '"
 	      << i->get_qualified_name()
 	      << "' value '"
 	      << i->get_value()
 	      << "'";
+	  out << "\n";
 	}
-      out << "\n\n";
     }
   if (numchanges)
     {
@@ -173,8 +169,6 @@ default_reporter::report(const enum_diff& d, ostream& out,
 	   i != sorted_changed_enumerators.end();
 	   ++i)
 	{
-	  if (i != sorted_changed_enumerators.begin())
-	    out << "\n";
 	  out << indent
 	      << "  '"
 	      << i->first.get_qualified_name()
@@ -182,13 +176,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
 	      << i->first.get_value() << "' to '"
 	      << i->second.get_value() << "'";
 	  report_loc_info(second, *d.context(), out);
+	  out << "\n";
 	}
-      out << "\n\n";
     }
 
+  out << "\n";
+
   if (d.context()->show_leaf_changes_only())
-    maybe_report_interfaces_impacted_by_diff(&d, out, indent,
-					     /*new_line_prefix=*/false);
+    maybe_report_interfaces_impacted_by_diff(&d, out, indent);
 
   d.reported_once(true);
 }
@@ -392,7 +387,7 @@ default_reporter::report(const pointer_diff& d, ostream& out,
 	: string("void");
 
       out << indent
-	  << "in pointed to type '" <<  repr << "'";
+	  << "in pointed to type '" << repr << "'";
       report_loc_info(dif->second_subject(), *d.context(), out);
       out << ":\n";
       dif->report(out, indent + "  ");
@@ -673,12 +668,12 @@ default_reporter::report(const array_diff& d, ostream& out,
       dif->report(out, indent + "  ");
     }
 
-  report_name_size_and_alignment_changes(d.first_array(),
-					 d.second_array(),
-					 d.context(),
-					 out, indent,
-					 /*new line=*/false);
-  report_loc_info(d.second_array(), *d.context(), out);
+  if (report_name_size_and_alignment_changes(d.first_array(),
+					     d.second_array(),
+					     d.context(),
+					     out, indent,
+					     /*new line=*/false))
+    out << "\n";
 }
 
 /// Generates a report for an intance of @ref base_diff.
@@ -1014,7 +1009,6 @@ default_reporter::report(const class_or_union_diff& d,
 	  sort_data_members
 	    (d.class_or_union_diff::get_priv()->deleted_data_members_,
 	     sorted_dms);
-	  bool emitted = false;
 	  for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
 	       i != sorted_dms.end();
 	       ++i)
@@ -1024,14 +1018,8 @@ default_reporter::report(const class_or_union_diff& d,
 	      ABG_ASSERT(data_mem);
 	      if (get_member_is_static(data_mem))
 		continue;
-	      if (emitted)
-		out << "\n";
-	      out << indent << "  ";
-	      represent_data_member(data_mem, ctxt, out);
-	      emitted = true;
+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
 	    }
-	  if (emitted)
-	    out << "\n";
 	}
 
       //report insertions
@@ -1052,8 +1040,7 @@ default_reporter::report(const class_or_union_diff& d,
 	      var_decl_sptr data_mem =
 		dynamic_pointer_cast<var_decl>(*i);
 	      ABG_ASSERT(data_mem);
-	      out << indent << "  ";
-	      represent_data_member(data_mem, ctxt, out);
+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
 	    }
 	}
 
diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
index bbd51dcb..f706bd21 100644
--- a/src/abg-leaf-reporter.cc
+++ b/src/abg-leaf-reporter.cc
@@ -78,7 +78,7 @@ report_diffs(const reporter_base& r,
 
 	  string n = (*i)->first_subject()->get_pretty_representation();
 
-	  out << indent << "'" << n ;
+	  out << indent << "'" << n;
 
 	  report_loc_info((*i)->first_subject(),
 			  *(*i)->context(), out);
@@ -425,11 +425,12 @@ leaf_reporter::report(const array_diff& d,
 						    d.second_array(),
 						    "array type");
 
-  report_name_size_and_alignment_changes(d.first_array(),
-					 d.second_array(),
-					 d.context(),
-					 out, indent,
-					 /*new line=*/false);
+  if (report_name_size_and_alignment_changes(d.first_array(),
+					     d.second_array(),
+					     d.context(),
+					     out, indent,
+					     /*new line=*/false))
+    out << "\n";
 
   diff_sptr dif = d.element_type_diff();
   if (diff_to_be_reported(dif.get()))
@@ -441,8 +442,6 @@ leaf_reporter::report(const array_diff& d,
       dif->report(out, indent + "  ");
     }
 
-  report_loc_info(d.second_array(), *d.context(), out);
-
   maybe_report_interfaces_impacted_by_diff(&d, out, indent);
 }
 
@@ -592,7 +591,6 @@ leaf_reporter::report(const class_or_union_diff& d,
 	  sort_data_members
 	    (d.class_or_union_diff::get_priv()->deleted_data_members_,
 	     sorted_dms);
-	  bool emitted = false;
 	  for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
 	       i != sorted_dms.end();
 	       ++i)
@@ -602,14 +600,8 @@ leaf_reporter::report(const class_or_union_diff& d,
 	      ABG_ASSERT(data_mem);
 	      if (get_member_is_static(data_mem))
 		continue;
-	      if (emitted)
-		out << "\n";
-	      out << indent << "  ";
-	      represent_data_member(data_mem, ctxt, out);
-	      emitted = true;
+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
 	    }
-	  if (emitted)
-	    out << "\n";
 	}
 
       //report insertions
@@ -630,8 +622,7 @@ leaf_reporter::report(const class_or_union_diff& d,
 	      var_decl_sptr data_mem =
 		dynamic_pointer_cast<var_decl>(*i);
 	      ABG_ASSERT(data_mem);
-	      out << indent << "  ";
-	      represent_data_member(data_mem, ctxt, out);
+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
 	    }
 	}
 
diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc
index fbac85f8..948a32fc 100644
--- a/src/abg-reporter-priv.cc
+++ b/src/abg-reporter-priv.cc
@@ -242,16 +242,19 @@ represent(const diff_context& ctxt,
 /// @param ctxt the current diff context.
 ///
 /// @param out the output stream to send the representation to
+///
+/// @param indent the indentation string to use for the change report.
 void
 represent_data_member(var_decl_sptr d,
 		      const diff_context_sptr& ctxt,
-		      ostream& out)
+		      ostream& out,
+		      const string& indent)
 {
   if (!is_data_member(d)
       || (!get_member_is_static(d) && !get_data_member_is_laid_out(d)))
     return;
 
-  out << "'" << d->get_pretty_representation() << "'";
+  out << indent << "'" << d->get_pretty_representation() << "'";
   if (!get_member_is_static(d))
     {
       // Do not emit offset information for data member of a union
@@ -262,8 +265,8 @@ represent_data_member(var_decl_sptr d,
 			    get_data_member_offset(d),
 			    *ctxt, out);
       report_loc_info(d, *ctxt, out);
-      out << "\n";
     }
+  out << "\n";
 }
 
 /// If a given @ref var_diff node carries a data member change in
@@ -806,7 +809,10 @@ report_size_and_alignment_changes(type_or_decl_base_sptr	first,
 	} // end if (fs != ss || fdc != sdc)
       else
 	if (ctxt->show_relative_offset_changes())
-	  out << indent << "type size hasn't changed\n";
+	  {
+	    out << indent << "type size hasn't changed";
+	    n = true;
+	  }
     }
   if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY)
       && (fa != sa))
@@ -819,9 +825,7 @@ report_size_and_alignment_changes(type_or_decl_base_sptr	first,
       n = true;
     }
 
-  if (n)
-    return true;
-  return false;
+  return n;
 }
 
 /// @param tod the type or declaration to emit loc info about
@@ -910,8 +914,8 @@ report_name_size_and_alignment_changes(decl_base_sptr		first,
 	}
     }
 
-  nl |= report_size_and_alignment_changes(first, second, ctxt,
-					  out, indent, nl);
+  nl = report_size_and_alignment_changes(first, second, ctxt,
+                                         out, indent, nl);
   return nl;
 }
 
@@ -1366,14 +1370,10 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
 /// @param out the output stream to report to.
 ///
 /// @param indent the white space string to use for indentation.
-///
-/// @param new_line_prefix if set to true, it means there is going to
-/// be a new line emitted before the report.
 void
 maybe_report_interfaces_impacted_by_diff(const diff	*d,
 					 ostream	&out,
-					 const string	&indent,
-					 bool		new_line_prefix)
+					 const string	&indent)
 {
   const diff_context_sptr &ctxt = d->context();
   const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff();
@@ -1395,9 +1395,6 @@ maybe_report_interfaces_impacted_by_diff(const diff	*d,
   vector<type_or_decl_base_sptr> sorted_impacted_interfaces;
   sort_artifacts_set(*impacted_artifacts, sorted_impacted_interfaces);
 
-  if (new_line_prefix)
-    out << '\n';
-
   size_t num_impacted_interfaces = impacted_artifacts->size();
   if (num_impacted_interfaces == 1)
     out << indent << "one impacted interface:\n";
@@ -1424,9 +1421,6 @@ maybe_report_interfaces_impacted_by_diff(const diff	*d,
 /// @param out the output stream to report to.
 ///
 /// @param indent the white space string to use for indentation.
-///
-/// @param new_line_prefix if set to true, it means there is going to
-/// be a new line emitted before the report.
 void
 maybe_report_interfaces_impacted_by_diff(const diff_sptr	&d,
 					 ostream		&out,
diff --git a/src/abg-reporter-priv.h b/src/abg-reporter-priv.h
index 7471c74f..04803f43 100644
--- a/src/abg-reporter-priv.h
+++ b/src/abg-reporter-priv.h
@@ -151,7 +151,8 @@ represent(const diff_context& ctxt,
 void
 represent_data_member(var_decl_sptr d,
 		      const diff_context_sptr& ctxt,
-		      ostream& out);
+		      ostream& out,
+		      const string& indent);
 
 void
 maybe_show_relative_offset_change(const var_diff_sptr &diff,
@@ -244,14 +245,12 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
 void
 maybe_report_interfaces_impacted_by_diff(const diff		*d,
 					 ostream		&out,
-					 const string		&indent,
-					 bool new_line_prefix = true);
+					 const string		&indent);
 
 void
 maybe_report_interfaces_impacted_by_diff(const diff_sptr	&d,
 					 ostream		&out,
-					 const string		&indent,
-					 bool new_line_prefix = false);
+					 const string		&indent);
 
 } // end namespace comparison
 } // end namespace abigail
diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
index 96d48ccf..04676908 100644
--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt
+++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
         1 data member deletion:
           'unsigned char S1::m1', at offset 32 (in bits)
 
-
diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
index 3c8c4a8f..b39f650d 100644
--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt
+++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
         1 data member deletion:
           'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1
 
-
diff --git a/tests/data/test-abicompat/test6-var-changed-report-0.txt b/tests/data/test-abicompat/test6-var-changed-report-0.txt
index 5d2bd89c..f5077879 100644
--- a/tests/data/test-abicompat/test6-var-changed-report-0.txt
+++ b/tests/data/test-abicompat/test6-var-changed-report-0.txt
@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
       1 data member deletion:
         'unsigned char S1::m1', at offset 32 (in bits)
 
-
diff --git a/tests/data/test-abicompat/test6-var-changed-report-1.txt b/tests/data/test-abicompat/test6-var-changed-report-1.txt
index 697929f0..5b78c83c 100644
--- a/tests/data/test-abicompat/test6-var-changed-report-1.txt
+++ b/tests/data/test-abicompat/test6-var-changed-report-1.txt
@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
       1 data member deletion:
         'unsigned char S1::m1', at offset 32 (in bits) at test6-var-changed-libapp-v0.h:11:1
 
-
diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
index 19db76e3..6a34710d 100644
--- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt
+++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type name changed from 'float' to 'int'
       type size hasn't changed
 
-
   [C] 'function void print(const Student)' has some indirect sub-type changes:
     parameter 1 of type 'const Student' has sub-type changes:
       in unqualified underlying type 'struct Student':
diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
index 138c4b5a..7602e761 100644
--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt
+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
@@ -10,7 +10,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
       type name changed from 'sto1' to 'stn1'
       type size hasn't changed
 
-
   [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
     parameter 1 of type 'struct sto2' changed:
       type name changed from 'sto2' to 'stn2'
diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
index 53672744..bc37ff53 100644
--- a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type size hasn't changed
 
 
-
diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
index 6893e3fc..56c41d79 100644
--- a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type size hasn't changed
 
 
-
diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
index 5758077d..7e16fe32 100644
--- a/tests/data/test-abidiff/test-PR18791-report0.txt
+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
@@ -48,9 +48,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
                                          struct std::__detail::_List_node_base
                                        2 data member deletions:
                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
-
                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
-
                                        1 data member insertion:
                                          'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt
index c7c5a682..1cd7eaaf 100644
--- a/tests/data/test-abidiff/test-enum0-report.txt
+++ b/tests/data/test-abidiff/test-enum0-report.txt
@@ -3,7 +3,6 @@
     type size hasn't changed
     1 enumerator deletion:
       'E::e2' value '1'
-
     1 enumerator insertion:
       'E::e1' value '1'
 
diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt
index f1198ef9..7e8acf80 100644
--- a/tests/data/test-abidiff/test-enum1-report.txt
+++ b/tests/data/test-abidiff/test-enum1-report.txt
@@ -3,7 +3,6 @@
     type size hasn't changed
     1 enumerator insertion:
       'E::e1' value '1'
-
     1 enumerator change:
       'E::e2' from value '1' to '2'
 
diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
index 39b71e55..e334bf1a 100644
--- a/tests/data/test-abidiff/test-struct1-report.txt
+++ b/tests/data/test-abidiff/test-struct1-report.txt
@@ -6,7 +6,6 @@
 
     1 data member deletion:
       'char s0::m1', at offset 96 (in bits)
-
     1 data member insertion:
       'double s0::m01', at offset 128 (in bits)
     2 data member changes:
diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
index 29f823ec..aab271ff 100644
--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
@@ -100,7 +100,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
            type size hasn't changed
-
            3 data member changes:
             name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
             name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
@@ -171,7 +170,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
           type size changed from 35008 to 35072 (in bits)
           1 data member deletion:
             'char lttng_session::padding[12]', at offset 34912 (in bits)
-
           1 data member insertion:
             'union {char padding[12]; void* ptr;} lttng_session::extended', at offset 34944 (in bits)
 
@@ -208,7 +206,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
           1 data member deletion:
             'bool lttng_notification::owns_elements', at offset 128 (in bits)
 
-
   [C] 'function lttng_notification_channel_status lttng_notification_channel_subscribe(lttng_notification_channel*, const lttng_condition*)' has some indirect sub-type changes:
     return type changed:
       enum type 'enum lttng_notification_channel_status' changed, as reported earlier
@@ -289,7 +286,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
                            'op_type::AST_OP_BIN_AND' value '10'
                            'op_type::AST_OP_BIN_OR' value '11'
                            'op_type::AST_OP_BIN_XOR' value '12'
-
                          5 enumerator insertions:
                            'op_type::AST_OP_BIT_RSHIFT' value '6'
                            'op_type::AST_OP_BIT_LSHIFT' value '7'
@@ -319,7 +315,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
                          type size hasn't changed
                          1 enumerator deletion:
                            'unary_op_type::AST_UNARY_BIN_NOT' value '4'
-
                          1 enumerator insertion:
                            'unary_op_type::AST_UNARY_BIT_NOT' value '4'
 
diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
index cf29a4fd..833879c7 100644
--- a/tests/data/test-diff-dwarf/test13-report.txt
+++ b/tests/data/test-diff-dwarf/test13-report.txt
@@ -12,7 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
            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 (in bits)
diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt
index f7a75df7..fd9708e6 100644
--- a/tests/data/test-diff-dwarf/test38-union-report-0.txt
+++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt
@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         type size hasn't changed
         1 data member deletion:
           'int some_union_type::m0'
-
         type changed from:
           union some_union_type{int m0; char m1; S m2;}
         to:
diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
index d0b8c52c..f0f9e1a1 100644
--- a/tests/data/test-diff-dwarf/test40-report-0.txt
+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         type size changed from 96 to 64 (in 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)
@@ -24,7 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
            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':
diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
index f0a25a2e..44918baa 100644
--- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
+++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
@@ -19,7 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     return type changed:
       type name changed from 'std::tuple<STR&&>' to 'std::tuple<STR &&>'
       type size hasn't changed
-
       1 base class deletion:
         struct std::_Tuple_impl<0ul, STR&&>
       1 base class insertion:
diff --git a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
index 1c0c773d..60681336 100644
--- a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
+++ b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
@@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             'char m2', at offset 8 (in bits)
 
 
-
diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt
index bdc31fd0..5a505fc3 100644
--- a/tests/data/test-diff-filter/test10-report.txt
+++ b/tests/data/test-diff-filter/test10-report.txt
@@ -16,4 +16,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           'unsigned int S::m', at offset 0 (in bits)
 
 
-
diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
index 0d30ef39..6ade5bdf 100644
--- a/tests/data/test-diff-filter/test18-report.txt
+++ b/tests/data/test-diff-filter/test18-report.txt
@@ -14,4 +14,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
 
 
 
-
diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
index f847d32e..99c14329 100644
--- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
+++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
@@ -7,10 +7,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     parameter 1 of type 'int' changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
-
     parameter 2 of type 'int' changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
 
 
-
diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
index b78215b0..5def3a08 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           '__anonymous_enum__1::c_report_state_stream' value '142'
           '__anonymous_enum__1::c_report_stream' value '143'
           '__anonymous_enum__1::c_unload_library' value '144'
-
         92 enumerator changes:
           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
            type size hasn't changed
-
            1 data member changes (1 filtered):
             anonymous data member at offset 0 (in bits) changed from:
               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
-
           1 data member change:
            type of 'void ()* InitTableEntry::func' changed:
              in pointed to type 'function type void ()':
@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                type size changed from 2752 to 5504 (in bits)
                1 data member deletion:
                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
-
                7 data member insertions:
                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                        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> >
                               2 data member deletions:
                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-
                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-
                               1 data member change:
                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
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 ccaf8126..3bc8f6d7 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           '__anonymous_enum__1::c_report_state_stream' value '142'
           '__anonymous_enum__1::c_report_stream' value '143'
           '__anonymous_enum__1::c_unload_library' value '144'
-
         92 enumerator changes:
           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
            type size hasn't changed
-
            1 data member changes (1 filtered):
             anonymous data member at offset 0 (in bits) changed from:
               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
-
           1 data member change:
            type of 'void ()* InitTableEntry::func' changed:
              in pointed to type 'function type void ()':
@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                type size changed from 2752 to 5504 (in bits)
                1 data member deletion:
                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
-
                7 data member insertions:
                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
                               2 data member deletions:
                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
-
                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
-
                               1 data member change:
                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
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 44e78935..d91de66b 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           '__anonymous_enum__1::c_report_state_stream' value '142'
           '__anonymous_enum__1::c_report_stream' value '143'
           '__anonymous_enum__1::c_unload_library' value '144'
-
         92 enumerator changes:
           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
            type size hasn't changed
-
            1 data member changes (1 filtered):
             anonymous data member at offset 0 (in bytes) changed from:
               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
-
           1 data member change:
            type of 'void ()* InitTableEntry::func' changed:
              in pointed to type 'function type void ()':
@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                type size changed from 0x158 to 0x2b0 (in bytes)
                1 data member deletion:
                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
-
                7 data member insertions:
                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
                               2 data member deletions:
                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
-
                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
-
                               1 data member change:
                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
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 c9cb9246..306a9863 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
@@ -116,7 +116,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           '__anonymous_enum__1::c_report_state_stream' value '142'
           '__anonymous_enum__1::c_report_stream' value '143'
           '__anonymous_enum__1::c_unload_library' value '144'
-
         92 enumerator changes:
           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
@@ -220,7 +219,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
            type size hasn't changed
-
            1 data member changes (1 filtered):
             anonymous data member at offset 0 (in bits) changed from:
               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
@@ -235,7 +233,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
-
           1 data member change:
            type of 'void ()* InitTableEntry::func' changed:
              in pointed to type 'function type void ()':
@@ -264,7 +261,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                type size changed from 2752 to 5504 (in bits)
                1 data member deletion:
                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
-
                7 data member insertions:
                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
@@ -286,20 +282,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                        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> >
                               2 data member deletions:
                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-
                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-
                               1 data member change:
                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
index 08692c1e..22e614d8 100644
--- a/tests/data/test-diff-filter/test36-report-0.txt
+++ b/tests/data/test-diff-filter/test36-report-0.txt
@@ -13,7 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
            type size hasn't changed
 
 
-
   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
     parameter 1 of type 'S*' has sub-type changes:
       in pointed to type 'struct S' at test36-2-v1.c:6:1:
@@ -23,11 +22,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
            type name changed from 'int' to 'unsigned int'
            type size hasn't changed
 
-
          type of 'int S::m1' changed:
            type name changed from 'int' to 'unsigned int'
            type size hasn't changed
 
 
 
-
diff --git a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
index 94a0551d..d40a1374 100644
--- a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
+++ b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
   type size changed from 32 to 64 (in bits)
   1 data member insertion:
     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
-
   one impacted interface:
     function void fn(C&)
diff --git a/tests/data/test-diff-filter/test7-report.txt b/tests/data/test-diff-filter/test7-report.txt
index 7e3a4d47..26933033 100644
--- a/tests/data/test-diff-filter/test7-report.txt
+++ b/tests/data/test-diff-filter/test7-report.txt
@@ -7,7 +7,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     return type changed:
       type name changed from 'return_type' to 'other_return_type'
       type size hasn't changed
-
       no data member change (1 filtered);
 
 
diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
index 05d6fcad..873a84cd 100644
--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
@@ -54,9 +54,7 @@
                                                   struct std::__detail::_List_node_base
                                                 2 data member deletions:
                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
-
                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
-
                                                 1 data member insertion:
                                                   'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
                                               and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
index c227fa5c..a0cc67c2 100644
--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
@@ -10,7 +10,6 @@
           type size hasn't changed
           1 enumerator insertion:
             '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
-
           1 enumerator change:
             '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
 
@@ -34,7 +33,6 @@
           type size hasn't changed
           1 enumerator insertion:
             '__anonymous_enum__1::ssl_kea_ecdh_psk' value '5'
-
           1 enumerator change:
             '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1
 
@@ -52,7 +50,6 @@
                  type size hasn't changed
                  1 enumerator deletion:
                    '__anonymous_enum__::ssl_auth_rsa' value '1'
-
                  7 enumerator insertions:
                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
@@ -114,7 +111,6 @@
                                              type size hasn't changed
                                              1 enumerator insertion:
                                                '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
-
                                              1 enumerator change:
                                                '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
 
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
index bf081f52..70b41ddd 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
@@ -25,7 +25,6 @@
         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
           type size hasn't changed
-
           7 enumerator deletions:
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
@@ -34,7 +33,6 @@
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
-
           9 enumerator insertions:
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
index 7b86b964..0b909f90 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
@@ -25,7 +25,6 @@
         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
           type size hasn't changed
-
           7 enumerator deletions:
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
@@ -34,7 +33,6 @@
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
-
           9 enumerator insertions:
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
index 3d20caf1..c247ef95 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
@@ -239,15 +239,10 @@
                                                  type size changed from 1280 to 256 (in bits)
                                                  5 data member deletions:
                                                    'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
-
                                                    'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
-
                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
-
                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
-
                                                    'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
-
                                                  1 data member change:
                                                   type of 'SSL* RedsStream::ssl' changed:
                                                     in pointed to type 'typedef SSL' at reds_stream.h:32:1:
@@ -257,193 +252,99 @@
                                                         type size changed from 5504 to 0 (in bits)
                                                         94 data member deletions:
                                                           'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
-
                                                           'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
-
                                                           'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
-
                                                           'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
-
                                                           'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
-
                                                           'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
-
                                                           'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
-
                                                           'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
-
                                                           'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
-
                                                           'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
-
                                                           'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
-
                                                           'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
-
                                                           'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
-
                                                           'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
-
                                                           'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
-
                                                           'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
-
                                                           'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
-
                                                           'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
-
                                                           'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
-
                                                           'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
-
                                                           'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
-
                                                           'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
-
                                                           'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
-
                                                           'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
-
                                                           'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
-
                                                           'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
-
                                                           'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
-
                                                           'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
-
                                                           'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
-
                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
-
                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
-
                                                           'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
-
                                                           'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
-
                                                           'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
-
                                                           'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
-
                                                           'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
-
                                                           'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
-
                                                           'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
-
                                                           'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
-
                                                           'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
-
                                                           'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
-
                                                           'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
-
                                                           'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
-
                                                           'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
-
                                                           'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
-
                                                           'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
-
                                                           'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
-
                                                           'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
-
                                                           'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
-
                                                           'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
-
                                                           'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
-
                                                           'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
-
                                                           'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
-
                                                           'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
-
                                                           'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
-
                                                           'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
-
                                                           'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
-
                                                           'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
-
                                                           'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
-
                                                           'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
-
                                                           'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
-
                                                           'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
-
                                                           'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
-
                                                           'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
-
                                                           'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
-
                                                           'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
-
                                                           'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
-
                                                           'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
-
                                                           'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
-
                                                           'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
-
                                                           'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
-
                                                           'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
-
                                                           'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
-
                                                           'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
-
                                                           'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
-
                                                           'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
-
                                                           'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
-
                                                           'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
-
                                                           'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
-
                                                           'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
-
                                                           'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
-
                                                           'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
-
                                                           'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
-
                                                           'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
-
                                                           'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
-
                                                           'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
-
                                                           'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
-
                                                           'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
-
                                                           'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
-
                                                           'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
-
                                                           'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
-
                                                           'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
-
                                                           'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
-
                                                           'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
-
                                                   and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
 
 
@@ -558,7 +459,6 @@
         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
           type size hasn't changed
-
           7 enumerator deletions:
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
@@ -567,7 +467,6 @@
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
-
           9 enumerator insertions:
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
index 75ba0a50..11cd5682 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
@@ -22,7 +22,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
   'enum __anonymous_enum__2 at spice.h:471:1' changed:
     type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
     type size hasn't changed
-
     7 enumerator deletions:
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
@@ -31,7 +30,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
-
     9 enumerator insertions:
       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
@@ -48,7 +46,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
   'typedef spice_image_compression_t at spice.h:479:1' changed:
     typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
-
     2 impacted interfaces:
       function spice_image_compression_t spice_server_get_image_compression(SpiceServer*)
       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
index f8e60b50..d0381ce5 100644
--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
@@ -60,7 +60,6 @@
         type size hasn't changed
         1 enumerator insertion:
           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
-
         1 enumerator change:
           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
 
@@ -129,7 +128,6 @@
 
 
 
-
                1 member function deletion:
                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
 
@@ -138,11 +136,8 @@
 
                3 data member deletions:
                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
-
                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
-
                  '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) (by +128 bits)
                 type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed:
diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
index 10816705..89c8efa3 100644
--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
@@ -31,7 +31,6 @@
         type size hasn't changed
         1 enumerator insertion:
           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
-
         1 enumerator change:
           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
 
diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
index 8f5d0b6b..c39851d3 100644
--- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
+++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
@@ -7,14 +7,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     return type changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
-
     parameter 1 of type 'int' changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
-
     parameter 2 of type 'int' changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
 
 
-
diff --git a/tests/data/test-diff-suppr/test35-leaf-report-0.txt b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
index 411cc1b4..244455ae 100644
--- a/tests/data/test-diff-suppr/test35-leaf-report-0.txt
+++ b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
   type size changed from 32 to 64 (in bits)
   1 data member insertion:
     'char leaf::m1', at offset 32 (in bits) at test35-leaf-v1.cc:8:1
-
   one impacted interface:
     function void fn(C&)
diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
index b12a8a61..f286cc7b 100644
--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
@@ -7,7 +7,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
   type size changed from 32 to 64 (in bits)
   1 data member insertion:
     'char leaf1::m1', at offset 32 (in bits) at test36-leaf-v1.cc:7:1
-
   3 impacted interfaces:
     function void interface1(struct_type*)
     function void interface2(struct_type&)
@@ -20,7 +19,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
    and size changed from 32 to 64 (in bits) (by +32 bits)
    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
-
   3 impacted interfaces:
     function void interface1(struct_type*)
     function void interface2(struct_type&)
diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
index 4b1681bc..d772bd1d 100644
--- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
+++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
@@ -8,7 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type size hasn't changed
       1 enumerator insertion:
         'EnumType1::ee3_inserted' value '3'
-
       1 enumerator change:
         'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1
 
@@ -18,7 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type size hasn't changed
       1 enumerator insertion:
         'EnumType0::e3_inserted' value '3'
-
       1 enumerator change:
         'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1
 
-- 
2.25.1.481.gfbce0eb801-goog


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 4/5] [abidiff] Output 2-space indentation consistently.
  2020-03-12  6:30 [PATCH 0/5] More whitespace and leaf-changes-only fixes Giuliano Procida
                   ` (2 preceding siblings ...)
  2020-03-12  6:30 ` [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output Giuliano Procida
@ 2020-03-12  6:30 ` Giuliano Procida
  2020-03-13 15:38   ` [PATCH 4/5 v2] " Giuliano Procida
  2020-03-14 20:12   ` [PATCH 4/5] " Matthias Maennich
  2020-03-12  6:30 ` [PATCH 5/5] [abidiff] Treat function type changes as local Giuliano Procida
  4 siblings, 2 replies; 21+ messages in thread
From: Giuliano Procida @ 2020-03-12  6:30 UTC (permalink / raw)
  To: libabigail; +Cc: dodji, kernel-team, gprocida

abidiff emits hierarchical difference information using 2-space
indentation, almost everywhere.

In a few places, long lines are split up and 1-space is used for
clarity. Otherwise 1-space indentation appears to be only used when
reporting:

    - data member changes (not additions or removals)
    - the change of the type of a variable

This patch resolves these inconsistencies in favour of 2-space
indentation.

	* src/abg-default-reporter.cc (report): In the
	class_or_union_diff override, use 2-space indentation when
        listing changed members. In the var_diff override, do the same
        for variable type changes.
	* src/abg-leaf-reporter.cc: Ditto.
        * tests/data/test-*/*report*.txt: Update many test cases.

Signed-off-by: Giuliano Procida <gprocida@google.com>
---
 src/abg-default-reporter.cc                   |   6 +-
 src/abg-leaf-reporter.cc                      |   6 +-
 .../test-abidiff-exit/test-leaf0-report.txt   |   4 +-
 .../test-abidiff-exit/test-leaf1-report.txt   |   4 +-
 .../test-no-stray-comma-report.txt            |  10 +-
 .../test-abidiff/test-PR18791-report0.txt     | 112 +--
 .../data/test-abidiff/test-struct0-report.txt |   8 +-
 .../data/test-abidiff/test-struct1-report.txt |  10 +-
 tests/data/test-abidiff/test-var0-report.txt  |   6 +-
 .../PR25058-liblttng-ctl-report-1.txt         | 200 ++---
 tests/data/test-diff-dwarf/test0-report.txt   |   2 +-
 tests/data/test-diff-dwarf/test1-report.txt   |   2 +-
 tests/data/test-diff-dwarf/test10-report.txt  |  24 +-
 tests/data/test-diff-dwarf/test11-report.txt  |  18 +-
 tests/data/test-diff-dwarf/test13-report.txt  |  14 +-
 .../test27-local-base-diff-report.txt         |   2 +-
 .../test32-fnptr-changes-report-0.txt         |  20 +-
 .../test33-fnref-changes-report-0.txt         |  22 +-
 ...t35-pr19173-libfoo-long-clang-report-0.txt |   6 +-
 ...est35-pr19173-libfoo-long-gcc-report-0.txt |   6 +-
 .../test-diff-dwarf/test39-union-report-0.txt |   8 +-
 tests/data/test-diff-dwarf/test4-report.txt   |   2 +-
 .../data/test-diff-dwarf/test40-report-0.txt  |  14 +-
 .../test44-anon-struct-union-report-0.txt     |   6 +-
 .../test45-anon-dm-change-report-0.txt        |   6 +-
 .../test-diff-dwarf/test46-rust-report-0.txt  |   2 +-
 tests/data/test-diff-dwarf/test5-report.txt   |   2 +-
 tests/data/test-diff-dwarf/test6-report.txt   |   2 +-
 tests/data/test-diff-dwarf/test8-report.txt   |  10 +-
 tests/data/test-diff-dwarf/test9-report.txt   |   4 +-
 .../libtest45-basic-type-change-report-0.txt  |  24 +-
 .../libtest45-basic-type-change-report-1.txt  |  12 +-
 tests/data/test-diff-filter/test0-report.txt  |   4 +-
 tests/data/test-diff-filter/test01-report.txt |   4 +-
 tests/data/test-diff-filter/test1-report.txt  |   2 +-
 tests/data/test-diff-filter/test13-report.txt |   8 +-
 .../data/test-diff-filter/test15-0-report.txt |   8 +-
 .../data/test-diff-filter/test15-1-report.txt |  10 +-
 .../data/test-diff-filter/test16-report-2.txt |   6 +-
 tests/data/test-diff-filter/test16-report.txt |   2 +-
 .../data/test-diff-filter/test17-0-report.txt |   2 +-
 .../data/test-diff-filter/test17-1-report.txt |   6 +-
 tests/data/test-diff-filter/test18-report.txt |   6 +-
 tests/data/test-diff-filter/test2-report.txt  |   4 +-
 .../test21-compatible-vars-report-0.txt       |   4 +-
 .../test24-compatible-vars-report-1.txt       |   8 +-
 .../test25-cyclic-type-report-1.txt           |   4 +-
 ...st26-qualified-redundant-node-report-0.txt |  10 +-
 ...st26-qualified-redundant-node-report-1.txt |  16 +-
 ...t-and-filtered-children-nodes-report-1.txt |   4 +-
 ...t-and-filtered-children-nodes-report-2.txt |  16 +-
 ...st29-finer-redundancy-marking-report-0.txt |   2 +-
 tests/data/test-diff-filter/test3-report.txt  |   2 +-
 .../test30-pr18904-rvalueref-report0.txt      | 206 ++---
 .../test30-pr18904-rvalueref-report1.txt      | 206 ++---
 .../test30-pr18904-rvalueref-report2.txt      | 206 ++---
 .../test31-pr18535-libstdc++-report-0.txt     |  12 +-
 .../test31-pr18535-libstdc++-report-1.txt     |  12 +-
 .../test35-pr18754-no-added-syms-report-0.txt | 206 ++---
 .../test35-pr18754-no-added-syms-report-1.txt |   6 +-
 .../data/test-diff-filter/test36-report-0.txt |  18 +-
 .../data/test-diff-filter/test37-report-0.txt |  18 +-
 .../test39/test39-report-0.txt                |  20 +-
 .../test44-anonymous-data-member-report-0.txt |  10 +-
 .../test44-anonymous-data-member-report-1.txt |  12 +-
 ...x86_64--2.24.2-30.fc30.x86_64-report-0.txt |  42 +-
 .../PR24690/PR24690-report-0.txt              |   8 +-
 ...libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt | 160 ++--
 ...4--libcdio-0.94-2.fc26.x86_64-report.1.txt |  48 +-
 ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt | 110 +--
 .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |  86 +-
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 738 +++++++++---------
 ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt | 262 +++----
 ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   8 +-
 .../test0-type-suppr-report-0.txt             |  10 +-
 .../test0-type-suppr-report-3.txt             |  10 +-
 .../test0-type-suppr-report-5.txt             |  10 +-
 .../test0-type-suppr-report-7.txt             |  10 +-
 .../test1-typedef-suppr-report-0.txt          |   4 +-
 .../test1-typedef-suppr-report-2.txt          |   2 +-
 .../test17-suppr-added-var-report-0.txt       |   8 +-
 .../test17-suppr-added-var-report-2.txt       |   8 +-
 .../test17-suppr-added-var-report-5.txt       |   8 +-
 .../test18-suppr-removed-var-report-0.txt     |   8 +-
 .../test18-suppr-removed-var-report-2.txt     |   8 +-
 .../test18-suppr-removed-var-report-5.txt     |   8 +-
 .../test2-struct-suppr-report-0.txt           |   2 +-
 .../test23-alias-filter-report-0.txt          |   2 +-
 .../test23-alias-filter-report-2.txt          |   2 +-
 .../test29-soname-report-3.txt                |   8 +-
 .../test29-soname-report-6.txt                |   8 +-
 .../test29-soname-report-8.txt                |   8 +-
 .../test3-struct-suppr-report-0.txt           |   4 +-
 .../test3-struct-suppr-report-1.txt           |   2 +-
 .../test3-struct-suppr-report-2.txt           |   2 +-
 .../data/test-diff-suppr/test30-report-0.txt  |  10 +-
 .../test-diff-suppr/test36-leaf-report-0.txt  |   6 +-
 .../test4-local-suppr-report-0.txt            |  12 +-
 .../test4-local-suppr-report-1.txt            |   2 +-
 .../test46-PR25128-report-1.txt               |  10 +-
 .../test46-PR25128-report-2.txt               |  10 +-
 .../test5-fn-suppr-report-0.txt               |   2 +-
 .../test5-fn-suppr-report-1.txt               |   2 +-
 .../test5-fn-suppr-report-2.txt               |   2 +-
 .../test5-fn-suppr-report-3.txt               |   2 +-
 .../test5-fn-suppr-report-4.txt               |   2 +-
 .../test5-fn-suppr-report-5.txt               |   2 +-
 .../test6-fn-suppr-report-0-1.txt             |   6 +-
 .../test6-fn-suppr-report-0.txt               |   6 +-
 .../test6-fn-suppr-report-1.txt               |   4 +-
 .../test6-fn-suppr-report-2.txt               |   4 +-
 .../test6-fn-suppr-report-3.txt               |   4 +-
 .../test7-var-suppr-report-0.txt              |  24 +-
 .../test7-var-suppr-report-1.txt              |  12 +-
 .../test7-var-suppr-report-2.txt              |  12 +-
 .../test7-var-suppr-report-3.txt              |  12 +-
 .../test7-var-suppr-report-4.txt              |  12 +-
 .../test7-var-suppr-report-7.txt              |  12 +-
 .../test7-var-suppr-report-8.txt              |  24 +-
 119 files changed, 1711 insertions(+), 1711 deletions(-)

diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
index a0b9eeea..cbb4ef39 100644
--- a/src/abg-default-reporter.cc
+++ b/src/abg-default-reporter.cc
@@ -1060,7 +1060,7 @@ default_reporter::report(const class_or_union_diff& d,
 	    {
 	      if ((*it)->to_be_reported())
 		{
-		  represent(*it, ctxt, out, indent + " ");
+		  represent(*it, ctxt, out, indent + "  ");
 		  out << "\n";
 		}
 	    }
@@ -1080,7 +1080,7 @@ default_reporter::report(const class_or_union_diff& d,
 	    {
 	      if ((*it)->to_be_reported())
 		{
-		  represent(*it, ctxt, out, indent + " ");
+		  represent(*it, ctxt, out, indent + "  ");
 		  out << "\n";
 		}
 	    }
@@ -1715,7 +1715,7 @@ default_reporter::report(const var_diff& d, ostream& out,
 	{
 	  RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER2(dif, "type");
 	  out << indent << "type of variable changed:\n";
-	  dif->report(out, indent + " ");
+	  dif->report(out, indent + "  ");
 	}
     }
 }
diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
index f706bd21..fcea2626 100644
--- a/src/abg-leaf-reporter.cc
+++ b/src/abg-leaf-reporter.cc
@@ -648,7 +648,7 @@ leaf_reporter::report(const class_or_union_diff& d,
 	    {
 	      if (diff_to_be_reported((*it).get()))
 		{
-		  represent(*it, ctxt, out, indent + " ",
+		  represent(*it, ctxt, out, indent + "  ",
 			    /*local_only=*/true);
 		  out << "\n";
 		  emitted_data_members_changes = true;
@@ -675,7 +675,7 @@ leaf_reporter::report(const class_or_union_diff& d,
 	    {
 	      if (diff_to_be_reported((*it).get()))
 		{
-		  represent(*it, ctxt, out, indent + " ",
+		  represent(*it, ctxt, out, indent + "  ",
 			    /*local_only=*/true);
 		  out << "\n";
 		  emitted_data_members_changes = true;
@@ -991,7 +991,7 @@ leaf_reporter::report(const var_diff& d,
 	{
 	  RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER2(dif, "type");
 	  out << indent << "type of variable changed:\n";
-	  dif->report(out, indent + " ");
+	  dif->report(out, indent + "  ");
 	}
     }
 }
diff --git a/tests/data/test-abidiff-exit/test-leaf0-report.txt b/tests/data/test-abidiff-exit/test-leaf0-report.txt
index 7d15e28f..a347444c 100644
--- a/tests/data/test-abidiff-exit/test-leaf0-report.txt
+++ b/tests/data/test-abidiff-exit/test-leaf0-report.txt
@@ -16,7 +16,7 @@ Removed/Changed/Added variables summary: 0 Removed, 1 Changed, 0 Added variable
   [C] 'int changed_var' was changed to 'long int changed_var':
     size of symbol changed from 4 to 8
     type of variable changed:
-     type name changed from 'int' to 'long int'
-     type size changed from 32 to 64 (in bits)
+      type name changed from 'int' to 'long int'
+      type size changed from 32 to 64 (in bits)
 
 
diff --git a/tests/data/test-abidiff-exit/test-leaf1-report.txt b/tests/data/test-abidiff-exit/test-leaf1-report.txt
index 9da015bf..efa4a31f 100644
--- a/tests/data/test-abidiff-exit/test-leaf1-report.txt
+++ b/tests/data/test-abidiff-exit/test-leaf1-report.txt
@@ -32,7 +32,7 @@ Removed/Changed/Added variables summary: 1 Removed, 1 Changed, 1 Added variable
   [C] 'int changed_var' was changed to 'long int changed_var':
     size of symbol changed from 4 to 8
     type of variable changed:
-     type name changed from 'int' to 'long int'
-     type size changed from 32 to 64 (in bits)
+      type name changed from 'int' to 'long int'
+      type size changed from 32 to 64 (in bits)
 
 
diff --git a/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt b/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt
index a66500d5..929c5d85 100644
--- a/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt
+++ b/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt
@@ -6,9 +6,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct foo at test-b146198490-v0.cc:1:1' changed:
   type size changed from 32 to 64 (in bits)
   there are data member changes:
-   type 'int[1]' of 'foo::bar' changed:
-     type name changed from 'int[1]' to 'int[2]'
-     array type size changed from 32 to 64
-     array type subrange 1 changed length from 1 to 2
-   and size changed from 32 to 64 (in bits) (by +32 bits)
+    type 'int[1]' of 'foo::bar' changed:
+      type name changed from 'int[1]' to 'int[2]'
+      array type size changed from 32 to 64
+      array type subrange 1 changed length from 1 to 2
+    and size changed from 32 to 64 (in bits) (by +32 bits)
 
diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
index 7e16fe32..8570a984 100644
--- a/tests/data/test-abidiff/test-PR18791-report0.txt
+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
@@ -16,46 +16,46 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-                        type size changed from 192 to 256 (in bits)
-                        2 data member changes:
-                         type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
-                           underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
-                             type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
-                             type size changed from 128 to 192 (in bits)
-                             1 base class change:
-                               'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
-                                 type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
-                                 type size changed from 128 to 192 (in bits)
-                                 1 data member change:
-                                  type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
-                                    type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
+          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':
+                          type size changed from 192 to 256 (in bits)
+                          2 data member changes:
+                            type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
+                              underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
+                                type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
+                                type size changed from 128 to 192 (in bits)
+                                1 base class change:
+                                  'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
+                                    type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
                                     type size changed from 128 to 192 (in bits)
                                     1 data member change:
-                                     type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
-                                       type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
-                                       type size changed from 128 to 192 (in bits)
-                                       1 base class insertion:
-                                         struct std::__detail::_List_node_base
-                                       2 data member deletions:
-                                         'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
-                                         'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
-                                       1 data member insertion:
-                                         'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
-                                     and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
-                                  and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
+                                      type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
+                                        type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
+                                        type size changed from 128 to 192 (in bits)
+                                        1 data member change:
+                                          type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
+                                            type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
+                                            type size changed from 128 to 192 (in bits)
+                                            1 base class insertion:
+                                              struct std::__detail::_List_node_base
+                                            2 data member deletions:
+                                              'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
+                                              'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
+                                            1 data member insertion:
+                                              'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
+                                          and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
+                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
 
 
-                         'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
+                            'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
 
 
 
@@ -65,8 +65,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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
+          type of 'sigc::slot_base* sigc::connection::slot_' changed:
+            pointed to type 'class sigc::slot_base' changed, as reported earlier
 
     parameter 1 of type 'const sigc::connection&' has sub-type changes:
       in referenced type 'const sigc::connection':
@@ -118,22 +118,22 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct sigc::internal::signal_impl':
         type size changed from 192 to 256 (in bits)
         1 data member change:
-         type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
-           type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
-           type size changed from 128 to 192 (in bits)
-           1 base class change:
-             'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
-               type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
-               type size changed from 128 to 192 (in bits)
-               1 data member change:
-                type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
-                  type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
-                  type size changed from 128 to 192 (in bits)
-                  1 data member change:
-                   type of 'std::__detail::_List_node_base std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed:
-                     details were reported earlier
-                   and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
-                and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
+          type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
+            type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
+            type size changed from 128 to 192 (in bits)
+            1 base class change:
+              'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
+                type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
+                type size changed from 128 to 192 (in bits)
+                1 data member change:
+                  type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
+                    type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
+                    type size changed from 128 to 192 (in bits)
+                    1 data member change:
+                      type of 'std::__detail::_List_node_base std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed:
+                        details were reported earlier
+                      and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
+                  and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
 
 
 
@@ -155,8 +155,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             details were reported earlier
 
         1 data member change:
-         type of 'sigc::internal::signal_impl* sigc::signal_base::impl_' changed:
-           pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier
+          type of 'sigc::internal::signal_impl* sigc::signal_base::impl_' changed:
+            pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier
 
     parameter 1 of type 'const sigc::signal_base&' has sub-type changes:
       in referenced type 'const sigc::signal_base':
diff --git a/tests/data/test-abidiff/test-struct0-report.txt b/tests/data/test-abidiff/test-struct0-report.txt
index f6c4cece..e22d59b1 100644
--- a/tests/data/test-abidiff/test-struct0-report.txt
+++ b/tests/data/test-abidiff/test-struct0-report.txt
@@ -4,10 +4,10 @@
     1 data member insertion:
       'char s0::m2', at offset 64 (in bits)
     1 data member change:
-     type of 'char s0::m1' changed:
-       type name changed from 'char' to 'unsigned int'
-       type size changed from 8 to 32 (in bits)
-       type alignment changed from 8 to 32
+      type of 'char s0::m1' changed:
+        type name changed from 'char' to 'unsigned int'
+        type size changed from 8 to 32 (in bits)
+        type alignment changed from 8 to 32
 
   's0&' changed:
     referenced type 'class s0' changed, as reported earlier
diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
index e334bf1a..242ba321 100644
--- a/tests/data/test-abidiff/test-struct1-report.txt
+++ b/tests/data/test-abidiff/test-struct1-report.txt
@@ -9,12 +9,12 @@
     1 data member insertion:
       'double s0::m01', at offset 128 (in bits)
     2 data member changes:
-     type of 'int s0::m0' changed:
-       type name changed from 'int' to 'char'
-       type size changed from 32 to 8 (in bits)
-       type alignment changed from 32 to 8
+      type of 'int s0::m0' changed:
+        type name changed from 'int' to 'char'
+        type size changed from 32 to 8 (in bits)
+        type alignment changed from 32 to 8
 
-     'unsigned int s0::m2' offset changed from 128 to 192 (in bits) (by +64 bits)
+      'unsigned int s0::m2' offset changed from 128 to 192 (in bits) (by +64 bits)
   'const s0' changed:
     unqualified underlying type 'class s0' changed, as reported earlier
   'const s0*' changed:
diff --git a/tests/data/test-abidiff/test-var0-report.txt b/tests/data/test-abidiff/test-var0-report.txt
index b4c9a38e..996a4dc0 100644
--- a/tests/data/test-abidiff/test-var0-report.txt
+++ b/tests/data/test-abidiff/test-var0-report.txt
@@ -1,6 +1,6 @@
 1 changed declaration:
   'int var' was changed to 'char var':
     type of variable changed:
-     type name changed from 'int' to 'char'
-     type size changed from 32 to 8 (in bits)
-     type alignment changed from 32 to 8
+      type name changed from 'int' to 'char'
+      type size changed from 32 to 8 (in bits)
+      type alignment changed from 32 to 8
diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
index aab271ff..088a0970 100644
--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
@@ -90,24 +90,24 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
       in pointed to type 'struct lttng_event_context':
         type size hasn't changed
         2 data member changes:
-         type of 'lttng_event_context_type lttng_event_context::ctx' changed:
-           type size hasn't changed
-           2 enumerator insertions:
-             'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL' value '20'
-             'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_USER' value '21'
-
-
-         type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
-           type name changed from '__anonymous_union__4' to '__anonymous_union__5'
-           type size hasn't changed
-           3 data member changes:
-            name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
-            name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
-            name of '__anonymous_union__4::perf_counter' changed to '__anonymous_union__5::perf_counter'
-           type changed from:
-             union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
-           to:
-             union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
+          type of 'lttng_event_context_type lttng_event_context::ctx' changed:
+            type size hasn't changed
+            2 enumerator insertions:
+              'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL' value '20'
+              'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_USER' value '21'
+
+
+          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
+            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
+            type size hasn't changed
+            3 data member changes:
+              name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
+              name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
+              name of '__anonymous_union__4::perf_counter' changed to '__anonymous_union__5::perf_counter'
+            type changed from:
+              union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
+            to:
+              union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
 
   [C] 'function lttng_condition_type lttng_condition_get_type(const lttng_condition*)' has some indirect sub-type changes:
     return type changed:
@@ -123,10 +123,10 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
       in pointed to type 'struct lttng_event':
         type size hasn't changed
         1 data member change:
-         type of 'lttng_event_type lttng_event::type' changed:
-           type size hasn't changed
-           1 enumerator insertion:
-             'lttng_event_type::LTTNG_EVENT_USERSPACE_PROBE' value '6'
+          type of 'lttng_event_type lttng_event::type' changed:
+            type size hasn't changed
+            1 enumerator insertion:
+              'lttng_event_type::LTTNG_EVENT_USERSPACE_PROBE' value '6'
 
 
 
@@ -184,8 +184,8 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
         in pointed to type 'struct lttng_event_field':
           type size hasn't changed
           1 data member change:
-           type of 'lttng_event lttng_event_field::event' changed:
-             details were reported earlier
+            type of 'lttng_event lttng_event_field::event' changed:
+              details were reported earlier
 
 
   [C] 'function int lttng_list_tracepoints(lttng_handle*, lttng_event**)' has some indirect sub-type changes:
@@ -231,101 +231,101 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
       in pointed to type 'struct filter_parser_ctx':
         type size hasn't changed
         1 data member change:
-         type of 'filter_ast* filter_parser_ctx::ast' changed:
-           in pointed to type 'struct filter_ast':
-             type size changed from 704 to 768 (in bits)
-             2 data member changes:
-              type of 'filter_node filter_ast::root' changed:
-                type size changed from 576 to 640 (in bits)
-                2 data member changes:
-                 type of 'filter_node* filter_node::parent' changed:
-                   pointed to type 'struct filter_node' changed; details are being reported
-
-                 type of 'union {struct {} unknown; struct {filter_node* child;} root; struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression; struct {op_type type; filter_node* lchild; filter_node* rchild;} op; struct {unary_op_type type; filter_node* child;} unary_op;} filter_node::u' changed:
-                   type size changed from 320 to 384 (in bits)
-                   4 data member changes:
-                    type of 'struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression' changed:
+          type of 'filter_ast* filter_parser_ctx::ast' changed:
+            in pointed to type 'struct filter_ast':
+              type size changed from 704 to 768 (in bits)
+              2 data member changes:
+                type of 'filter_node filter_ast::root' changed:
+                  type size changed from 576 to 640 (in bits)
+                  2 data member changes:
+                    type of 'filter_node* filter_node::parent' changed:
+                      pointed to type 'struct filter_node' changed; details are being reported
+
+                    type of 'union {struct {} unknown; struct {filter_node* child;} root; struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression; struct {op_type type; filter_node* lchild; filter_node* rchild;} op; struct {unary_op_type type; filter_node* child;} unary_op;} filter_node::u' changed:
                       type size changed from 320 to 384 (in bits)
-                      1 data member insertion:
-                        'filter_node* next_bracket', at offset 320 (in bits)
-                      5 data member changes:
-                       type of 'ast_link_type post_op' changed:
-                         type size hasn't changed
-                         1 enumerator insertion:
-                           'ast_link_type::AST_LINK_BRACKET' value '3'
+                      4 data member changes:
+                        type of 'struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression' changed:
+                          type size changed from 320 to 384 (in bits)
+                          1 data member insertion:
+                            'filter_node* next_bracket', at offset 320 (in bits)
+                          5 data member changes:
+                            type of 'ast_link_type post_op' changed:
+                              type size hasn't changed
+                              1 enumerator insertion:
+                                'ast_link_type::AST_LINK_BRACKET' value '3'
 
 
-                       type of 'ast_link_type pre_op' changed:
-                         details were reported earlier
+                            type of 'ast_link_type pre_op' changed:
+                              details were reported earlier
 
-                       type of 'union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u' changed:
-                         type size hasn't changed
-                         1 data member change:
-                          type of 'filter_node* child' changed:
-                            pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u' changed:
+                              type size hasn't changed
+                              1 data member change:
+                                type of 'filter_node* child' changed:
+                                  pointed to type 'struct filter_node' changed; details are being reported
 
-                         type changed from:
-                           union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
-                         to:
-                           union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
-                       type of 'filter_node* prev' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                              type changed from:
+                                union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
+                              to:
+                                union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
+                            type of 'filter_node* prev' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
-                       type of 'filter_node* next' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'filter_node* next' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
 
-                    type of 'struct {op_type type; filter_node* lchild; filter_node* rchild;} op' changed:
-                      type size hasn't changed
-                      3 data member changes:
-                       type of 'op_type type' changed:
-                         type size hasn't changed
-                         5 enumerator deletions:
-                           'op_type::AST_OP_RSHIFT' value '6'
-                           'op_type::AST_OP_LSHIFT' value '7'
-                           'op_type::AST_OP_BIN_AND' value '10'
-                           'op_type::AST_OP_BIN_OR' value '11'
-                           'op_type::AST_OP_BIN_XOR' value '12'
-                         5 enumerator insertions:
-                           'op_type::AST_OP_BIT_RSHIFT' value '6'
-                           'op_type::AST_OP_BIT_LSHIFT' value '7'
-                           'op_type::AST_OP_BIT_AND' value '10'
-                           'op_type::AST_OP_BIT_OR' value '11'
-                           'op_type::AST_OP_BIT_XOR' value '12'
+                        type of 'struct {op_type type; filter_node* lchild; filter_node* rchild;} op' changed:
+                          type size hasn't changed
+                          3 data member changes:
+                            type of 'op_type type' changed:
+                              type size hasn't changed
+                              5 enumerator deletions:
+                                'op_type::AST_OP_RSHIFT' value '6'
+                                'op_type::AST_OP_LSHIFT' value '7'
+                                'op_type::AST_OP_BIN_AND' value '10'
+                                'op_type::AST_OP_BIN_OR' value '11'
+                                'op_type::AST_OP_BIN_XOR' value '12'
+                              5 enumerator insertions:
+                                'op_type::AST_OP_BIT_RSHIFT' value '6'
+                                'op_type::AST_OP_BIT_LSHIFT' value '7'
+                                'op_type::AST_OP_BIT_AND' value '10'
+                                'op_type::AST_OP_BIT_OR' value '11'
+                                'op_type::AST_OP_BIT_XOR' value '12'
 
 
-                       type of 'filter_node* lchild' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'filter_node* lchild' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
-                       type of 'filter_node* rchild' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'filter_node* rchild' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
 
-                    type of 'struct {filter_node* child;} root' changed:
-                      type size hasn't changed
-                      1 data member change:
-                       type of 'filter_node* child' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                        type of 'struct {filter_node* child;} root' changed:
+                          type size hasn't changed
+                          1 data member change:
+                            type of 'filter_node* child' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
 
-                    type of 'struct {unary_op_type type; filter_node* child;} unary_op' changed:
-                      type size hasn't changed
-                      2 data member changes:
-                       type of 'unary_op_type type' changed:
-                         type size hasn't changed
-                         1 enumerator deletion:
-                           'unary_op_type::AST_UNARY_BIN_NOT' value '4'
-                         1 enumerator insertion:
-                           'unary_op_type::AST_UNARY_BIT_NOT' value '4'
+                        type of 'struct {unary_op_type type; filter_node* child;} unary_op' changed:
+                          type size hasn't changed
+                          2 data member changes:
+                            type of 'unary_op_type type' changed:
+                              type size hasn't changed
+                              1 enumerator deletion:
+                                'unary_op_type::AST_UNARY_BIN_NOT' value '4'
+                              1 enumerator insertion:
+                                'unary_op_type::AST_UNARY_BIT_NOT' value '4'
 
 
-                       type of 'filter_node* child' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'filter_node* child' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
 
 
 
-              'cds_list_head filter_ast::allocated_nodes' offset changed from 576 to 640 (in bits) (by +64 bits)
+                'cds_list_head filter_ast::allocated_nodes' offset changed from 576 to 640 (in bits) (by +64 bits)
 
 
   [C] 'function YYSTYPE* lttng_yyget_lval(yyscan_t)' has some indirect sub-type changes:
@@ -334,8 +334,8 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
         underlying type 'union YYSTYPE' changed:
           type size hasn't changed
           1 data member change:
-           type of 'filter_node* YYSTYPE::n' changed:
-             pointed to type 'struct filter_node' changed, as reported earlier
+            type of 'filter_node* YYSTYPE::n' changed:
+              pointed to type 'struct filter_node' changed, as reported earlier
 
           type changed from:
             union YYSTYPE{long long int ll; char c; gc_string* gs; filter_node* n;}
diff --git a/tests/data/test-diff-dwarf/test0-report.txt b/tests/data/test-diff-dwarf/test0-report.txt
index 24d5e022..cad7ac78 100644
--- a/tests/data/test-diff-dwarf/test0-report.txt
+++ b/tests/data/test-diff-dwarf/test0-report.txt
@@ -18,6 +18,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
               'unsigned int B0S0::m2', at offset 64 (in bits)
 
         1 data member change:
-         'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected'
+          'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected'
 
 
diff --git a/tests/data/test-diff-dwarf/test1-report.txt b/tests/data/test-diff-dwarf/test1-report.txt
index 962bfac5..9c7178f3 100644
--- a/tests/data/test-diff-dwarf/test1-report.txt
+++ b/tests/data/test-diff-dwarf/test1-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'unsigned int S::m01', at offset 32 (in bits)
         1 data member change:
-         'int S::m1' offset changed from 32 to 64 (in bits) (by +32 bits)
+          'int S::m1' offset changed from 32 to 64 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test10-report.txt b/tests/data/test-diff-dwarf/test10-report.txt
index 84400c29..1745a4fb 100644
--- a/tests/data/test-diff-dwarf/test10-report.txt
+++ b/tests/data/test-diff-dwarf/test10-report.txt
@@ -8,18 +8,18 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S':
         type size changed from 1152 to 1280 (in bits)
         2 data member changes:
-         type of 'int S::m0[5][3]' changed:
-           type name changed from 'int[5][3]' to 'int[5][4]'
-           array type size changed from 256 to 288
-           array type subrange 2 changed length from 3 to 4
+          type of 'int S::m0[5][3]' changed:
+            type name changed from 'int[5][3]' to 'int[5][4]'
+            array type size changed from 256 to 288
+            array type subrange 2 changed length from 3 to 4
 
-         type of 'int* S::m1[10]' changed:
-           array element type 'int*' changed: 
-             in pointed to type 'int':
-               type name changed from 'int' to 'char'
-               type size changed from 32 to 8 (in bits)
-           type name changed from 'int*[10]' to 'char*[10]'
-           type size hasn't changed
-         and offset changed from 512 to 640 (in bits) (by +128 bits)
+          type of 'int* S::m1[10]' changed:
+            array element type 'int*' changed: 
+              in pointed to type 'int':
+                type name changed from 'int' to 'char'
+                type size changed from 32 to 8 (in bits)
+            type name changed from 'int*[10]' to 'char*[10]'
+            type size hasn't changed
+          and offset changed from 512 to 640 (in bits) (by +128 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test11-report.txt b/tests/data/test-diff-dwarf/test11-report.txt
index 32058bb6..ee5a753d 100644
--- a/tests/data/test-diff-dwarf/test11-report.txt
+++ b/tests/data/test-diff-dwarf/test11-report.txt
@@ -8,15 +8,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S':
         type size changed from 1248 to 1536 (in bits)
         2 data member changes:
-         type of 'int S::m0[5][3]' changed:
-           type name changed from 'int[5][3]' to 'int[6][3]'
-           array type size changed from 256 to 288
-           array type subrange 1 changed length from 5 to 6
+          type of 'int S::m0[5][3]' changed:
+            type name changed from 'int[5][3]' to 'int[6][3]'
+            array type size changed from 256 to 288
+            array type subrange 1 changed length from 5 to 6
 
-         type of 'int S::m1[6][4]' changed:
-           type name changed from 'int[6][4]' to 'int[6][5]'
-           array type size changed from 320 to 352
-           array type subrange 2 changed length from 4 to 5
-         and offset changed from 480 to 576 (in bits) (by +96 bits)
+          type of 'int S::m1[6][4]' changed:
+            type name changed from 'int[6][4]' to 'int[6][5]'
+            array type size changed from 320 to 352
+            array type subrange 2 changed length from 4 to 5
+          and offset changed from 480 to 576 (in bits) (by +96 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
index 833879c7..d58b0a8e 100644
--- a/tests/data/test-diff-dwarf/test13-report.txt
+++ b/tests/data/test-diff-dwarf/test13-report.txt
@@ -8,14 +8,14 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S':
         type size changed from 128 to 192 (in 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 '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 (in bits)
+          type of 'unsigned int S::m2' changed:
+            type name changed from 'unsigned int' to 'long long int'
+            type size changed from 32 to 64 (in bits)
 
-         'unsigned char S::m3' offset changed from 96 to 128 (in bits) (by +32 bits)
+          'unsigned char S::m3' offset changed from 96 to 128 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt b/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
index 63c7ec8c..3df36134 100644
--- a/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
+++ b/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
@@ -19,6 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             details were reported earlier
 
         1 data member change:
-         'int S::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
+          'int S::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt b/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
index 91b92d20..51b3920b 100644
--- a/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
+++ b/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
@@ -30,19 +30,19 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     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 ()':
-           parameter 1 of type 'double' was added
+        type of 'int ()* S::fnptr0' changed:
+          in pointed to type 'function type int ()':
+            parameter 1 of type 'double' was added
 
 
-       type of 'int ()* S::fnptr1' changed:
-         in pointed to type 'function type int ()':
-           entity changed from 'function type int ()' to 'void'
-           type size changed from 64 to 0 (in bits)
+        type of 'int ()* S::fnptr1' changed:
+          in pointed to type 'function type int ()':
+            entity changed from 'function type int ()' to 'void'
+            type size changed from 64 to 0 (in bits)
 
-       type of 'int ()* S::fnptr2' changed:
-         entity changed from 'int ()*' to 'int'
-         type size changed from 64 to 32 (in bits)
+        type of 'int ()* S::fnptr2' changed:
+          entity changed from 'int ()*' to 'int'
+          type size changed from 64 to 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt b/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
index fcab9120..c8da7868 100644
--- a/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
+++ b/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
@@ -31,20 +31,20 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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 ()':
-             parameter 1 of type 'double' was added
+          type of 'int ()& S::fnref0' changed:
+            in referenced type 'function type int ()':
+              parameter 1 of type 'double' was added
 
 
-         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::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 ()':
-             entity changed from 'function type int ()' to 'int'
-             type size changed from 64 to 32 (in bits)
+          type of 'int ()& S::fnref2' changed:
+            in referenced type 'function type int ()':
+              entity changed from 'function type int ()' to 'int'
+              type size changed from 64 to 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt
index 3db4c087..0046caae 100644
--- a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt
+++ b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt
@@ -6,8 +6,8 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
   [C] 'char buggy_symbol[5]' was changed to 'char buggy_symbol[10]':
     size of symbol changed from 5 to 10
     type of variable changed:
-     type name changed from 'char[5]' to 'char[10]'
-     array type size changed from 40 to 80
-     array type subrange 1 changed length from 5 to 10
+      type name changed from 'char[5]' to 'char[10]'
+      array type size changed from 40 to 80
+      array type subrange 1 changed length from 5 to 10
 
 
diff --git a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt
index 3db4c087..0046caae 100644
--- a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt
+++ b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt
@@ -6,8 +6,8 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
   [C] 'char buggy_symbol[5]' was changed to 'char buggy_symbol[10]':
     size of symbol changed from 5 to 10
     type of variable changed:
-     type name changed from 'char[5]' to 'char[10]'
-     array type size changed from 40 to 80
-     array type subrange 1 changed length from 5 to 10
+      type name changed from 'char[5]' to 'char[10]'
+      array type size changed from 40 to 80
+      array type subrange 1 changed length from 5 to 10
 
 
diff --git a/tests/data/test-diff-dwarf/test39-union-report-0.txt b/tests/data/test-diff-dwarf/test39-union-report-0.txt
index 2f70de44..4e98e97d 100644
--- a/tests/data/test-diff-dwarf/test39-union-report-0.txt
+++ b/tests/data/test-diff-dwarf/test39-union-report-0.txt
@@ -8,10 +8,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'union some_union_type':
         type size changed from 64 to 96 (in bits)
         1 data member change:
-         type of 'S some_union_type::m2' changed:
-           type size changed from 64 to 96 (in bits)
-           1 data member insertion:
-             'char S::S_member2', at offset 64 (in bits)
+          type of 'S some_union_type::m2' changed:
+            type size changed from 64 to 96 (in bits)
+            1 data member insertion:
+              'char S::S_member2', at offset 64 (in bits)
 
 
 
diff --git a/tests/data/test-diff-dwarf/test4-report.txt b/tests/data/test-diff-dwarf/test4-report.txt
index e784dde6..42ea4807 100644
--- a/tests/data/test-diff-dwarf/test4-report.txt
+++ b/tests/data/test-diff-dwarf/test4-report.txt
@@ -8,6 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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'
+          'int C0::m0' access changed from 'private' to 'public'
 
 
diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
index f0f9e1a1..27dd48e4 100644
--- a/tests/data/test-diff-dwarf/test40-report-0.txt
+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
@@ -10,17 +10,17 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         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)
+          '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
+          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:
@@ -30,7 +30,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         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)
+          'int S1::m0' offset changed from 0 to 64 (in bits) (by +64 bits)
+          'char S1::m1' offset changed from 32 to 96 (in bits) (by +64 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt b/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt
index ff0131a4..fd15a239 100644
--- a/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt
+++ b/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt
@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct S0':
         type size hasn't changed
         1 data member change:
-         type of 'union {int d; char c;} S0::m0' changed:
-           entity changed from 'union {int d; char c;}' to 'int'
-           type size hasn't changed
+          type of 'union {int d; char c;} S0::m0' changed:
+            entity changed from 'union {int d; char c;}' to 'int'
+            type size hasn't changed
 
 
 
diff --git a/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt b/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt
index e43c3a89..4fb2f58e 100644
--- a/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt
+++ b/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt
@@ -10,15 +10,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S1::m01', at offset 32 (in bits)
         1 data member change:
-         'char S1::m1' offset changed from 64 to 40 (in bits) (by -24 bits)
+          'char S1::m1' offset changed from 64 to 40 (in bits) (by -24 bits)
         1 data member change:
-         anonymous data member struct {int m0; char m01;} at offset 0 (in bits) became data member 'int S1::m0'
+          anonymous data member struct {int m0; char m01;} at offset 0 (in bits) became data member 'int S1::m0'
 
   [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:
-         data member int S0::m0 at offset 0 (in bits) became anonymous data member 'union {int m0; char m01;}'
+          data member int S0::m0 at offset 0 (in bits) became anonymous data member 'union {int m0; char m01;}'
 
 
diff --git a/tests/data/test-diff-dwarf/test46-rust-report-0.txt b/tests/data/test-diff-dwarf/test46-rust-report-0.txt
index 66538cdf..109abd65 100644
--- a/tests/data/test-diff-dwarf/test46-rust-report-0.txt
+++ b/tests/data/test-diff-dwarf/test46-rust-report-0.txt
@@ -11,7 +11,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'u32 two::Foo::b', at offset 32 (in bits)
       1 data member change:
-       name of 'one::Foo::a' changed to 'two::Foo::a'
+        name of 'one::Foo::a' changed to 'two::Foo::a'
     parameter 2 of type 'u32' was added
 
 
diff --git a/tests/data/test-diff-dwarf/test5-report.txt b/tests/data/test-diff-dwarf/test5-report.txt
index 74c9e3bf..81a4aa38 100644
--- a/tests/data/test-diff-dwarf/test5-report.txt
+++ b/tests/data/test-diff-dwarf/test5-report.txt
@@ -8,6 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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'
+          'int C0::m0' access changed from 'private' to 'public'
 
 
diff --git a/tests/data/test-diff-dwarf/test6-report.txt b/tests/data/test-diff-dwarf/test6-report.txt
index 755d37f8..cb7b00b6 100644
--- a/tests/data/test-diff-dwarf/test6-report.txt
+++ b/tests/data/test-diff-dwarf/test6-report.txt
@@ -8,6 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S0':
         type size hasn't changed
         1 data member change:
-         name of 'S0::m2' changed to 'S0::m12'
+          name of 'S0::m2' changed to 'S0::m12'
 
 
diff --git a/tests/data/test-diff-dwarf/test8-report.txt b/tests/data/test-diff-dwarf/test8-report.txt
index 5adaea5f..8ee5a975 100644
--- a/tests/data/test-diff-dwarf/test8-report.txt
+++ b/tests/data/test-diff-dwarf/test8-report.txt
@@ -15,14 +15,14 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           'struct B0' changed:
             type size hasn't changed
             1 data member change:
-             'char B0::m0' access changed from 'public' to 'private'
+              'char B0::m0' access changed from 'public' to 'private'
 
         1 base class insertion:
           class B1
         1 data member change:
-         type of 'int S::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
-         and offset changed from 32 to 64 (in bits) (by +32 bits), 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 (in bits)
+          and offset changed from 32 to 64 (in bits) (by +32 bits), access changed from 'public' to 'private'
 
 
diff --git a/tests/data/test-diff-dwarf/test9-report.txt b/tests/data/test-diff-dwarf/test9-report.txt
index 914841bd..01814b45 100644
--- a/tests/data/test-diff-dwarf/test9-report.txt
+++ b/tests/data/test-diff-dwarf/test9-report.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 1 Changed, 1 Added variables
   [C] 'int global_var0' was changed to 'char global_var0':
     size of symbol changed from 4 to 1
     type of variable changed:
-     type name changed from 'int' to 'char'
-     type size changed from 32 to 8 (in bits)
+      type name changed from 'int' to 'char'
+      type size changed from 32 to 8 (in bits)
 
 
diff --git a/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt b/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt
index 78be7f06..45424dc2 100644
--- a/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt
+++ b/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt
@@ -12,10 +12,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S0' at test45-basic-type-change-v1.cc:8:1:
         type size hasn't changed
         1 data member change:
-         type of 'int* S0::m0' changed:
-           in pointed to type 'int':
-             type name changed from 'int' to 'char'
-             type size changed from 32 to 8 (in bits)
+          type of 'int* S0::m0' changed:
+            in pointed to type 'int':
+              type name changed from 'int' to 'char'
+              type size changed from 32 to 8 (in bits)
 
 
   [C] 'function int* foo1(S1&)' at test45-basic-type-change-v1.cc:28:1 has some indirect sub-type changes:
@@ -27,10 +27,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S1' at test45-basic-type-change-v1.cc:13:1:
         type size hasn't changed
         1 data member change:
-         type of 'int* S1::m0' changed:
-           in pointed to type 'int':
-             type name changed from 'int' to 'char'
-             type size changed from 32 to 8 (in bits)
+          type of 'int* S1::m0' changed:
+            in pointed to type 'int':
+              type name changed from 'int' to 'char'
+              type size changed from 32 to 8 (in bits)
 
 
   [C] 'function const int foo2(S2&)' at test45-basic-type-change-v1.cc:32:1 has some indirect sub-type changes:
@@ -40,10 +40,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S2' at test45-basic-type-change-v1.cc:18:1:
         type size hasn't changed
         1 data member change:
-         type of 'int* S2::m0' changed:
-           in pointed to type 'int':
-             type name changed from 'int' to 'char'
-             type size changed from 32 to 8 (in bits)
+          type of 'int* S2::m0' changed:
+            in pointed to type 'int':
+              type name changed from 'int' to 'char'
+              type size changed from 32 to 8 (in bits)
 
 
   [C] 'function int foo3(S2&)' at test45-basic-type-change-v1.cc:36:1 has some indirect sub-type changes:
diff --git a/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt b/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt
index e5e4bd30..f442f4d8 100644
--- a/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt
+++ b/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt
@@ -26,8 +26,8 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct S0 at test45-basic-type-change-v0.cc:8:1' changed:
   type size hasn't changed
   there are data member changes:
-   type 'int*' of 'S0::m0' changed:
-     pointer type changed from: 'int*' to: 'char*'
+    type 'int*' of 'S0::m0' changed:
+      pointer type changed from: 'int*' to: 'char*'
 
 
 
@@ -35,8 +35,8 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct S1 at test45-basic-type-change-v0.cc:13:1' changed:
   type size hasn't changed
   there are data member changes:
-   type 'int*' of 'S1::m0' changed:
-     pointer type changed from: 'int*' to: 'char*'
+    type 'int*' of 'S1::m0' changed:
+      pointer type changed from: 'int*' to: 'char*'
 
 
 
@@ -44,7 +44,7 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct S2 at test45-basic-type-change-v0.cc:18:1' changed:
   type size hasn't changed
   there are data member changes:
-   type 'int*' of 'S2::m0' changed:
-     pointer type changed from: 'int*' to: 'char*'
+    type 'int*' of 'S2::m0' changed:
+      pointer type changed from: 'int*' to: 'char*'
 
 
diff --git a/tests/data/test-diff-filter/test0-report.txt b/tests/data/test-diff-filter/test0-report.txt
index 0d5d2e52..6967ee31 100644
--- a/tests/data/test-diff-filter/test0-report.txt
+++ b/tests/data/test-diff-filter/test0-report.txt
@@ -17,9 +17,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             1 data member insertion:
               'unsigned int B0S0::m2', at offset 32 (in bits)
             1 data member change:
-             'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 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) (by +32 bits)
+          'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test01-report.txt b/tests/data/test-diff-filter/test01-report.txt
index 0407bd46..ff759af7 100644
--- a/tests/data/test-diff-filter/test01-report.txt
+++ b/tests/data/test-diff-filter/test01-report.txt
@@ -17,9 +17,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             1 data member insertion:
               'unsigned int B0S0::m2', at offset 32 (in bits)
             1 data member change:
-             'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 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) (by +32 bits), access changed from 'private' to 'protected'
+          'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected'
 
 
diff --git a/tests/data/test-diff-filter/test1-report.txt b/tests/data/test-diff-filter/test1-report.txt
index 0c1d1911..064b41ec 100644
--- a/tests/data/test-diff-filter/test1-report.txt
+++ b/tests/data/test-diff-filter/test1-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char C1::m0', at offset 0 (in bits)
         1 data member change:
-         'int C1::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int C1::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test13-report.txt b/tests/data/test-diff-filter/test13-report.txt
index 169771ec..6a0f152a 100644
--- a/tests/data/test-diff-filter/test13-report.txt
+++ b/tests/data/test-diff-filter/test13-report.txt
@@ -15,9 +15,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           class B1
         1 data member change:
-         type of 'int S::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
-         and offset changed from 32 to 64 (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 (in bits)
+          and offset changed from 32 to 64 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test15-0-report.txt b/tests/data/test-diff-filter/test15-0-report.txt
index 2c162d55..f2d37cb2 100644
--- a/tests/data/test-diff-filter/test15-0-report.txt
+++ b/tests/data/test-diff-filter/test15-0-report.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 64 to 96 (in bits)
-       1 data member insertion:
-         'unsigned int S::m2', at offset 64 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 64 to 96 (in bits)
+        1 data member insertion:
+          'unsigned int S::m2', at offset 64 (in bits)
 
 
diff --git a/tests/data/test-diff-filter/test15-1-report.txt b/tests/data/test-diff-filter/test15-1-report.txt
index 82c6575c..ed4825ca 100644
--- a/tests/data/test-diff-filter/test15-1-report.txt
+++ b/tests/data/test-diff-filter/test15-1-report.txt
@@ -5,13 +5,13 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables
 
   [C] 'S* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 64 to 96 (in bits)
-       1 data member insertion:
-         'unsigned int S::m2', at offset 64 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 64 to 96 (in bits)
+        1 data member insertion:
+          'unsigned int S::m2', at offset 64 (in bits)
 
   [C] 'S* var2' was changed:
     type of variable changed:
-     pointed to type 'struct S' changed, as reported earlier
+      pointed to type 'struct S' changed, as reported earlier
 
 
diff --git a/tests/data/test-diff-filter/test16-report-2.txt b/tests/data/test-diff-filter/test16-report-2.txt
index 744bdced..c85d1a84 100644
--- a/tests/data/test-diff-filter/test16-report-2.txt
+++ b/tests/data/test-diff-filter/test16-report-2.txt
@@ -10,8 +10,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         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) (by +64 bits)
+          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) (by +64 bits)
 
 
diff --git a/tests/data/test-diff-filter/test16-report.txt b/tests/data/test-diff-filter/test16-report.txt
index cf2bd81c..80c3f1ec 100644
--- a/tests/data/test-diff-filter/test16-report.txt
+++ b/tests/data/test-diff-filter/test16-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
+          'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
 
 
diff --git a/tests/data/test-diff-filter/test17-0-report.txt b/tests/data/test-diff-filter/test17-0-report.txt
index 2d2f8650..a90cab1e 100644
--- a/tests/data/test-diff-filter/test17-0-report.txt
+++ b/tests/data/test-diff-filter/test17-0-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
+          'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
 
 
diff --git a/tests/data/test-diff-filter/test17-1-report.txt b/tests/data/test-diff-filter/test17-1-report.txt
index 1c75796c..83a8945c 100644
--- a/tests/data/test-diff-filter/test17-1-report.txt
+++ b/tests/data/test-diff-filter/test17-1-report.txt
@@ -10,9 +10,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         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) (by +64 bits)
+          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) (by +64 bits)
 
   [C] 'function void foo(S&)' has some indirect sub-type changes:
     parameter 1 of type 'S&' has sub-type changes:
diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
index 6ade5bdf..2535b4e9 100644
--- a/tests/data/test-diff-filter/test18-report.txt
+++ b/tests/data/test-diff-filter/test18-report.txt
@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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
+          type of 'int S::m0' changed:
+            type name changed from 'int' to 'unsigned int'
+            type size hasn't changed
 
 
 
diff --git a/tests/data/test-diff-filter/test2-report.txt b/tests/data/test-diff-filter/test2-report.txt
index 87ef1a4d..78a3c9d3 100644
--- a/tests/data/test-diff-filter/test2-report.txt
+++ b/tests/data/test-diff-filter/test2-report.txt
@@ -21,7 +21,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char C0::m2', at offset 0 (in bits)
         2 data member changes:
-         'E0 C0::m0' offset changed from 0 to 8 (in bits) (by +8 bits)
-         'E1 C0::m1' offset changed from 8 to 16 (in bits) (by +8 bits)
+          'E0 C0::m0' offset changed from 0 to 8 (in bits) (by +8 bits)
+          'E1 C0::m1' offset changed from 8 to 16 (in bits) (by +8 bits)
 
 
diff --git a/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt b/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt
index 606c619d..622f6cd4 100644
--- a/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt
+++ b/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt
@@ -5,7 +5,7 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'const volatile S* const* const* var0' was changed to 'const volatile typedef_of_S* const* const* var0':
     type of variable changed:
-     in pointed to type 'const volatile S* const* const':
-       'const volatile S* const* const' changed to 'const volatile typedef_of_S* const* const'
+      in pointed to type 'const volatile S* const* const':
+        'const volatile S* const* const' changed to 'const volatile typedef_of_S* const* const'
 
 
diff --git a/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt b/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
index 85125410..08554b4b 100644
--- a/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
+++ b/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'S a[2]' was changed to 'typedef_of_S a[2]':
     type of variable 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
+      array element type 'struct S' changed: 
+        entity changed from 'struct S' to compatible type 'typedef typedef_of_S'
+      type name changed from 'S[2]' to 'typedef_of_S[2]'
+      type size hasn't changed
 
 
diff --git a/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt b/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
index dba30227..55249d4f 100644
--- a/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
+++ b/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
@@ -10,8 +10,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::m1', at offset 32 (in bits)
         1 data member change:
-         type of 'S* S::m2' changed:
-           pointed to type 'struct S' changed; details are being reported
+          type of 'S* S::m2' changed:
+            pointed to type 'struct S' changed; details are being reported
 
 
 
diff --git a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
index a226b6c5..fbfae8d4 100644
--- a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
+++ b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
@@ -11,11 +11,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             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)
+                type of 'FooStruct::Embedded* S::m1' changed:
+                  in pointed to type 'struct FooStruct::Embedded':
+                    type size hasn't changed
+                    1 data member insertion:
+                      'char FooStruct::Embedded::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
index 0f032cbd..760576ff 100644
--- a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
+++ b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
@@ -11,15 +11,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             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)
+                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)
 
-               type of 'FooStruct::Embedded** S::m2' changed:
-                 in pointed to type 'FooStruct::Embedded*':
-                   pointed to type 'struct FooStruct::Embedded' changed, as reported earlier
+                type of 'FooStruct::Embedded** S::m2' changed:
+                  in pointed to type 'FooStruct::Embedded*':
+                    pointed to type 'struct FooStruct::Embedded' changed, as reported earlier
 
 
 
diff --git a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
index cfbc7918..b9bdb216 100644
--- a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
+++ b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
@@ -15,8 +15,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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
+          type of 'S0* S::m0' changed:
+            pointed to type 'struct S0' changed, as reported earlier
 
 
 
diff --git a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
index eba592a2..dd5afb5f 100644
--- a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
+++ b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
@@ -21,16 +21,16 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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
+          type of 'S0* S::m0' changed:
+            pointed to type 'struct S0' changed, as reported earlier
 
-         type of 'S1* S::m1' changed:
-           in pointed to type 'struct S1':
-             entity changed from 'struct S1' to compatible type 'typedef S1Renamed'
+          type of 'S1* S::m1' changed:
+            in pointed to type 'struct S1':
+              entity changed from 'struct S1' to compatible type 'typedef S1Renamed'
 
-         type of 'S2* S::m2' changed:
-           in pointed to type 'struct S2':
-             entity changed from 'struct S2' to compatible type 'typedef S2Renamed'
+          type of 'S2* S::m2' changed:
+            in pointed to type 'struct S2':
+              entity changed from 'struct S2' to compatible type 'typedef S2Renamed'
 
 
 
diff --git a/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt b/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
index a7ee9d55..5a84c530 100644
--- a/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
+++ b/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
@@ -23,6 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             details were reported earlier
 
         1 data member change:
-         'int inherited::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
+          'int inherited::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test3-report.txt b/tests/data/test-diff-filter/test3-report.txt
index ef48956a..ff099fd9 100644
--- a/tests/data/test-diff-filter/test3-report.txt
+++ b/tests/data/test-diff-filter/test3-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         'char S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'char S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
index 5def3a08..678c9f61 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
@@ -1300,14 +1300,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
       in pointed to type 'struct VarDesc':
         type size hasn't changed
         1 data member changes (1 filtered):
-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
-           type size hasn't changed
-           1 data member changes (1 filtered):
-            anonymous data member at offset 0 (in bits) changed from:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
-            to:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
+            type size hasn't changed
+            1 data member changes (1 filtered):
+              anonymous data member at offset 0 (in bits) changed from:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
+              to:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
 
 
 
@@ -1318,11 +1318,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
           1 data member change:
-           type of 'void ()* InitTableEntry::func' changed:
-             in pointed to type 'function type void ()':
-               parameter 1 of type 'typedef MyoArena' was added
+            type of 'void ()* InitTableEntry::func' changed:
+              in pointed to type 'function type void ()':
+                parameter 1 of type 'typedef MyoArena' was added
 
-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
 
   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' has some indirect sub-type changes:
     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
@@ -1340,97 +1340,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
             'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits)
             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits)
           8 data member changes (2 filtered):
-           type of 'Engine& OffloadDescriptor::m_device' changed:
-             in referenced type 'struct Engine':
-               type size changed from 2752 to 5504 (in bits)
-               1 data member deletion:
-                 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
-               7 data member insertions:
-                 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
-                 'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
-                 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
-                 'int Engine::m_num_cores', at offset 3776 (in bits)
-                 'int Engine::m_num_threads', at offset 3808 (in bits)
-                 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
-                 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
-               4 data member changes:
-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
-                    type size changed from 384 to 704 (in bits)
-                    1 data member insertion:
-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
-                    1 data member change:
-                     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:
-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
-                       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> >
-                              2 data member deletions:
-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-                              1 data member change:
-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
-                                 type size changed from 8 to 384 (in bits)
-                                 1 base class deletion:
-                                   struct std::binary_function<PtrData, PtrData, bool>
-                                 1 base class insertion:
-                                   class std::allocator<std::_Rb_tree_node<PtrData> >
-                                 3 data member insertions:
-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
+            type of 'Engine& OffloadDescriptor::m_device' changed:
+              in referenced type 'struct Engine':
+                type size changed from 2752 to 5504 (in bits)
+                1 data member deletion:
+                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
+                7 data member insertions:
+                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
+                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
+                  'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
+                  'int Engine::m_num_cores', at offset 3776 (in bits)
+                  'int Engine::m_num_threads', at offset 3808 (in bits)
+                  'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
+                  'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
+                4 data member changes:
+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
+                      type size changed from 384 to 704 (in bits)
+                      1 data member insertion:
+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
+                      1 data member change:
+                        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:
+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
+                          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> >
+                                  2 data member deletions:
+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
+                                  1 data member change:
+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
+                                      type size changed from 8 to 384 (in bits)
+                                      1 base class deletion:
+                                        struct std::binary_function<PtrData, PtrData, bool>
+                                      1 base class insertion:
+                                        class std::allocator<std::_Rb_tree_node<PtrData> >
+                                      3 data member insertions:
+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
 
-                '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
-                  array type subrange 1 changed length from 6 to 7
-                and offset changed from 2368 to 5056 (in bits) (by +2688 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
+                    array type subrange 1 changed length from 6 to 7
+                  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) (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 (in bits)
-               2 data member insertions:
-                 '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) (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 (in 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) (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)
+            '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 (in bits)
+                2 data member insertions:
+                  '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) (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 (in 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) (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) (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)
+            '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:
@@ -1513,9 +1513,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]':
     size of symbol changed from 48 to 56
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 384 to 448
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 384 to 448
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
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 3bc8f6d7..318d0bc2 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
@@ -1300,14 +1300,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
       in pointed to type 'struct VarDesc' at offload_common.h:254:1:
         type size hasn't changed
         1 data member changes (1 filtered):
-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
-           type size hasn't changed
-           1 data member changes (1 filtered):
-            anonymous data member at offset 0 (in bits) changed from:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
-            to:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
+            type size hasn't changed
+            1 data member changes (1 filtered):
+              anonymous data member at offset 0 (in bits) changed from:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
+              to:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
 
 
 
@@ -1318,11 +1318,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
           1 data member change:
-           type of 'void ()* InitTableEntry::func' changed:
-             in pointed to type 'function type void ()':
-               parameter 1 of type 'typedef MyoArena' was added
+            type of 'void ()* InitTableEntry::func' changed:
+              in pointed to type 'function type void ()':
+                parameter 1 of type 'typedef MyoArena' was added
 
-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
 
   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' at compiler_if_host.cpp:456:1 has some indirect sub-type changes:
     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
@@ -1340,97 +1340,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
             'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits) at offload_host.h:360:1
             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits) at offload_host.h:362:1
           8 data member changes (2 filtered):
-           type of 'Engine& OffloadDescriptor::m_device' changed:
-             in referenced type 'struct Engine' at offload_engine.h:395:1:
-               type size changed from 2752 to 5504 (in bits)
-               1 data member deletion:
-                 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
-               7 data member insertions:
-                 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
-                 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
-                 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) at offload_engine.h:638:1
-                 'int Engine::m_num_cores', at offset 3776 (in bits) at offload_engine.h:639:1
-                 'int Engine::m_num_threads', at offset 3808 (in bits) at offload_engine.h:640:1
-                 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) at offload_engine.h:641:1
-                 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) at offload_engine.h:644:1
-               4 data member changes:
-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
-                    type size changed from 384 to 704 (in bits)
-                    1 data member insertion:
-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) at offload_engine.h:204:1
-                    1 data member change:
-                     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:
-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
-                       underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
-                              2 data member deletions:
-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
-                              1 data member change:
-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
-                                 type size changed from 8 to 384 (in bits)
-                                 1 base class deletion:
-                                   struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
-                                 1 base class insertion:
-                                   class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
-                                 3 data member insertions:
-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits) at stl_tree.h:592:1
-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
+            type of 'Engine& OffloadDescriptor::m_device' changed:
+              in referenced type 'struct Engine' at offload_engine.h:395:1:
+                type size changed from 2752 to 5504 (in bits)
+                1 data member deletion:
+                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
+                7 data member insertions:
+                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
+                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
+                  'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) at offload_engine.h:638:1
+                  'int Engine::m_num_cores', at offset 3776 (in bits) at offload_engine.h:639:1
+                  'int Engine::m_num_threads', at offset 3808 (in bits) at offload_engine.h:640:1
+                  'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) at offload_engine.h:641:1
+                  'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) at offload_engine.h:644:1
+                4 data member changes:
+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
+                      type size changed from 384 to 704 (in bits)
+                      1 data member insertion:
+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) at offload_engine.h:204:1
+                      1 data member change:
+                        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:
+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
+                          underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
+                                  2 data member deletions:
+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
+                                  1 data member change:
+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
+                                      type size changed from 8 to 384 (in bits)
+                                      1 base class deletion:
+                                        struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
+                                      1 base class insertion:
+                                        class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
+                                      3 data member insertions:
+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits) at stl_tree.h:592:1
+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
 
-                '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
-                  array type subrange 1 changed length from 6 to 7
-                and offset changed from 2368 to 5056 (in bits) (by +2688 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
+                    array type subrange 1 changed length from 6 to 7
+                  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) (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 (in bits)
-               2 data member insertions:
-                 '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) (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 (in 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) (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)
+            '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 (in bits)
+                2 data member insertions:
+                  '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) (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 (in 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) (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) (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)
+            '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:
@@ -1513,9 +1513,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]' at offload_engine.h:659:1:
     size of symbol changed from 48 to 56
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 384 to 448
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 384 to 448
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
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 d91de66b..9021bd9d 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
@@ -1300,14 +1300,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
       in pointed to type 'struct VarDesc' at offload_common.h:254:1:
         type size hasn't changed
         1 data member changes (1 filtered):
-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
-           type size hasn't changed
-           1 data member changes (1 filtered):
-            anonymous data member at offset 0 (in bytes) changed from:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
-            to:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
+            type size hasn't changed
+            1 data member changes (1 filtered):
+              anonymous data member at offset 0 (in bytes) changed from:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
+              to:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
 
 
 
@@ -1318,11 +1318,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
           1 data member change:
-           type of 'void ()* InitTableEntry::func' changed:
-             in pointed to type 'function type void ()':
-               parameter 1 of type 'typedef MyoArena' was added
+            type of 'void ()* InitTableEntry::func' changed:
+              in pointed to type 'function type void ()':
+                parameter 1 of type 'typedef MyoArena' was added
 
-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
 
   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' at compiler_if_host.cpp:456:1 has some indirect sub-type changes:
     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
@@ -1340,97 +1340,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
             'bool OffloadDescriptor::m_traceback_called', at offset 0x11c (in bytes) at offload_host.h:360:1
             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 0x120 (in bytes) at offload_host.h:362:1
           8 data member changes (2 filtered):
-           type of 'Engine& OffloadDescriptor::m_device' changed:
-             in referenced type 'struct Engine' at offload_engine.h:395:1:
-               type size changed from 0x158 to 0x2b0 (in bytes)
-               1 data member deletion:
-                 'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
-               7 data member insertions:
-                 'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
-                 'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
-                 'mutex_t Engine::m_stream_lock', at offset 0x1b0 (in bytes) at offload_engine.h:638:1
-                 'int Engine::m_num_cores', at offset 0x1d8 (in bytes) at offload_engine.h:639:1
-                 'int Engine::m_num_threads', at offset 0x1dc (in bytes) at offload_engine.h:640:1
-                 'std::bitset<1024ul> Engine::m_cpus', at offset 0x1e0 (in bytes) at offload_engine.h:641:1
-                 'DynLibList Engine::m_dyn_libs', at offset 0x260 (in bytes) at offload_engine.h:644:1
-               4 data member changes:
-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
-                    type size changed from 0x30 to 0x58 (in bytes)
-                    1 data member insertion:
-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 0x30 (in bytes) at offload_engine.h:204:1
-                    1 data member change:
-                     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:
-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
-                       underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
-                              2 data member deletions:
-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
-                              1 data member change:
-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
-                                 type size changed from 0x1 to 0x30 (in bytes)
-                                 1 base class deletion:
-                                   struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
-                                 1 base class insertion:
-                                   class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
-                                 3 data member insertions:
-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bytes) at stl_tree.h:592:1
-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
+            type of 'Engine& OffloadDescriptor::m_device' changed:
+              in referenced type 'struct Engine' at offload_engine.h:395:1:
+                type size changed from 0x158 to 0x2b0 (in bytes)
+                1 data member deletion:
+                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
+                7 data member insertions:
+                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
+                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
+                  'mutex_t Engine::m_stream_lock', at offset 0x1b0 (in bytes) at offload_engine.h:638:1
+                  'int Engine::m_num_cores', at offset 0x1d8 (in bytes) at offload_engine.h:639:1
+                  'int Engine::m_num_threads', at offset 0x1dc (in bytes) at offload_engine.h:640:1
+                  'std::bitset<1024ul> Engine::m_cpus', at offset 0x1e0 (in bytes) at offload_engine.h:641:1
+                  'DynLibList Engine::m_dyn_libs', at offset 0x260 (in bytes) at offload_engine.h:644:1
+                4 data member changes:
+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
+                      type size changed from 0x30 to 0x58 (in bytes)
+                      1 data member insertion:
+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 0x30 (in bytes) at offload_engine.h:204:1
+                      1 data member change:
+                        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:
+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
+                          underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
+                                  2 data member deletions:
+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
+                                  1 data member change:
+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
+                                      type size changed from 0x1 to 0x30 (in bytes)
+                                      1 base class deletion:
+                                        struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
+                                      1 base class insertion:
+                                        class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
+                                      3 data member insertions:
+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bytes) at stl_tree.h:592:1
+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
 
-                'Engine::SignalMap Engine::m_signal_map' offset changed from 0xd0 to 0x128 (in bytes) (by +0x58 bytes)
-                'mutex_t Engine::m_signal_lock' offset changed from 0x100 to 0x158 (in bytes) (by +0x58 bytes)
-                type of 'coifunction* Engine::m_funcs[6]' changed:
-                  type name changed from 'coifunction*[6]' to 'coifunction*[7]'
-                  array type size changed from 0x180 to 0x1c0
-                  array type subrange 1 changed length from 6 to 7
-                and offset changed from 0x128 to 0x278 (in bytes) (by +0x150 bytes)
+                  'Engine::SignalMap Engine::m_signal_map' offset changed from 0xd0 to 0x128 (in bytes) (by +0x58 bytes)
+                  'mutex_t Engine::m_signal_lock' offset changed from 0x100 to 0x158 (in bytes) (by +0x58 bytes)
+                  type of 'coifunction* Engine::m_funcs[6]' changed:
+                    type name changed from 'coifunction*[6]' to 'coifunction*[7]'
+                    array type size changed from 0x180 to 0x1c0
+                    array type subrange 1 changed length from 6 to 7
+                  and offset changed from 0x128 to 0x278 (in bytes) (by +0x150 bytes)
 
-           'bool OffloadDescriptor::m_is_mandatory' offset changed from 0x28 to 0x29 (in bytes) (by +0x1 bytes)
-           'const bool OffloadDescriptor::m_is_openmp' offset changed from 0x29 to 0x2a (in bytes) (by +0x1 bytes)
-           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 0x48 to 0x50 (in bytes)
-               2 data member insertions:
-                 'void* OffloadDescriptor::VarExtra::alloc', at offset 0x28 (in bytes) at offload_host.h:222:1
-                 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1
-               4 data member changes (3 filtered):
-                'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
-                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 0x40 to 0x48 (in bytes)
-                    1 data member insertion:
-                      'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bytes) at cean_util.h:59:1
-                    7 data member changes:
-                     'void* CeanReadRanges::ptr' offset changed from 0 to 0x8 (in bytes) (by +0x8 bytes)
-                     'int64_t CeanReadRanges::current_number' offset changed from 0x8 to 0x10 (in bytes) (by +0x8 bytes)
-                     'int64_t CeanReadRanges::range_max_number' offset changed from 0x10 to 0x18 (in bytes) (by +0x8 bytes)
-                     'int64_t CeanReadRanges::range_size' offset changed from 0x18 to 0x20 (in bytes) (by +0x8 bytes)
-                     'int CeanReadRanges::last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes)
-                     'int64_t CeanReadRanges::init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
-                     'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
-                and offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
-                'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes)
-                'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes)
+            'bool OffloadDescriptor::m_is_mandatory' offset changed from 0x28 to 0x29 (in bytes) (by +0x1 bytes)
+            'const bool OffloadDescriptor::m_is_openmp' offset changed from 0x29 to 0x2a (in bytes) (by +0x1 bytes)
+            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 0x48 to 0x50 (in bytes)
+                2 data member insertions:
+                  'void* OffloadDescriptor::VarExtra::alloc', at offset 0x28 (in bytes) at offload_host.h:222:1
+                  'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1
+                4 data member changes (3 filtered):
+                  'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
+                  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 0x40 to 0x48 (in bytes)
+                      1 data member insertion:
+                        'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bytes) at cean_util.h:59:1
+                      7 data member changes:
+                        'void* CeanReadRanges::ptr' offset changed from 0 to 0x8 (in bytes) (by +0x8 bytes)
+                        'int64_t CeanReadRanges::current_number' offset changed from 0x8 to 0x10 (in bytes) (by +0x8 bytes)
+                        'int64_t CeanReadRanges::range_max_number' offset changed from 0x10 to 0x18 (in bytes) (by +0x8 bytes)
+                        'int64_t CeanReadRanges::range_size' offset changed from 0x18 to 0x20 (in bytes) (by +0x8 bytes)
+                        'int CeanReadRanges::last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes)
+                        'int64_t CeanReadRanges::init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
+                        'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
+                  and offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
+                  'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes)
+                  'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes)
 
-           'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes)
-           'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 0x100 to 0x108 (in bytes) (by +0x8 bytes)
-           'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 0x108 to 0x110 (in bytes) (by +0x8 bytes)
-           'bool OffloadDescriptor::m_need_runfunction' offset changed from 0x110 to 0x118 (in bytes) (by +0x8 bytes)
+            'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes)
+            'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 0x100 to 0x108 (in bytes) (by +0x8 bytes)
+            'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 0x108 to 0x110 (in bytes) (by +0x8 bytes)
+            'bool OffloadDescriptor::m_need_runfunction' offset changed from 0x110 to 0x118 (in bytes) (by +0x8 bytes)
 
   [C] 'function void __offload_register_image(void*)' at offload_host.cpp:5531:1 has some indirect sub-type changes:
     return type changed:
@@ -1513,9 +1513,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]' at offload_engine.h:659:1:
     size of symbol changed from 0x6 to 0x7
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 0x180 to 0x1c0
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 0x180 to 0x1c0
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
index 795410dc..df13b950 100644
--- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
+++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
@@ -34,12 +34,12 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere
         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) (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)
+          '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:
diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
index 4ec08fea..6a165d55 100644
--- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
+++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
@@ -34,12 +34,12 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere
         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) (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)
+          '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:
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 306a9863..828e473a 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
@@ -216,14 +216,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
       in pointed to type 'struct VarDesc':
         type size hasn't changed
         1 data member changes (1 filtered):
-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
-           type size hasn't changed
-           1 data member changes (1 filtered):
-            anonymous data member at offset 0 (in bits) changed from:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
-            to:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
+            type size hasn't changed
+            1 data member changes (1 filtered):
+              anonymous data member at offset 0 (in bits) changed from:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
+              to:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
 
 
 
@@ -234,11 +234,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
           1 data member change:
-           type of 'void ()* InitTableEntry::func' changed:
-             in pointed to type 'function type void ()':
-               parameter 1 of type 'typedef MyoArena' was added
+            type of 'void ()* InitTableEntry::func' changed:
+              in pointed to type 'function type void ()':
+                parameter 1 of type 'typedef MyoArena' was added
 
-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
 
   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' has some indirect sub-type changes:
     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
@@ -256,97 +256,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
             'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits)
             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits)
           8 data member changes (2 filtered):
-           type of 'Engine& OffloadDescriptor::m_device' changed:
-             in referenced type 'struct Engine':
-               type size changed from 2752 to 5504 (in bits)
-               1 data member deletion:
-                 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
-               7 data member insertions:
-                 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
-                 'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
-                 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
-                 'int Engine::m_num_cores', at offset 3776 (in bits)
-                 'int Engine::m_num_threads', at offset 3808 (in bits)
-                 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
-                 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
-               4 data member changes:
-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
-                    type size changed from 384 to 704 (in bits)
-                    1 data member insertion:
-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
-                    1 data member change:
-                     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:
-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
-                       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> >
-                              2 data member deletions:
-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-                              1 data member change:
-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
-                                 type size changed from 8 to 384 (in bits)
-                                 1 base class deletion:
-                                   struct std::binary_function<PtrData, PtrData, bool>
-                                 1 base class insertion:
-                                   class std::allocator<std::_Rb_tree_node<PtrData> >
-                                 3 data member insertions:
-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
+            type of 'Engine& OffloadDescriptor::m_device' changed:
+              in referenced type 'struct Engine':
+                type size changed from 2752 to 5504 (in bits)
+                1 data member deletion:
+                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
+                7 data member insertions:
+                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
+                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
+                  'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
+                  'int Engine::m_num_cores', at offset 3776 (in bits)
+                  'int Engine::m_num_threads', at offset 3808 (in bits)
+                  'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
+                  'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
+                4 data member changes:
+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
+                      type size changed from 384 to 704 (in bits)
+                      1 data member insertion:
+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
+                      1 data member change:
+                        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:
+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
+                          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> >
+                                  2 data member deletions:
+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
+                                  1 data member change:
+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
+                                      type size changed from 8 to 384 (in bits)
+                                      1 base class deletion:
+                                        struct std::binary_function<PtrData, PtrData, bool>
+                                      1 base class insertion:
+                                        class std::allocator<std::_Rb_tree_node<PtrData> >
+                                      3 data member insertions:
+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
 
-                '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
-                  array type subrange 1 changed length from 6 to 7
-                and offset changed from 2368 to 5056 (in bits) (by +2688 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
+                    array type subrange 1 changed length from 6 to 7
+                  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) (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 (in bits)
-               2 data member insertions:
-                 '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) (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 (in 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) (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)
+            '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 (in bits)
+                2 data member insertions:
+                  '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) (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 (in 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) (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) (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)
+            '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:
@@ -415,9 +415,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]':
     size of symbol changed from 48 to 56
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 384 to 448
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 384 to 448
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
diff --git a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt
index 2f07f1a6..6ae2e3b0 100644
--- a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt
+++ b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt
@@ -93,9 +93,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]':
     size of symbol changed from 48 to 56
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 384 to 448
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 384 to 448
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
index 22e614d8..4b6b634d 100644
--- a/tests/data/test-diff-filter/test36-report-0.txt
+++ b/tests/data/test-diff-filter/test36-report-0.txt
@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct S' at test36-1-v1.c:6:1:
         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
+          type of 'int S::m0' changed:
+            type name changed from 'int' to 'unsigned int'
+            type size hasn't changed
 
 
   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
@@ -18,13 +18,13 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct S' at test36-2-v1.c:6:1:
         type size hasn't changed
         2 data member changes:
-         type of 'int S::m0' changed:
-           type name changed from 'int' to 'unsigned int'
-           type size hasn't changed
+          type of 'int S::m0' changed:
+            type name changed from 'int' to 'unsigned int'
+            type size hasn't changed
 
-         type of 'int S::m1' changed:
-           type name changed from 'int' to 'unsigned int'
-           type size hasn't changed
+          type of 'int S::m1' changed:
+            type name changed from 'int' to 'unsigned int'
+            type size hasn't changed
 
 
 
diff --git a/tests/data/test-diff-filter/test37-report-0.txt b/tests/data/test-diff-filter/test37-report-0.txt
index 4617a505..9680f32c 100644
--- a/tests/data/test-diff-filter/test37-report-0.txt
+++ b/tests/data/test-diff-filter/test37-report-0.txt
@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct A' at test37-v1.cc:3:1:
         type size changed from 32 to 8 (in bits)
         1 data member change:
-         type of 'int A::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
+          type of 'int A::m0' changed:
+            type name changed from 'int' to 'char'
+            type size changed from 32 to 8 (in bits)
 
 
   [C] 'function void f2(B&)' at test37-v1.cc:23:1 has some indirect sub-type changes:
@@ -18,9 +18,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct B' at test37-v1.cc:8:1:
         type size changed from 32 to 8 (in bits)
         1 data member change:
-         type of 'int B::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
+          type of 'int B::m0' changed:
+            type name changed from 'int' to 'char'
+            type size changed from 32 to 8 (in bits)
 
 
   [C] 'function void f3(C&)' at test37-v1.cc:27:1 has some indirect sub-type changes:
@@ -28,9 +28,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct C' at test37-v1.cc:13:1:
         type size changed from 32 to 8 (in bits)
         1 data member change:
-         type of 'int C::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
+          type of 'int C::m0' changed:
+            type name changed from 'int' to 'char'
+            type size changed from 32 to 8 (in bits)
 
 
 
diff --git a/tests/data/test-diff-filter/test39/test39-report-0.txt b/tests/data/test-diff-filter/test39/test39-report-0.txt
index c6bfa2b1..43de553f 100644
--- a/tests/data/test-diff-filter/test39/test39-report-0.txt
+++ b/tests/data/test-diff-filter/test39/test39-report-0.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct container_type' at test39.h:3:1:
         type size hasn't changed
         1 data member change:
-         type of 'opaque_type* container_type::s' changed:
-           in pointed to type 'struct opaque_type' at test39-b-v1.c:3:1:
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char opaque_type::m1', at offset 32 (in bits) at test39-b-v1.c:6:1
+          type of 'opaque_type* container_type::s' changed:
+            in pointed to type 'struct opaque_type' at test39-b-v1.c:3:1:
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char opaque_type::m1', at offset 32 (in bits) at test39-b-v1.c:6:1
 
 
   [C] 'function long long int foo2(container_type*)' at test39-c-v1.c:10:1 has some indirect sub-type changes:
@@ -20,11 +20,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct container_type' at test39.h:3:1:
         type size hasn't changed
         1 data member change:
-         type of 'opaque_type* container_type::s' changed:
-           in pointed to type 'struct opaque_type' at test39-c-v1.c:3:1:
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'unsigned char opaque_type::m1', at offset 32 (in bits) at test39-c-v1.c:6:1
+          type of 'opaque_type* container_type::s' changed:
+            in pointed to type 'struct opaque_type' at test39-c-v1.c:3:1:
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'unsigned char opaque_type::m1', at offset 32 (in bits) at test39-c-v1.c:6:1
 
 
 
diff --git a/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt b/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt
index a660fd3e..ed10b78a 100644
--- a/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt
+++ b/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct S2' at test44-anonymous-data-member-v1.c:11:1:
         type size changed from 128 to 160 (in bits)
         2 data member changes:
-         anonymous data member at offset 32 (in bits) changed from:
-           struct {int b; float c;}
-         to:
-           struct {int b; float c; char e;}
+          anonymous data member at offset 32 (in bits) changed from:
+            struct {int b; float c;}
+          to:
+            struct {int b; float c; char e;}
 
-         'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
+          'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt b/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt
index c866a9d4..4ac353fb 100644
--- a/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt
+++ b/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt
@@ -6,10 +6,10 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct S2 at test-44-anonymous-data-member-v0.c:10:1' changed:
   type size changed from 128 to 160 (in bits)
   there are data member changes:
-   anonymous data member at offset 32 (in bits) changed from:
-     struct {int b; float c;}
-   to:
-     struct {int b; float c; char e;}
-   size changed from 64 to 96 (in bits) (by +32 bits)
-   'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
+    anonymous data member at offset 32 (in bits) changed from:
+      struct {int b; float c;}
+    to:
+      struct {int b; float c; char e;}
+    size changed from 64 to 96 (in bits) (by +32 bits)
+    'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
 
diff --git a/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt b/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt
index fb67e43a..f65e09e0 100644
--- a/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt
@@ -11,17 +11,17 @@
         in unqualified underlying type 'struct gl_h__gluint_vec___XUP' at gl_h.ads:57:1:
           type size hasn't changed
           1 data member change:
-           type of 'gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB* gl_h__gluint_vec___XUP::P_BOUNDS' changed:
-             in pointed to type 'struct gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB' at gl_h.ads:57:1:
-               type size hasn't changed
-               2 data member changes:
-                type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::LB0' changed:
-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
-                  type size changed from 32 to 2147483647 (in bits)
+            type of 'gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB* gl_h__gluint_vec___XUP::P_BOUNDS' changed:
+              in pointed to type 'struct gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB' at gl_h.ads:57:1:
+                type size hasn't changed
+                2 data member changes:
+                  type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::LB0' changed:
+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
+                    type size changed from 32 to 2147483647 (in bits)
 
-                type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::UB0' changed:
-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
-                  type size changed from 32 to 2147483647 (in bits)
+                  type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::UB0' changed:
+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
+                    type size changed from 32 to 2147483647 (in bits)
 
 
 
@@ -30,17 +30,17 @@
         in unqualified underlying type 'struct gtk__glarea__attributes_array___XUP' at gtk-glarea.ads:48:1:
           type size hasn't changed
           1 data member change:
-           type of 'gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB* gtk__glarea__attributes_array___XUP::P_BOUNDS' changed:
-             in pointed to type 'struct gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB':
-               type size hasn't changed
-               2 data member changes:
-                type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::LB0' changed:
-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
-                  type size changed from 32 to 2147483647 (in bits)
-
-                type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::UB0' changed:
-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
-                  type size changed from 32 to 2147483647 (in bits)
+            type of 'gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB* gtk__glarea__attributes_array___XUP::P_BOUNDS' changed:
+              in pointed to type 'struct gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB':
+                type size hasn't changed
+                2 data member changes:
+                  type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::LB0' changed:
+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
+                    type size changed from 32 to 2147483647 (in bits)
+
+                  type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::UB0' changed:
+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
+                    type size changed from 32 to 2147483647 (in bits)
 
 
 
diff --git a/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt b/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt
index d106bf9b..2dad2619 100644
--- a/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt
+++ b/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt
@@ -35,10 +35,10 @@
       1 data member insertion:
         'typedef gboolean (FlatpakTransaction*, const char*, const char*, const char*, const char*, const char**)* _FlatpakTransactionClass::end_of_lifed_with_rebase', at offset 1408 (in bits) at flatpak-transaction.h:117:1
       4 data member changes (3 filtered):
-       'typedef gboolean (FlatpakTransaction*)* _FlatpakTransactionClass::ready' offset changed from 1408 to 1472 (in bits) (by +64 bits)
-       'typedef gboolean (FlatpakTransaction*, typedef FlatpakTransactionRemoteReason, const char*, const char*, const char*)* _FlatpakTransactionClass::add_new_remote' offset changed from 1472 to 1536 (in bits) (by +64 bits)
-       'typedef gboolean (FlatpakTransaction*, GCancellable*, GError**)* _FlatpakTransactionClass::run' offset changed from 1536 to 1600 (in bits) (by +64 bits)
-       'gpointer _FlatpakTransactionClass::padding[9]' offset changed from 1600 to 1664 (in bits) (by +64 bits)
+        'typedef gboolean (FlatpakTransaction*)* _FlatpakTransactionClass::ready' offset changed from 1408 to 1472 (in bits) (by +64 bits)
+        'typedef gboolean (FlatpakTransaction*, typedef FlatpakTransactionRemoteReason, const char*, const char*, const char*)* _FlatpakTransactionClass::add_new_remote' offset changed from 1472 to 1536 (in bits) (by +64 bits)
+        'typedef gboolean (FlatpakTransaction*, GCancellable*, GError**)* _FlatpakTransactionClass::run' offset changed from 1536 to 1600 (in bits) (by +64 bits)
+        'gpointer _FlatpakTransactionClass::padding[9]' offset changed from 1600 to 1664 (in bits) (by +64 bits)
 
 
   3 added types unreachable from any public interface:
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 0c097b6b..f6f4cd98 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,73 +16,73 @@
           in pointed to type 'struct _IceConn' at ICEconn.h:131:1:
             type size hasn't changed
             2 data member changes (3 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:
-                        type size changed from 640 to 768 (in bits)
-                        2 data member insertions:
-                          '_XtransConnFd* _XtransConnInfo::recv_fds', at offset 640 (in bits) at Xtransint.h:148:1
-                          '_XtransConnFd* _XtransConnInfo::send_fds', at offset 704 (in bits) at Xtransint.h:149: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
-                             3 data member changes (16 filtered):
-                              type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSClient' changed:
-                                in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
-                                  parameter 3 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':
-                                      entity changed from 'char' to 'const char'
-                                      type size hasn't changed
-
-                              type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSServer' changed:
-                                in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
-                                  parameter 3 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':
-                                      entity changed from 'char' to 'const char'
-                                      type size hasn't changed
-
-                              type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCLTSServer' changed:
-                                in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
-                                  parameter 3 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':
-                                      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:48:1:
-                 entity changed from 'struct _IcePingWait' to compatible type 'typedef _IcePingWait' at ICEconn.h:48:1
+              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:
+                          type size changed from 640 to 768 (in bits)
+                          2 data member insertions:
+                            '_XtransConnFd* _XtransConnInfo::recv_fds', at offset 640 (in bits) at Xtransint.h:148:1
+                            '_XtransConnFd* _XtransConnInfo::send_fds', at offset 704 (in bits) at Xtransint.h:149: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
+                                3 data member changes (16 filtered):
+                                  type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSClient' changed:
+                                    in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
+                                      parameter 3 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':
+                                          entity changed from 'char' to 'const char'
+                                          type size hasn't changed
+
+                                  type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSServer' changed:
+                                    in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
+                                      parameter 3 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':
+                                          entity changed from 'char' to 'const char'
+                                          type size hasn't changed
+
+                                  type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCLTSServer' changed:
+                                    in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
+                                      parameter 3 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':
+                                          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:48:1:
+                  entity changed from 'struct _IcePingWait' to compatible type 'typedef _IcePingWait' at ICEconn.h:48:1
 
 
 
@@ -94,22 +94,22 @@
 
     [C] 'char* _IceAuthNames[1]' was changed to 'const char* _IceAuthNames[1]' at globals.h:37:1:
       type of variable changed:
-       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
+        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
 
     [C] '_IceWatchProc* _IceWatchProcs' was changed at globals.h:39:1:
       type of variable changed:
-       in pointed to type 'struct _IceWatchProc' at ICElibint.h:322:1:
-         entity changed from 'struct _IceWatchProc' to compatible type 'typedef _IceWatchProc' at ICElibint.h:322:1
-           type size hasn't changed
-           1 data member changes (2 filtered):
-            type of '_IceWatchedConnection* _IceWatchProc::watched_connections' changed:
-              in pointed to type 'struct _IceWatchedConnection' at ICElibint.h:315:1:
-                entity changed from 'struct _IceWatchedConnection' to compatible type 'typedef _IceWatchedConnection' at ICElibint.h:315:1
+        in pointed to type 'struct _IceWatchProc' at ICElibint.h:322:1:
+          entity changed from 'struct _IceWatchProc' to compatible type 'typedef _IceWatchProc' at ICElibint.h:322:1
+            type size hasn't changed
+            1 data member changes (2 filtered):
+              type of '_IceWatchedConnection* _IceWatchProc::watched_connections' changed:
+                in pointed to type 'struct _IceWatchedConnection' at ICElibint.h:315:1:
+                  entity changed from 'struct _IceWatchedConnection' to compatible type 'typedef _IceWatchedConnection' at ICElibint.h:315:1
 
 
 
diff --git a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
index 23b12adf..c4f420fa 100644
--- a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
+++ b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
@@ -10,30 +10,30 @@
           underlying type 'union {uint8_t type; cdio_dvd_physical_t physical; cdio_dvd_copyright_t copyright; cdio_dvd_disckey_t disckey; cdio_dvd_bca_t bca; cdio_dvd_manufact_t manufact;}' at dvd.h:122:1 changed:
             type size hasn't changed
             2 data member changes:
-             type of 'cdio_dvd_disckey_t disckey' changed:
-               underlying type 'struct cdio_dvd_disckey' at dvd.h:100:1 changed:
-                 type size hasn't changed
-                 1 data member change:
-                  'unsigned int cdio_dvd_disckey::agid' offset changed from 30 to 22 (in bits) (by -8 bits)
-
-             type of 'cdio_dvd_physical_t physical' changed:
-               underlying type 'struct cdio_dvd_physical' at dvd.h:86:1 changed:
-                 type size hasn't changed
-                 1 data member change:
-                  type of 'cdio_dvd_layer_t cdio_dvd_physical::layer[4]' changed:
-                    array element type 'typedef cdio_dvd_layer_t' changed: 
-                      underlying type 'struct cdio_dvd_layer' at dvd.h:65:1 changed:
-                        type size hasn't changed
-                        8 data member changes:
-                         'unsigned int cdio_dvd_layer::track_density' offset changed from 21 to 5 (in bits) (by -16 bits)
-                         'unsigned int cdio_dvd_layer::bca' offset changed from 24 to 0 (in bits) (by -24 bits)
-                         'unsigned int cdio_dvd_layer::disc_size' offset changed from 24 to 16 (in bits) (by -8 bits)
-                         'unsigned int cdio_dvd_layer::linear_density' offset changed from 25 to 1 (in bits) (by -24 bits)
-                         'unsigned int cdio_dvd_layer::nlayers' offset changed from 25 to 9 (in bits) (by -16 bits)
-                         'unsigned int cdio_dvd_layer::track_path' offset changed from 27 to 11 (in bits) (by -16 bits)
-                         'unsigned int cdio_dvd_layer::layer_type' offset changed from 28 to 12 (in bits) (by -16 bits)
-                         'unsigned int cdio_dvd_layer::min_rate' offset changed from 28 to 20 (in bits) (by -8 bits)
-                    type size hasn't changed
+              type of 'cdio_dvd_disckey_t disckey' changed:
+                underlying type 'struct cdio_dvd_disckey' at dvd.h:100:1 changed:
+                  type size hasn't changed
+                  1 data member change:
+                    'unsigned int cdio_dvd_disckey::agid' offset changed from 30 to 22 (in bits) (by -8 bits)
+
+              type of 'cdio_dvd_physical_t physical' changed:
+                underlying type 'struct cdio_dvd_physical' at dvd.h:86:1 changed:
+                  type size hasn't changed
+                  1 data member change:
+                    type of 'cdio_dvd_layer_t cdio_dvd_physical::layer[4]' changed:
+                      array element type 'typedef cdio_dvd_layer_t' changed: 
+                        underlying type 'struct cdio_dvd_layer' at dvd.h:65:1 changed:
+                          type size hasn't changed
+                          8 data member changes:
+                            'unsigned int cdio_dvd_layer::track_density' offset changed from 21 to 5 (in bits) (by -16 bits)
+                            'unsigned int cdio_dvd_layer::bca' offset changed from 24 to 0 (in bits) (by -24 bits)
+                            'unsigned int cdio_dvd_layer::disc_size' offset changed from 24 to 16 (in bits) (by -8 bits)
+                            'unsigned int cdio_dvd_layer::linear_density' offset changed from 25 to 1 (in bits) (by -24 bits)
+                            'unsigned int cdio_dvd_layer::nlayers' offset changed from 25 to 9 (in bits) (by -16 bits)
+                            'unsigned int cdio_dvd_layer::track_path' offset changed from 27 to 11 (in bits) (by -16 bits)
+                            'unsigned int cdio_dvd_layer::layer_type' offset changed from 28 to 12 (in bits) (by -16 bits)
+                            'unsigned int cdio_dvd_layer::min_rate' offset changed from 28 to 20 (in bits) (by -8 bits)
+                      type size hasn't changed
 
 
 
diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
index 873a84cd..1cd20374 100644
--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
@@ -18,50 +18,50 @@
           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':
-                                 type size changed from 192 to 256 (in bits)
-                                 2 data member changes:
-                                  type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
-                                    underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
-                                      type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
-                                      type size changed from 128 to 192 (in bits)
-                                      1 base class change:
-                                        'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
-                                          type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
+              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':
+                                    type size changed from 192 to 256 (in bits)
+                                    2 data member changes:
+                                      type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
+                                        underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
+                                          type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
                                           type size changed from 128 to 192 (in bits)
-                                          1 data member change:
-                                           type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
-                                             type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
-                                             type size changed from 128 to 192 (in bits)
-                                             1 data member change:
-                                              type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
-                                                type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
-                                                type size changed from 128 to 192 (in bits)
-                                                1 base class insertion:
-                                                  struct std::__detail::_List_node_base
-                                                2 data member deletions:
-                                                  'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
-                                                  'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
-                                                1 data member insertion:
-                                                  'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
-                                              and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
-                                           and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
+                                          1 base class change:
+                                            'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
+                                              type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
+                                              type size changed from 128 to 192 (in bits)
+                                              1 data member change:
+                                                type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
+                                                  type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
+                                                  type size changed from 128 to 192 (in bits)
+                                                  1 data member change:
+                                                    type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
+                                                      type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
+                                                      type size changed from 128 to 192 (in bits)
+                                                      1 base class insertion:
+                                                        struct std::__detail::_List_node_base
+                                                      2 data member deletions:
+                                                        'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
+                                                        'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
+                                                      1 data member insertion:
+                                                        'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
+                                                    and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
+                                                and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
 
 
-                                  'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
+                                      'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
 
 
 
@@ -72,20 +72,20 @@
         in pointed to type 'struct sigc::internal::signal_impl':
           type size changed from 192 to 256 (in bits)
           1 data member change:
-           type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
-             type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
-             type size changed from 128 to 192 (in bits)
-             1 base class change:
-               'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
-                 type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
-                 type size changed from 128 to 192 (in bits)
-                 1 data member change:
-                  type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
-                    type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
-                    type size changed from 128 to 192 (in bits)
-                    1 data member change:
-                     name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
-                  and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
+            type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
+              type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
+              type size changed from 128 to 192 (in bits)
+              1 base class change:
+                'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
+                  type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
+                  type size changed from 128 to 192 (in bits)
+                  1 data member change:
+                    type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
+                      type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
+                      type size changed from 128 to 192 (in bits)
+                      1 data member change:
+                        name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
+                    and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
 
 
 
diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
index a0cc67c2..b23de5ae 100644
--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
@@ -45,19 +45,19 @@
             1 data member insertion:
               'SSLAuthType SSLCipherSuiteInfoStr::authType', at offset 736 (in bits) at sslt.h:250:1
             1 data member changes (3 filtered):
-             type of 'SSLAuthType SSLCipherSuiteInfoStr::authAlgorithm' changed:
-               underlying type 'enum __anonymous_enum__' at sslt.h:87:1 changed:
-                 type size hasn't changed
-                 1 enumerator deletion:
-                   '__anonymous_enum__::ssl_auth_rsa' value '1'
-                 7 enumerator insertions:
-                   '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
-                   '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
-                   '__anonymous_enum__::ssl_auth_ecdh_ecdsa' value '6'
-                   '__anonymous_enum__::ssl_auth_rsa_sign' value '7'
-                   '__anonymous_enum__::ssl_auth_rsa_pss' value '8'
-                   '__anonymous_enum__::ssl_auth_psk' value '9'
-                   '__anonymous_enum__::ssl_auth_size' value '10'
+              type of 'SSLAuthType SSLCipherSuiteInfoStr::authAlgorithm' changed:
+                underlying type 'enum __anonymous_enum__' at sslt.h:87:1 changed:
+                  type size hasn't changed
+                  1 enumerator deletion:
+                    '__anonymous_enum__::ssl_auth_rsa' value '1'
+                  7 enumerator insertions:
+                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
+                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
+                    '__anonymous_enum__::ssl_auth_ecdh_ecdsa' value '6'
+                    '__anonymous_enum__::ssl_auth_rsa_sign' value '7'
+                    '__anonymous_enum__::ssl_auth_rsa_pss' value '8'
+                    '__anonymous_enum__::ssl_auth_psk' value '9'
+                    '__anonymous_enum__::ssl_auth_size' value '10'
 
 
 
@@ -67,9 +67,9 @@
     [C] 'const PRUint16 SSL_ImplementedCiphers[74]' was changed to 'const PRUint16 SSL_ImplementedCiphers[69]' at sslenum.c:51:1:
       size of symbol changed from 148 to 138
       type of variable changed:
-       type name changed from 'PRUint16[74]' to 'const PRUint16[69]'
-       array type size changed from 1184 to 1104
-       array type subrange 1 changed length from 74 to 69
+        type name changed from 'PRUint16[74]' to 'const PRUint16[69]'
+        array type size changed from 1184 to 1104
+        array type subrange 1 changed length from 74 to 69
 
 
 ================ end of changes of 'libssl3.so'===============
@@ -86,33 +86,33 @@
           underlying type 'struct NSSCMSContentInfoStr' at cmst.h:131:1 changed:
             type size hasn't changed
             1 data member changes (2 filtered):
-             type of 'NSSCMSContent NSSCMSContentInfoStr::content' changed:
-               underlying type 'union NSSCMSContentUnion' at cmst.h:118:1 changed:
-                 type size hasn't changed
-                 1 data member changes (3 filtered):
-                  type of 'NSSCMSEncryptedData* NSSCMSContentUnion::encryptedData' changed:
-                    in pointed to type 'typedef NSSCMSEncryptedData' at cmst.h:65:1:
-                      underlying type 'struct NSSCMSEncryptedDataStr' at cmst.h:468:1 changed:
-                        type size hasn't changed
-                        1 data member changes (1 filtered):
-                         type of 'NSSCMSAttribute** NSSCMSEncryptedDataStr::unprotectedAttr' changed:
-                           in pointed to type 'NSSCMSAttribute*':
-                             in pointed to type 'typedef NSSCMSAttribute' at cmst.h:69:1:
-                               underlying type 'struct NSSCMSAttributeStr' at cmst.h:487:1 changed:
-                                 type size hasn't changed
-                                 1 data member change:
-                                  type of 'SECOidData* NSSCMSAttributeStr::typeTag' changed:
-                                    in pointed to type 'typedef SECOidData' at secoidt.h:16:1:
-                                      underlying type 'struct SECOidDataStr' at secoidt.h:500:1 changed:
-                                        type size hasn't changed
-                                        1 data member change:
-                                         type of 'SECOidTag SECOidDataStr::offset' changed:
-                                           underlying type 'enum __anonymous_enum__1' at secoidt.h:34:1 changed:
-                                             type size hasn't changed
-                                             1 enumerator insertion:
-                                               '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
-                                             1 enumerator change:
-                                               '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
+              type of 'NSSCMSContent NSSCMSContentInfoStr::content' changed:
+                underlying type 'union NSSCMSContentUnion' at cmst.h:118:1 changed:
+                  type size hasn't changed
+                  1 data member changes (3 filtered):
+                    type of 'NSSCMSEncryptedData* NSSCMSContentUnion::encryptedData' changed:
+                      in pointed to type 'typedef NSSCMSEncryptedData' at cmst.h:65:1:
+                        underlying type 'struct NSSCMSEncryptedDataStr' at cmst.h:468:1 changed:
+                          type size hasn't changed
+                          1 data member changes (1 filtered):
+                            type of 'NSSCMSAttribute** NSSCMSEncryptedDataStr::unprotectedAttr' changed:
+                              in pointed to type 'NSSCMSAttribute*':
+                                in pointed to type 'typedef NSSCMSAttribute' at cmst.h:69:1:
+                                  underlying type 'struct NSSCMSAttributeStr' at cmst.h:487:1 changed:
+                                    type size hasn't changed
+                                    1 data member change:
+                                      type of 'SECOidData* NSSCMSAttributeStr::typeTag' changed:
+                                        in pointed to type 'typedef SECOidData' at secoidt.h:16:1:
+                                          underlying type 'struct SECOidDataStr' at secoidt.h:500:1 changed:
+                                            type size hasn't changed
+                                            1 data member change:
+                                              type of 'SECOidTag SECOidDataStr::offset' changed:
+                                                underlying type 'enum __anonymous_enum__1' at secoidt.h:34:1 changed:
+                                                  type size hasn't changed
+                                                  1 enumerator insertion:
+                                                    '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
+                                                  1 enumerator change:
+                                                    '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
 
 
 
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
index c247ef95..163c176c 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
@@ -25,40 +25,40 @@
           underlying type 'struct QXLInstance' at spice.h:259:1 changed:
             type size hasn't changed
             1 data member change:
-             type of 'QXLState* QXLInstance::st' changed:
-               in pointed to type 'typedef QXLState' at spice-qxl.h:35:1:
-                 underlying type 'struct QXLState' at reds.h:93:1 changed:
-                   type size hasn't changed
-                   1 data member change:
-                    type of 'RedDispatcher* QXLState::dispatcher' changed:
-                      in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
-                        underlying type 'struct RedDispatcher' at red_dispatcher.c:53:1 changed:
-                          type size changed from 3264 to 3328 (in bits)
-                          13 data member changes:
-                           type of 'QXLInstance* RedDispatcher::qxl' changed:
-                             in pointed to type 'typedef QXLInstance' at spice-qxl.h:34:1:
-                               underlying type 'struct QXLInstance' changed; details are being reported
-
-                           type of 'Dispatcher RedDispatcher::dispatcher' changed:
-                             underlying type 'struct Dispatcher' at dispatcher.h:22:1 changed:
-                               type size changed from 960 to 1024 (in bits)
-                               1 data member insertion:
-                                 'dispatcher_handle_any_message Dispatcher::any_handler', at offset 960 (in bits) at dispatcher.h:56:1
-
-                           'pthread_t RedDispatcher::worker_thread' offset changed from 2048 to 2112 (in bits) (by +64 bits)
-                           'uint32_t RedDispatcher::pending' offset changed from 2112 to 2176 (in bits) (by +64 bits)
-                           'int RedDispatcher::primary_active' offset changed from 2144 to 2208 (in bits) (by +64 bits)
-                           'int RedDispatcher::x_res' offset changed from 2176 to 2240 (in bits) (by +64 bits)
-                           'int RedDispatcher::y_res' offset changed from 2208 to 2272 (in bits) (by +64 bits)
-                           'int RedDispatcher::use_hardware_cursor' offset changed from 2240 to 2304 (in bits) (by +64 bits)
-                           type of 'RedDispatcher* RedDispatcher::next' changed:
-                             in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
-                               underlying type 'struct RedDispatcher' changed; details are being reported
-                           and offset changed from 2304 to 2368 (in bits) (by +64 bits)
-                           'Ring RedDispatcher::async_commands' offset changed from 2368 to 2432 (in bits) (by +64 bits)
-                           'pthread_mutex_t RedDispatcher::async_lock' offset changed from 2496 to 2560 (in bits) (by +64 bits)
-                           'QXLDevSurfaceCreate RedDispatcher::surface_create' offset changed from 2816 to 2880 (in bits) (by +64 bits)
-                           'unsigned int RedDispatcher::max_monitors' offset changed from 3200 to 3264 (in bits) (by +64 bits)
+              type of 'QXLState* QXLInstance::st' changed:
+                in pointed to type 'typedef QXLState' at spice-qxl.h:35:1:
+                  underlying type 'struct QXLState' at reds.h:93:1 changed:
+                    type size hasn't changed
+                    1 data member change:
+                      type of 'RedDispatcher* QXLState::dispatcher' changed:
+                        in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
+                          underlying type 'struct RedDispatcher' at red_dispatcher.c:53:1 changed:
+                            type size changed from 3264 to 3328 (in bits)
+                            13 data member changes:
+                              type of 'QXLInstance* RedDispatcher::qxl' changed:
+                                in pointed to type 'typedef QXLInstance' at spice-qxl.h:34:1:
+                                  underlying type 'struct QXLInstance' changed; details are being reported
+
+                              type of 'Dispatcher RedDispatcher::dispatcher' changed:
+                                underlying type 'struct Dispatcher' at dispatcher.h:22:1 changed:
+                                  type size changed from 960 to 1024 (in bits)
+                                  1 data member insertion:
+                                    'dispatcher_handle_any_message Dispatcher::any_handler', at offset 960 (in bits) at dispatcher.h:56:1
+
+                              'pthread_t RedDispatcher::worker_thread' offset changed from 2048 to 2112 (in bits) (by +64 bits)
+                              'uint32_t RedDispatcher::pending' offset changed from 2112 to 2176 (in bits) (by +64 bits)
+                              'int RedDispatcher::primary_active' offset changed from 2144 to 2208 (in bits) (by +64 bits)
+                              'int RedDispatcher::x_res' offset changed from 2176 to 2240 (in bits) (by +64 bits)
+                              'int RedDispatcher::y_res' offset changed from 2208 to 2272 (in bits) (by +64 bits)
+                              'int RedDispatcher::use_hardware_cursor' offset changed from 2240 to 2304 (in bits) (by +64 bits)
+                              type of 'RedDispatcher* RedDispatcher::next' changed:
+                                in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
+                                  underlying type 'struct RedDispatcher' changed; details are being reported
+                              and offset changed from 2304 to 2368 (in bits) (by +64 bits)
+                              'Ring RedDispatcher::async_commands' offset changed from 2368 to 2432 (in bits) (by +64 bits)
+                              'pthread_mutex_t RedDispatcher::async_lock' offset changed from 2496 to 2560 (in bits) (by +64 bits)
+                              'QXLDevSurfaceCreate RedDispatcher::surface_create' offset changed from 2816 to 2880 (in bits) (by +64 bits)
+                              'unsigned int RedDispatcher::max_monitors' offset changed from 3200 to 3264 (in bits) (by +64 bits)
 
 
 
@@ -164,269 +164,269 @@
           underlying type 'struct RedsState' at reds-private.h:127:1 changed:
             type size hasn't changed
             2 data member changes (1 filtered):
-             type of 'VDIPortState RedsState::agent_state' changed:
-               underlying type 'struct VDIPortState' at reds-private.h:46:1 changed:
-                 type size hasn't changed
-                 1 data member change:
-                  type of 'SpiceCharDeviceState* VDIPortState::base' changed:
-                    in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
-                      underlying type 'struct SpiceCharDeviceState' at char_device.c:47:1 changed:
-                        type size changed from 1536 to 1600 (in bits)
-                        1 data member insertion:
-                          'uint64_t SpiceCharDeviceState::cur_pool_size', at offset 384 (in bits) at char_device.c:57:1
-                        12 data member changes:
-                         'SpiceCharDeviceWriteBuffer* SpiceCharDeviceState::cur_write_buf' offset changed from 384 to 448 (in bits) (by +64 bits)
-                         'uint8_t* SpiceCharDeviceState::cur_write_buf_pos' offset changed from 448 to 512 (in bits) (by +64 bits)
-                         'SpiceTimer* SpiceCharDeviceState::write_to_dev_timer' offset changed from 512 to 576 (in bits) (by +64 bits)
-                         'uint64_t SpiceCharDeviceState::num_self_tokens' offset changed from 576 to 640 (in bits) (by +64 bits)
-                         'Ring SpiceCharDeviceState::clients' offset changed from 640 to 704 (in bits) (by +64 bits)
-                         'uint32_t SpiceCharDeviceState::num_clients' offset changed from 768 to 832 (in bits) (by +64 bits)
-                         'uint64_t SpiceCharDeviceState::client_tokens_interval' offset changed from 832 to 896 (in bits) (by +64 bits)
-                         type of 'SpiceCharDeviceInstance* SpiceCharDeviceState::sin' changed:
-                           in pointed to type 'typedef SpiceCharDeviceInstance' at spice-char.h:33:1:
-                             underlying type 'struct SpiceCharDeviceInstance' at spice.h:416:1 changed:
-                               type size hasn't changed
-                               1 data member change:
-                                type of 'SpiceCharDeviceState* SpiceCharDeviceInstance::st' changed:
-                                  in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
-                                    underlying type 'struct SpiceCharDeviceState' changed; details are being reported
-
-                         and offset changed from 896 to 960 (in bits) (by +64 bits)
-                         'int SpiceCharDeviceState::during_read_from_device' offset changed from 960 to 1024 (in bits) (by +64 bits)
-                         'int SpiceCharDeviceState::during_write_to_device' offset changed from 992 to 1056 (in bits) (by +64 bits)
-                         type of 'SpiceCharDeviceCallbacks SpiceCharDeviceState::cbs' changed:
-                           underlying type 'struct SpiceCharDeviceCallbacks' at char_device.h:81:1 changed:
-                             type size hasn't changed
-                             1 data member change:
-                              type of 'SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)* SpiceCharDeviceCallbacks::read_one_msg_from_device' changed:
-                                in pointed to type 'function type SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)':
-                                  parameter 1 of type 'SpiceCharDeviceInstance*' has sub-type changes:
-                                    pointed to type 'typedef SpiceCharDeviceInstance' changed at spice.h:399:1, as reported earlier
-
-                         and offset changed from 1024 to 1088 (in bits) (by +64 bits)
-                         'void* SpiceCharDeviceState::opaque' offset changed from 1472 to 1536 (in bits) (by +64 bits)
-
-                 no data member changes (3 filtered);
-
-             type of 'MainChannel* RedsState::main_channel' changed:
-               in pointed to type 'typedef MainChannel' at main_channel.h:48:1:
-                 underlying type 'struct MainChannel' at main_channel.h:36:1 changed:
-                   type size hasn't changed
-                   1 data member change:
-                    type of 'RedChannel MainChannel::base' changed:
-                      underlying type 'struct RedChannel' at red_channel.h:303:1 changed:
-                        type size hasn't changed
-                        2 data member changes (1 filtered):
-                         type of 'ChannelCbs RedChannel::channel_cbs' changed:
-                           underlying type 'struct {channel_configure_socket_proc config_socket; channel_disconnect_proc on_disconnect; channel_send_pipe_item_proc send_item; channel_hold_pipe_item_proc hold_item; channel_release_pipe_item_proc release_item; channel_alloc_msg_recv_buf_proc alloc_recv_buf; channel_release_msg_recv_buf_proc release_recv_buf; channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark; channel_handle_migrate_data_proc handle_migrate_data; channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial;}' at red_channel.h:195:1 changed:
-                             type size hasn't changed
-                             10 data member changes:
-                              type of 'channel_configure_socket_proc config_socket' changed:
-                                underlying type 'int (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type int (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      in pointed to type 'typedef RedChannelClient' at red_channel.h:131:1:
-                                        underlying type 'struct RedChannelClient' at red_channel.h:247:1 changed:
-                                          type size hasn't changed
-                                          2 data member changes (2 filtered):
-                                           type of 'RedChannel* RedChannelClient::channel' changed:
-                                             in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
-                                               underlying type 'struct RedChannel' changed; details are being reported
-
-                                           type of 'RedsStream* RedChannelClient::stream' changed:
-                                             in pointed to type 'typedef RedsStream' at reds_stream.h:31:1:
-                                               underlying type 'struct RedsStream' at reds.h:68:1 changed:
-                                                 type size changed from 1280 to 256 (in bits)
-                                                 5 data member deletions:
-                                                   'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
-                                                   'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
-                                                   'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
-                                                   'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
-                                                   'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
-                                                 1 data member change:
-                                                  type of 'SSL* RedsStream::ssl' changed:
-                                                    in pointed to type 'typedef SSL' at reds_stream.h:32:1:
-                                                      typedef name changed from SSL to RedsStreamPrivate at reds_stream.h:32:1
-                                                      underlying type 'struct ssl_st' at ssl.h:1065:1 changed:
-                                                        type name changed from 'ssl_st' to 'RedsStreamPrivate'
-                                                        type size changed from 5504 to 0 (in bits)
-                                                        94 data member deletions:
-                                                          'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
-                                                          'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
-                                                          'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
-                                                          'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
-                                                          'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
-                                                          'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
-                                                          'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
-                                                          'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
-                                                          'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
-                                                          'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
-                                                          'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
-                                                          'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
-                                                          'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
-                                                          'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
-                                                          'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
-                                                          'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
-                                                          'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
-                                                          'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
-                                                          'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
-                                                          'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
-                                                          'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
-                                                          'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
-                                                          'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
-                                                          'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
-                                                          'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
-                                                          'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
-                                                          'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
-                                                          'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
-                                                          'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
-                                                          'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
-                                                          'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
-                                                          'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
-                                                          'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
-                                                          'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
-                                                          'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
-                                                          'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
-                                                          'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
-                                                          'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
-                                                          'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
-                                                          'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
-                                                          'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
-                                                          'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
-                                                          'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
-                                                          'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
-                                                          'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
-                                                          'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
-                                                          'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
-                                                          'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
-                                                          'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
-                                                          'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
-                                                          'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
-                                                          'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
-                                                          'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
-                                                          'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
-                                                          'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
-                                                          'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
-                                                          'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
-                                                          'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
-                                                          'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
-                                                          'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
-                                                          'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
-                                                          'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
-                                                          'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
-                                                          'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
-                                                          'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
-                                                          'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
-                                                          'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
-                                                          'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
-                                                          'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
-                                                          'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
-                                                          'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
-                                                          'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
-                                                          'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
-                                                          'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
-                                                          'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
-                                                          'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
-                                                          'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
-                                                          'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
-                                                          'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
-                                                          'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
-                                                          'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
-                                                          'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
-                                                          'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
-                                                          'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
-                                                          'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
-                                                          'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
-                                                          'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
-                                                          'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
-                                                          'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
-                                                          'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
-                                                          'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
-                                                          'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
-                                                          'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
-                                                          'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
-                                                  and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
-
-
-                              type of 'channel_disconnect_proc on_disconnect' changed:
-                                underlying type 'void (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_send_pipe_item_proc send_item' changed:
-                                underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_hold_pipe_item_proc hold_item' changed:
-                                underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_release_pipe_item_proc release_item' changed:
-                                underlying type 'void (RedChannelClient*, PipeItem*, int)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*, int)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_alloc_msg_recv_buf_proc alloc_recv_buf' changed:
-                                underlying type 'uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)*' changed:
-                                  in pointed to type 'function type uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_release_msg_recv_buf_proc release_recv_buf' changed:
-                                underlying type 'void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark' changed:
-                                underlying type 'int (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type int (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_handle_migrate_data_proc handle_migrate_data' changed:
-                                underlying type 'int (RedChannelClient*, typedef uint32_t, void*)*' changed:
-                                  in pointed to type 'function type int (RedChannelClient*, typedef uint32_t, void*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial' changed:
-                                underlying type 'typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)*' changed:
-                                  in pointed to type 'function type typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-
-                         type of 'ClientCbs RedChannel::client_cbs' changed:
-                           underlying type 'struct {channel_client_connect_proc connect; channel_client_disconnect_proc disconnect; channel_client_migrate_proc migrate;}' at red_channel.h:213:1 changed:
-                             type size hasn't changed
-                             3 data member changes:
-                              type of 'channel_client_connect_proc connect' changed:
-                                underlying type 'void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)*' changed:
-                                  in pointed to type 'function type void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)':
-                                    parameter 1 of type 'RedChannel*' has sub-type changes:
-                                      in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
-                                        underlying type 'struct RedChannel' changed; details are being reported
-                                    parameter 3 of type 'RedsStream*' has sub-type changes:
-                                      pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
-
-                              type of 'channel_client_disconnect_proc disconnect' changed:
-                                underlying type 'void (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_client_migrate_proc migrate' changed:
-                                underlying type 'void (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+              type of 'VDIPortState RedsState::agent_state' changed:
+                underlying type 'struct VDIPortState' at reds-private.h:46:1 changed:
+                  type size hasn't changed
+                  1 data member change:
+                    type of 'SpiceCharDeviceState* VDIPortState::base' changed:
+                      in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
+                        underlying type 'struct SpiceCharDeviceState' at char_device.c:47:1 changed:
+                          type size changed from 1536 to 1600 (in bits)
+                          1 data member insertion:
+                            'uint64_t SpiceCharDeviceState::cur_pool_size', at offset 384 (in bits) at char_device.c:57:1
+                          12 data member changes:
+                            'SpiceCharDeviceWriteBuffer* SpiceCharDeviceState::cur_write_buf' offset changed from 384 to 448 (in bits) (by +64 bits)
+                            'uint8_t* SpiceCharDeviceState::cur_write_buf_pos' offset changed from 448 to 512 (in bits) (by +64 bits)
+                            'SpiceTimer* SpiceCharDeviceState::write_to_dev_timer' offset changed from 512 to 576 (in bits) (by +64 bits)
+                            'uint64_t SpiceCharDeviceState::num_self_tokens' offset changed from 576 to 640 (in bits) (by +64 bits)
+                            'Ring SpiceCharDeviceState::clients' offset changed from 640 to 704 (in bits) (by +64 bits)
+                            'uint32_t SpiceCharDeviceState::num_clients' offset changed from 768 to 832 (in bits) (by +64 bits)
+                            'uint64_t SpiceCharDeviceState::client_tokens_interval' offset changed from 832 to 896 (in bits) (by +64 bits)
+                            type of 'SpiceCharDeviceInstance* SpiceCharDeviceState::sin' changed:
+                              in pointed to type 'typedef SpiceCharDeviceInstance' at spice-char.h:33:1:
+                                underlying type 'struct SpiceCharDeviceInstance' at spice.h:416:1 changed:
+                                  type size hasn't changed
+                                  1 data member change:
+                                    type of 'SpiceCharDeviceState* SpiceCharDeviceInstance::st' changed:
+                                      in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
+                                        underlying type 'struct SpiceCharDeviceState' changed; details are being reported
+
+                            and offset changed from 896 to 960 (in bits) (by +64 bits)
+                            'int SpiceCharDeviceState::during_read_from_device' offset changed from 960 to 1024 (in bits) (by +64 bits)
+                            'int SpiceCharDeviceState::during_write_to_device' offset changed from 992 to 1056 (in bits) (by +64 bits)
+                            type of 'SpiceCharDeviceCallbacks SpiceCharDeviceState::cbs' changed:
+                              underlying type 'struct SpiceCharDeviceCallbacks' at char_device.h:81:1 changed:
+                                type size hasn't changed
+                                1 data member change:
+                                  type of 'SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)* SpiceCharDeviceCallbacks::read_one_msg_from_device' changed:
+                                    in pointed to type 'function type SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)':
+                                      parameter 1 of type 'SpiceCharDeviceInstance*' has sub-type changes:
+                                        pointed to type 'typedef SpiceCharDeviceInstance' changed at spice.h:399:1, as reported earlier
+
+                            and offset changed from 1024 to 1088 (in bits) (by +64 bits)
+                            'void* SpiceCharDeviceState::opaque' offset changed from 1472 to 1536 (in bits) (by +64 bits)
+
+                  no data member changes (3 filtered);
+
+              type of 'MainChannel* RedsState::main_channel' changed:
+                in pointed to type 'typedef MainChannel' at main_channel.h:48:1:
+                  underlying type 'struct MainChannel' at main_channel.h:36:1 changed:
+                    type size hasn't changed
+                    1 data member change:
+                      type of 'RedChannel MainChannel::base' changed:
+                        underlying type 'struct RedChannel' at red_channel.h:303:1 changed:
+                          type size hasn't changed
+                          2 data member changes (1 filtered):
+                            type of 'ChannelCbs RedChannel::channel_cbs' changed:
+                              underlying type 'struct {channel_configure_socket_proc config_socket; channel_disconnect_proc on_disconnect; channel_send_pipe_item_proc send_item; channel_hold_pipe_item_proc hold_item; channel_release_pipe_item_proc release_item; channel_alloc_msg_recv_buf_proc alloc_recv_buf; channel_release_msg_recv_buf_proc release_recv_buf; channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark; channel_handle_migrate_data_proc handle_migrate_data; channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial;}' at red_channel.h:195:1 changed:
+                                type size hasn't changed
+                                10 data member changes:
+                                  type of 'channel_configure_socket_proc config_socket' changed:
+                                    underlying type 'int (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type int (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          in pointed to type 'typedef RedChannelClient' at red_channel.h:131:1:
+                                            underlying type 'struct RedChannelClient' at red_channel.h:247:1 changed:
+                                              type size hasn't changed
+                                              2 data member changes (2 filtered):
+                                                type of 'RedChannel* RedChannelClient::channel' changed:
+                                                  in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
+                                                    underlying type 'struct RedChannel' changed; details are being reported
+
+                                                type of 'RedsStream* RedChannelClient::stream' changed:
+                                                  in pointed to type 'typedef RedsStream' at reds_stream.h:31:1:
+                                                    underlying type 'struct RedsStream' at reds.h:68:1 changed:
+                                                      type size changed from 1280 to 256 (in bits)
+                                                      5 data member deletions:
+                                                        'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
+                                                        'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
+                                                        'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
+                                                        'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
+                                                        'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
+                                                      1 data member change:
+                                                        type of 'SSL* RedsStream::ssl' changed:
+                                                          in pointed to type 'typedef SSL' at reds_stream.h:32:1:
+                                                            typedef name changed from SSL to RedsStreamPrivate at reds_stream.h:32:1
+                                                            underlying type 'struct ssl_st' at ssl.h:1065:1 changed:
+                                                              type name changed from 'ssl_st' to 'RedsStreamPrivate'
+                                                              type size changed from 5504 to 0 (in bits)
+                                                              94 data member deletions:
+                                                                'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
+                                                                'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
+                                                                'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
+                                                                'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
+                                                                'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
+                                                                'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
+                                                                'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
+                                                                'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
+                                                                'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
+                                                                'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
+                                                                'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
+                                                                'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
+                                                                'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
+                                                                'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
+                                                                'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
+                                                                'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
+                                                                'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
+                                                                'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
+                                                                'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
+                                                                'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
+                                                                'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
+                                                                'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
+                                                                'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
+                                                                'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
+                                                                'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
+                                                                'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
+                                                                'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
+                                                                'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
+                                                                'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
+                                                                'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
+                                                                'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
+                                                                'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
+                                                                'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
+                                                                'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
+                                                                'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
+                                                                'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
+                                                                'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
+                                                                'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
+                                                                'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
+                                                                'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
+                                                                'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
+                                                                'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
+                                                                'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
+                                                                'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
+                                                                'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
+                                                                'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
+                                                                'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
+                                                                'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
+                                                                'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
+                                                                'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
+                                                                'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
+                                                                'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
+                                                                'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
+                                                                'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
+                                                                'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
+                                                                'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
+                                                                'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
+                                                                'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
+                                                                'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
+                                                                'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
+                                                                'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
+                                                                'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
+                                                                'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
+                                                                'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
+                                                                'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
+                                                                'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
+                                                                'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
+                                                                'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
+                                                                'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
+                                                                'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
+                                                                'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
+                                                                'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
+                                                                'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
+                                                                'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
+                                                                'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
+                                                                'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
+                                                                'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
+                                                                'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
+                                                                'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
+                                                                'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
+                                                                'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
+                                                                'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
+                                                                'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
+                                                                'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
+                                                                'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
+                                                                'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
+                                                                'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
+                                                                'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
+                                                                'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
+                                                                'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
+                                                                'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
+                                                                'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
+                                                                'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
+                                                                'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
+                                                        and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
+
+
+                                  type of 'channel_disconnect_proc on_disconnect' changed:
+                                    underlying type 'void (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_send_pipe_item_proc send_item' changed:
+                                    underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_hold_pipe_item_proc hold_item' changed:
+                                    underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_release_pipe_item_proc release_item' changed:
+                                    underlying type 'void (RedChannelClient*, PipeItem*, int)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*, PipeItem*, int)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_alloc_msg_recv_buf_proc alloc_recv_buf' changed:
+                                    underlying type 'uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)*' changed:
+                                      in pointed to type 'function type uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_release_msg_recv_buf_proc release_recv_buf' changed:
+                                    underlying type 'void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark' changed:
+                                    underlying type 'int (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type int (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_handle_migrate_data_proc handle_migrate_data' changed:
+                                    underlying type 'int (RedChannelClient*, typedef uint32_t, void*)*' changed:
+                                      in pointed to type 'function type int (RedChannelClient*, typedef uint32_t, void*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial' changed:
+                                    underlying type 'typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)*' changed:
+                                      in pointed to type 'function type typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+
+                            type of 'ClientCbs RedChannel::client_cbs' changed:
+                              underlying type 'struct {channel_client_connect_proc connect; channel_client_disconnect_proc disconnect; channel_client_migrate_proc migrate;}' at red_channel.h:213:1 changed:
+                                type size hasn't changed
+                                3 data member changes:
+                                  type of 'channel_client_connect_proc connect' changed:
+                                    underlying type 'void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)*' changed:
+                                      in pointed to type 'function type void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)':
+                                        parameter 1 of type 'RedChannel*' has sub-type changes:
+                                          in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
+                                            underlying type 'struct RedChannel' changed; details are being reported
+                                        parameter 3 of type 'RedsStream*' has sub-type changes:
+                                          pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
+
+                                  type of 'channel_client_disconnect_proc disconnect' changed:
+                                    underlying type 'void (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_client_migrate_proc migrate' changed:
+                                    underlying type 'void (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
 
 
 
@@ -531,65 +531,65 @@
           underlying type 'struct SpicePlaybackInstance' at spice.h:350:1 changed:
             type size hasn't changed
             1 data member change:
-             type of 'SpicePlaybackState* SpicePlaybackInstance::st' changed:
-               in pointed to type 'typedef SpicePlaybackState' at spice-audio.h:34:1:
-                 underlying type 'struct SpicePlaybackState' at snd_worker.c:165:1 changed:
-                   type size changed from 512 to 576 (in bits)
-                   1 data member insertion:
-                     'uint32_t SpicePlaybackState::frequency', at offset 512 (in bits) at snd_worker.c:159:1
-                   2 data member changes:
-                    type of 'SndWorker SpicePlaybackState::worker' changed:
-                      type size hasn't changed
-                      3 data member changes:
-                       type of 'RedChannel* SndWorker::base_channel' changed:
-                         pointed to type 'typedef RedChannel' changed at red_channel.h:135:1, as reported earlier
-
-                       type of 'SndChannel* SndWorker::connection' changed:
-                         in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
-                           underlying type 'struct SndChannel' at snd_worker.c:89:1 changed:
-                             type size hasn't changed
-                             6 data member changes:
-                              type of 'RedsStream* SndChannel::stream' changed:
-                                pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
-
-                              type of 'SndWorker* SndChannel::worker' changed:
-                                in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
-                                  underlying type 'struct SndWorker' changed; details are being reported
-
-                              type of 'RedChannelClient* SndChannel::channel_client' changed:
-                                pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'snd_channel_handle_message_proc SndChannel::handle_message' changed:
-                                underlying type 'int (SndChannel*, typedef size_t, typedef uint32_t, void*)*' changed:
-                                  in pointed to type 'function type int (SndChannel*, typedef size_t, typedef uint32_t, void*)':
-                                    parameter 1 of type 'SndChannel*' has sub-type changes:
-                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
-                                        underlying type 'struct SndChannel' changed; details are being reported
-
-                              type of 'snd_channel_on_message_done_proc SndChannel::on_message_done' changed:
-                                underlying type 'void (SndChannel*)*' changed:
-                                  in pointed to type 'function type void (SndChannel*)':
-                                    parameter 1 of type 'SndChannel*' has sub-type changes:
-                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
-                                        underlying type 'struct SndChannel' changed; details are being reported
-
-                              type of 'snd_channel_cleanup_channel_proc SndChannel::cleanup' changed:
-                                underlying type 'void (SndChannel*)*' changed:
-                                  in pointed to type 'function type void (SndChannel*)':
-                                    parameter 1 of type 'SndChannel*' has sub-type changes:
-                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
-                                        underlying type 'struct SndChannel' changed; details are being reported
-
-                             no data member change (1 filtered);
-
-                       type of 'SndWorker* SndWorker::next' changed:
-                         in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
-                           underlying type 'struct SndWorker' changed; details are being reported
-
-
-                    type of 'SpicePlaybackInstance* SpicePlaybackState::sin' changed:
-                      in pointed to type 'typedef SpicePlaybackInstance' at spice-audio.h:33:1:
-                        underlying type 'struct SpicePlaybackInstance' changed; details are being reported
+              type of 'SpicePlaybackState* SpicePlaybackInstance::st' changed:
+                in pointed to type 'typedef SpicePlaybackState' at spice-audio.h:34:1:
+                  underlying type 'struct SpicePlaybackState' at snd_worker.c:165:1 changed:
+                    type size changed from 512 to 576 (in bits)
+                    1 data member insertion:
+                      'uint32_t SpicePlaybackState::frequency', at offset 512 (in bits) at snd_worker.c:159:1
+                    2 data member changes:
+                      type of 'SndWorker SpicePlaybackState::worker' changed:
+                        type size hasn't changed
+                        3 data member changes:
+                          type of 'RedChannel* SndWorker::base_channel' changed:
+                            pointed to type 'typedef RedChannel' changed at red_channel.h:135:1, as reported earlier
+
+                          type of 'SndChannel* SndWorker::connection' changed:
+                            in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                              underlying type 'struct SndChannel' at snd_worker.c:89:1 changed:
+                                type size hasn't changed
+                                6 data member changes:
+                                  type of 'RedsStream* SndChannel::stream' changed:
+                                    pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
+
+                                  type of 'SndWorker* SndChannel::worker' changed:
+                                    in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
+                                      underlying type 'struct SndWorker' changed; details are being reported
+
+                                  type of 'RedChannelClient* SndChannel::channel_client' changed:
+                                    pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'snd_channel_handle_message_proc SndChannel::handle_message' changed:
+                                    underlying type 'int (SndChannel*, typedef size_t, typedef uint32_t, void*)*' changed:
+                                      in pointed to type 'function type int (SndChannel*, typedef size_t, typedef uint32_t, void*)':
+                                        parameter 1 of type 'SndChannel*' has sub-type changes:
+                                          in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                                            underlying type 'struct SndChannel' changed; details are being reported
+
+                                  type of 'snd_channel_on_message_done_proc SndChannel::on_message_done' changed:
+                                    underlying type 'void (SndChannel*)*' changed:
+                                      in pointed to type 'function type void (SndChannel*)':
+                                        parameter 1 of type 'SndChannel*' has sub-type changes:
+                                          in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                                            underlying type 'struct SndChannel' changed; details are being reported
+
+                                  type of 'snd_channel_cleanup_channel_proc SndChannel::cleanup' changed:
+                                    underlying type 'void (SndChannel*)*' changed:
+                                      in pointed to type 'function type void (SndChannel*)':
+                                        parameter 1 of type 'SndChannel*' has sub-type changes:
+                                          in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                                            underlying type 'struct SndChannel' changed; details are being reported
+
+                                no data member change (1 filtered);
+
+                          type of 'SndWorker* SndWorker::next' changed:
+                            in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
+                              underlying type 'struct SndWorker' changed; details are being reported
+
+
+                      type of 'SpicePlaybackInstance* SpicePlaybackState::sin' changed:
+                        in pointed to type 'typedef SpicePlaybackInstance' at spice-audio.h:33:1:
+                          underlying type 'struct SpicePlaybackInstance' changed; details are being reported
 
 
 
@@ -623,19 +623,19 @@
           underlying type 'struct SpiceRecordInstance' at spice.h:380:1 changed:
             type size hasn't changed
             1 data member change:
-             type of 'SpiceRecordState* SpiceRecordInstance::st' changed:
-               in pointed to type 'typedef SpiceRecordState' at spice-audio.h:68:1:
-                 underlying type 'struct SpiceRecordState' at snd_worker.c:171:1 changed:
-                   type size changed from 512 to 576 (in bits)
-                   1 data member insertion:
-                     'uint32_t SpiceRecordState::frequency', at offset 512 (in bits) at snd_worker.c:166:1
-                   2 data member changes:
-                    type of 'SndWorker SpiceRecordState::worker' changed:
-                      details were reported earlier
-
-                    type of 'SpiceRecordInstance* SpiceRecordState::sin' changed:
-                      in pointed to type 'typedef SpiceRecordInstance' at spice-audio.h:67:1:
-                        underlying type 'struct SpiceRecordInstance' changed; details are being reported
+              type of 'SpiceRecordState* SpiceRecordInstance::st' changed:
+                in pointed to type 'typedef SpiceRecordState' at spice-audio.h:68:1:
+                  underlying type 'struct SpiceRecordState' at snd_worker.c:171:1 changed:
+                    type size changed from 512 to 576 (in bits)
+                    1 data member insertion:
+                      'uint32_t SpiceRecordState::frequency', at offset 512 (in bits) at snd_worker.c:166:1
+                    2 data member changes:
+                      type of 'SndWorker SpiceRecordState::worker' changed:
+                        details were reported earlier
+
+                      type of 'SpiceRecordInstance* SpiceRecordState::sin' changed:
+                        in pointed to type 'typedef SpiceRecordInstance' at spice-audio.h:67:1:
+                          underlying type 'struct SpiceRecordInstance' changed; details are being reported
 
 
 
diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
index d0381ce5..e192f2b2 100644
--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
@@ -33,25 +33,25 @@
             underlying type 'class tbb::internal::concurrent_queue_base_v3' at _concurrent_queue_impl.h:816: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) (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 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:
-                         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
+                          'tbb::spin_mutex tbb::internal::concurrent_monitor::mutex_ec' offset changed from 0 to 8 (in bits) (by +8 bits)
 
-                      type size hasn't changed
+                      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
 
 
 
@@ -78,124 +78,124 @@
           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):
-           type of 'char tbb::task_group_context::_leading_padding[80]' changed:
-             type name changed from 'char[80]' to 'char[72]'
-             array type size changed from 640 to 576
-             array type subrange 1 changed length from 80 to 72
-
-           type of 'tbb::internal::generic_scheduler* tbb::task_group_context::my_owner' changed:
-             in pointed to type 'class tbb::internal::generic_scheduler' at scheduler.h:110:1:
-               type size changed from 3136 to 3072 (in bits)
-               1 base class change:
-                 'struct tbb::internal::scheduler_state' at scheduler.h:73:1 changed:
-                   type size changed from 576 to 704 (in bits)
-                   2 data member insertions:
-                     'volatile intptr_t* tbb::internal::scheduler_state::my_ref_top_priority', at offset 576 (in bits) at scheduler.h:96:1
-                     'volatile uintptr_t* tbb::internal::scheduler_state::my_ref_reload_epoch', at offset 640 (in bits) at scheduler.h:99:1
-                   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 of 'char tbb::task_group_context::_leading_padding[80]' changed:
+              type name changed from 'char[80]' to 'char[72]'
+              array type size changed from 640 to 576
+              array type subrange 1 changed length from 80 to 72
+
+            type of 'tbb::internal::generic_scheduler* tbb::task_group_context::my_owner' changed:
+              in pointed to type 'class tbb::internal::generic_scheduler' at scheduler.h:110:1:
+                type size changed from 3136 to 3072 (in bits)
+                1 base class change:
+                  'struct tbb::internal::scheduler_state' at scheduler.h:73:1 changed:
+                    type size changed from 576 to 704 (in bits)
+                    2 data member insertions:
+                      'volatile intptr_t* tbb::internal::scheduler_state::my_ref_top_priority', at offset 576 (in bits) at scheduler.h:96:1
+                      'volatile uintptr_t* tbb::internal::scheduler_state::my_ref_reload_epoch', at offset 640 (in bits) at scheduler.h:99:1
+                    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:
+                            struct tbb::internal::padded<tbb::internal::arena_base, 128ul> at tbb_stddef.h:251:1
+                          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 base class deletion:
-                          struct tbb::internal::padded<tbb::internal::arena_base> at tbb_stddef.h:261:1
-                        1 base class insertion:
-                          struct tbb::internal::padded<tbb::internal::arena_base, 128ul> at tbb_stddef.h:251:1
                         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:
-                             struct tbb::internal::padded<tbb::internal::unpadded_mail_outbox, 128ul> at tbb_stddef.h:251:1
-                           1 data member deletion:
-                             'char tbb::internal::mail_outbox::pad[104]', at offset 136 (in bits) at mailbox.h:114:1
-
-
-
-               1 member function deletion:
-                 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
-
-               1 member function insertion:
-                 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&)' at scheduler.h:362:1, virtual at voffset 7/7
-
-               3 data member deletions:
-                 'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
-                 'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
-                 '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) (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 (in bits)
-                    1 data member insertion:
-                      'bool tbb::internal::market::join_workers', at offset 384 (in bits) at market.h:88:1
-                    7 data member changes:
-                     type of 'tbb::internal::market::arenas_list_mutex_type tbb::internal::market::my_arenas_list_mutex' changed:
-                       underlying type 'typedef tbb::internal::scheduler_mutex_type' at scheduler_common.h:123:1 changed:
-                         typedef name changed from tbb::internal::scheduler_mutex_type to tbb::spin_rw_mutex at spin_rw_mutex.h:38:1
-                         underlying type 'class tbb::spin_mutex' at spin_mutex.h:47:1 changed:
-                           type name changed from 'tbb::spin_mutex' to 'tbb::spin_rw_mutex_v3'
-                           type size changed from 8 to 64 (in bits)
-                           1 base class insertion:
-                             class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
-                           1 data member change:
-                            type of '__TBB_atomic_flag tbb::spin_mutex::flag' changed:
-                              typedef name changed from __TBB_atomic_flag to tbb::spin_rw_mutex_v3::state_t at spin_rw_mutex.h:214:1
-                              underlying type 'typedef __TBB_Flag' at tbb_machine.h:875:1 changed:
-                                typedef name changed from __TBB_Flag to intptr_t at stdint.h:119:1
-                                underlying type 'unsigned char' changed:
-                                  type name changed from 'unsigned char' to 'long int'
-                                  type size changed from 8 to 64 (in bits)
-                            and name of 'tbb::spin_mutex::flag' changed to 'tbb::spin_rw_mutex_v3::state' at spin_rw_mutex.h:224:1
-
-                     '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*'
+                          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:
+                                struct tbb::internal::padded<tbb::internal::unpadded_mail_outbox, 128ul> at tbb_stddef.h:251:1
+                              1 data member deletion:
+                                'char tbb::internal::mail_outbox::pad[104]', at offset 136 (in bits) at mailbox.h:114:1
+
+
+
+                1 member function deletion:
+                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
+
+                1 member function insertion:
+                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&)' at scheduler.h:362:1, virtual at voffset 7/7
+
+                3 data member deletions:
+                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
+                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
+                  '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) (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 (in bits)
+                      1 data member insertion:
+                        'bool tbb::internal::market::join_workers', at offset 384 (in bits) at market.h:88:1
+                      7 data member changes:
+                        type of 'tbb::internal::market::arenas_list_mutex_type tbb::internal::market::my_arenas_list_mutex' changed:
+                          underlying type 'typedef tbb::internal::scheduler_mutex_type' at scheduler_common.h:123:1 changed:
+                            typedef name changed from tbb::internal::scheduler_mutex_type to tbb::spin_rw_mutex at spin_rw_mutex.h:38:1
+                            underlying type 'class tbb::spin_mutex' at spin_mutex.h:47:1 changed:
+                              type name changed from 'tbb::spin_mutex' to 'tbb::spin_rw_mutex_v3'
+                              type size changed from 8 to 64 (in bits)
+                              1 base class insertion:
+                                class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
+                              1 data member change:
+                                type of '__TBB_atomic_flag tbb::spin_mutex::flag' changed:
+                                  typedef name changed from __TBB_atomic_flag to tbb::spin_rw_mutex_v3::state_t at spin_rw_mutex.h:214:1
+                                  underlying type 'typedef __TBB_Flag' at tbb_machine.h:875:1 changed:
+                                    typedef name changed from __TBB_Flag to intptr_t at stdint.h:119:1
+                                    underlying type 'unsigned char' changed:
+                                      type name changed from 'unsigned char' to 'long int'
+                                      type size changed from 8 to 64 (in bits)
+                                and name of 'tbb::spin_mutex::flag' changed to 'tbb::spin_rw_mutex_v3::state' at spin_rw_mutex.h:224:1
+
+                        '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
-
-                       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)
+                            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*'
+                                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:
diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
index 89c8efa3..203b8473 100644
--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
@@ -49,10 +49,10 @@
           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 (2 filtered):
-           type of 'char tbb::task_group_context::_leading_padding[80]' changed:
-             type name changed from 'char[80]' to 'char[72]'
-             array type size changed from 640 to 576
-             array type subrange 1 changed length from 80 to 72
+            type of 'char tbb::task_group_context::_leading_padding[80]' changed:
+              type name changed from 'char[80]' to 'char[72]'
+              array type size changed from 640 to 576
+              array type subrange 1 changed length from 80 to 72
 
 
     [C] 'method void tbb::queuing_mutex::scoped_lock::acquire(tbb::queuing_mutex&)' at queuing_mutex.h:84:1 has some indirect sub-type changes:
diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
index 11a383c7..3af4788a 100644
--- a/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char MyType::Private::m1', at offset 32 (in bits)
+          type of 'MyType::Private* MyType::priv' changed:
+            in pointed to type 'struct MyType::Private':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char MyType::Private::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
index 11a383c7..3af4788a 100644
--- a/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char MyType::Private::m1', at offset 32 (in bits)
+          type of 'MyType::Private* MyType::priv' changed:
+            in pointed to type 'struct MyType::Private':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char MyType::Private::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
index 11a383c7..3af4788a 100644
--- a/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char MyType::Private::m1', at offset 32 (in bits)
+          type of 'MyType::Private* MyType::priv' changed:
+            in pointed to type 'struct MyType::Private':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char MyType::Private::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
index 11a383c7..3af4788a 100644
--- a/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char MyType::Private::m1', at offset 32 (in bits)
+          type of 'MyType::Private* MyType::priv' changed:
+            in pointed to type 'struct MyType::Private':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char MyType::Private::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt b/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
index d3ac0320..8b33db84 100644
--- a/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char b_type::m_char', at offset 0 (in bits)
         1 data member change:
-         'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function void foo(a_type*)' has some indirect sub-type changes:
     parameter 1 of type 'a_type*' has sub-type changes:
@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 data member insertion:
             'char a_type::m_char', at offset 0 (in bits)
           1 data member change:
-           'int a_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int a_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt b/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
index e9a14b00..251f4356 100644
--- a/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char b_type::m_char', at offset 0 (in bits)
         1 data member change:
-         'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt b/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt
index fa1d882f..71f601f9 100644
--- a/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt
+++ b/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt
@@ -9,9 +9,9 @@ Variables changes summary: 0 Removed, 1 Changed, 1 Added variables
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt b/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt
index 2cb7afd9..ab0c65c0 100644
--- a/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt
+++ b/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added (1 filtered out) variab
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt b/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt
index fa1d882f..71f601f9 100644
--- a/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt
+++ b/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt
@@ -9,9 +9,9 @@ Variables changes summary: 0 Removed, 1 Changed, 1 Added variables
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt
index 47fe3d83..a8dc9848 100644
--- a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt
+++ b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt
@@ -9,9 +9,9 @@ Variables changes summary: 1 Removed, 1 Changed, 0 Added variables
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt
index f235ac30..6f9467c7 100644
--- a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt
+++ b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed (1 filtered out), 1 Changed, 0 Added variab
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt
index 47fe3d83..a8dc9848 100644
--- a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt
+++ b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt
@@ -9,9 +9,9 @@ Variables changes summary: 1 Removed, 1 Changed, 0 Added variables
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt b/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
index 0de2e7cf..b380313d 100644
--- a/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char C::inserted_char_member', at offset 0 (in bits)
         1 data member change:
-         'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt b/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
index 75274e00..125cd90c 100644
--- a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
+++ b/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
@@ -13,6 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 data member insertion:
             'char S::inserted_member', at offset 0 (in bits)
           1 data member change:
-           'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt b/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
index 75274e00..125cd90c 100644
--- a/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
+++ b/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
@@ -13,6 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 data member insertion:
             'char S::inserted_member', at offset 0 (in bits)
           1 data member change:
-           'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test29-soname-report-3.txt b/tests/data/test-diff-suppr/test29-soname-report-3.txt
index 609643aa..c17c6a39 100644
--- a/tests/data/test-diff-suppr/test29-soname-report-3.txt
+++ b/tests/data/test-diff-suppr/test29-soname-report-3.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'static S* S::sm0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test29-soname-report-6.txt b/tests/data/test-diff-suppr/test29-soname-report-6.txt
index 609643aa..c17c6a39 100644
--- a/tests/data/test-diff-suppr/test29-soname-report-6.txt
+++ b/tests/data/test-diff-suppr/test29-soname-report-6.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'static S* S::sm0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test29-soname-report-8.txt b/tests/data/test-diff-suppr/test29-soname-report-8.txt
index 609643aa..c17c6a39 100644
--- a/tests/data/test-diff-suppr/test29-soname-report-8.txt
+++ b/tests/data/test-diff-suppr/test29-soname-report-8.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'static S* S::sm0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
index ebd3b6ea..b36cce6e 100644
--- a/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
@@ -10,13 +10,13 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::inserted_char_member', at offset 0 (in bits)
         1 data member change:
-         'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 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 (in 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) (by +32 bits)
+          'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
index 93fa56e1..a2fe75aa 100644
--- a/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char C::inserted_char_member', at offset 0 (in bits)
         1 data member change:
-         'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
index 3cf04629..0e09e1ec 100644
--- a/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::inserted_char_member', at offset 0 (in bits)
         1 data member change:
-         'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test30-report-0.txt b/tests/data/test-diff-suppr/test30-report-0.txt
index 9ac85d53..15790f64 100644
--- a/tests/data/test-diff-suppr/test30-report-0.txt
+++ b/tests/data/test-diff-suppr/test30-report-0.txt
@@ -22,11 +22,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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 64 to 128 (in bits)
-             1 data member insertion:
-               'int S::priv_type::member1', at offset 64 (in bits) at test30-pub-lib-v1.cc:18:1
+          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 64 to 128 (in bits)
+              1 data member insertion:
+                'int S::priv_type::member1', at offset 64 (in bits) at test30-pub-lib-v1.cc:18:1
 
 
 
diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
index f286cc7b..92de4df4 100644
--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
@@ -16,9 +16,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct leaf2 at test36-leaf-v0.cc:9:1' changed:
   type size changed from 64 to 96 (in bits)
   there are data member changes:
-   type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
-   and size changed from 32 to 64 (in bits) (by +32 bits)
-   'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
+    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
+    and size changed from 32 to 64 (in bits) (by +32 bits)
+    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
   3 impacted interfaces:
     function void interface1(struct_type*)
     function void interface2(struct_type&)
diff --git a/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt b/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
index 3484c052..4129ccae 100644
--- a/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
@@ -10,12 +10,12 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'unsigned int public_type::oops', at offset 0 (in bits)
         1 data member change:
-         type of 'private_data* public_type::priv_' changed:
-           in pointed to type 'struct private_data':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char private_data::private_data1', at offset 32 (in bits)
-         and offset changed from 0 to 64 (in bits) (by +64 bits)
+          type of 'private_data* public_type::priv_' changed:
+            in pointed to type 'struct private_data':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char private_data::private_data1', at offset 32 (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 (in bits)
diff --git a/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt b/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
index e051f750..b76e25b0 100644
--- a/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'unsigned int public_type::oops', at offset 0 (in bits)
         1 data member change:
-         'private_data* public_type::priv_' offset changed from 0 to 64 (in bits) (by +64 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 (in bits)
diff --git a/tests/data/test-diff-suppr/test46-PR25128-report-1.txt b/tests/data/test-diff-suppr/test46-PR25128-report-1.txt
index 9a974032..f16989e4 100644
--- a/tests/data/test-diff-suppr/test46-PR25128-report-1.txt
+++ b/tests/data/test-diff-suppr/test46-PR25128-report-1.txt
@@ -10,9 +10,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct root_domain at sched.h:732:1' changed:
   type size changed from 14592 to 14720 (in bits)
   there are data member changes:
-   type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
-     entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
-     type size changed from 64 to 192 (in bits)
-   and size changed from 64 to 192 (in bits) (by +128 bits)
-   'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
+    type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
+      entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
+      type size changed from 64 to 192 (in bits)
+    and size changed from 64 to 192 (in bits) (by +128 bits)
+    'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
 
diff --git a/tests/data/test-diff-suppr/test46-PR25128-report-2.txt b/tests/data/test-diff-suppr/test46-PR25128-report-2.txt
index d6873cb0..f8654213 100644
--- a/tests/data/test-diff-suppr/test46-PR25128-report-2.txt
+++ b/tests/data/test-diff-suppr/test46-PR25128-report-2.txt
@@ -6,9 +6,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct root_domain at sched.h:732:1' changed:
   type size changed from 14592 to 14720 (in bits)
   there are data member changes:
-   type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
-     entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
-     type size changed from 64 to 192 (in bits)
-   and size changed from 64 to 192 (in bits) (by +128 bits)
-   'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
+    type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
+      entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
+      type size changed from 64 to 192 (in bits)
+    and size changed from 64 to 192 (in bits) (by +128 bits)
+    'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
index 30b79879..505ba42c 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::m0', at offset 0 (in bits)
         1 data member change:
-         'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function void bar(int, S)' has some indirect sub-type changes:
     parameter 2 of type 'struct S' has sub-type changes:
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
index 072702c9..45ead077 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'char S::m0', at offset 0 (in bits)
       1 data member change:
-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
index 072702c9..45ead077 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'char S::m0', at offset 0 (in bits)
       1 data member change:
-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
index 072702c9..45ead077 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'char S::m0', at offset 0 (in bits)
       1 data member change:
-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
index ca57bbbb..1d631754 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::m0', at offset 0 (in bits)
         1 data member change:
-         'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
index 072702c9..45ead077 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'char S::m0', at offset 0 (in bits)
       1 data member change:
-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
index 2c08c142..559182db 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base at test6-fn-suppr-v1.cc:4:1
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function int bar(S&)' at test6-fn-suppr-v1.cc:42:1 has some indirect sub-type changes:
     parameter 1 of type 'S&' has sub-type changes:
@@ -19,7 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base at test6-fn-suppr-v1.cc:4:1
         1 data member change:
-         'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' at test6-fn-suppr-v1.cc:52:1 has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -29,6 +29,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base at test6-fn-suppr-v1.cc:4:1
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
index 32e1d239..a679f47a 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function int bar(S&)' has some indirect sub-type changes:
     parameter 1 of type 'S&' has sub-type changes:
@@ -19,7 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -29,6 +29,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
index 0a3c7b4d..20fcb19b 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
index 0a3c7b4d..20fcb19b 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
index 0a3c7b4d..20fcb19b 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
index 7fd8502c..10153c12 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
@@ -5,20 +5,20 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
   [C] 'S1* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S1':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S1':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
index d4d86310..6a924a85 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S1* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S1':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S1':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
index af81d0a8..15e0668f 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
index d4d86310..6a924a85 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S1* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S1':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S1':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
index af81d0a8..15e0668f 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
index af81d0a8..15e0668f 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
index 7fd8502c..10153c12 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
@@ -5,20 +5,20 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
   [C] 'S1* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S1':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S1':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
-- 
2.25.1.481.gfbce0eb801-goog


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 5/5] [abidiff] Treat function type changes as local.
  2020-03-12  6:30 [PATCH 0/5] More whitespace and leaf-changes-only fixes Giuliano Procida
                   ` (3 preceding siblings ...)
  2020-03-12  6:30 ` [PATCH 4/5] [abidiff] Output 2-space indentation consistently Giuliano Procida
@ 2020-03-12  6:30 ` Giuliano Procida
  2020-03-14 20:45   ` Matthias Maennich
  2020-03-17 16:15   ` Dodji Seketeli
  4 siblings, 2 replies; 21+ messages in thread
From: Giuliano Procida @ 2020-03-12  6:30 UTC (permalink / raw)
  To: libabigail; +Cc: dodji, kernel-team, gprocida

In leaf-changes-only mode, if the type of a struct's function pointer
member changes it currently gets categorised as a non-local change and
so is not reported. The change to any function passing such a struct
is considered non-local and also not reported.

This patch broadens the definition of local changes to include these
cases and so have them be reported in leaf-changes-only mode. It may
be the first of a sequence of such patches,

	* src/abg-ir.cc (types_have_similar_structure): Always compare
	function types (instead of just returning true) regardless of
        whether they are components of pointer-to-function or
        reference-to-function types.
	* tests/data/Makefile.am: Add new test case files.
	* tests/data/test-abidiff-exit/test-leaf2-report.txt: New test
	case.
	* tests/data/test-abidiff-exit/test-leaf2-v0.cc: Ditto.
	* tests/data/test-abidiff-exit/test-leaf2-v0.o: Ditto.
	* tests/data/test-abidiff-exit/test-leaf2-v1.cc: Ditto.
	* tests/data/test-abidiff-exit/test-leaf2-v1.o: Ditto.
	* tests/test-abidiff-exit.cc: Run new test case.

Signed-off-by: Giuliano Procida <gprocida@google.com>
---
 src/abg-ir.cc                                 |  34 +++++++++---------
 tests/data/Makefile.am                        |   5 +++
 .../test-abidiff-exit/test-leaf2-report.txt   |  12 +++++++
 tests/data/test-abidiff-exit/test-leaf2-v0.cc |   6 ++++
 tests/data/test-abidiff-exit/test-leaf2-v0.o  | Bin 0 -> 2840 bytes
 tests/data/test-abidiff-exit/test-leaf2-v1.cc |   6 ++++
 tests/data/test-abidiff-exit/test-leaf2-v1.o  | Bin 0 -> 2952 bytes
 tests/test-abidiff-exit.cc                    |   9 +++++
 8 files changed, 55 insertions(+), 17 deletions(-)
 create mode 100644 tests/data/test-abidiff-exit/test-leaf2-report.txt
 create mode 100644 tests/data/test-abidiff-exit/test-leaf2-v0.cc
 create mode 100644 tests/data/test-abidiff-exit/test-leaf2-v0.o
 create mode 100644 tests/data/test-abidiff-exit/test-leaf2-v1.cc
 create mode 100644 tests/data/test-abidiff-exit/test-leaf2-v1.o

diff --git a/src/abg-ir.cc b/src/abg-ir.cc
index 3b1577a8..2cb76ffc 100644
--- a/src/abg-ir.cc
+++ b/src/abg-ir.cc
@@ -22745,25 +22745,25 @@ types_have_similar_structure(const type_base* first, const type_base* second)
   if (const function_type* ty1 = is_function_type(first))
     {
       const function_type* ty2 = is_function_type(second);
-      if (!was_indirect_type)
-	{
-	  if (!types_have_similar_structure(ty1->get_return_type(),
-					    ty2->get_return_type()))
-	    return false;
+      if (!ty2)
+	return false;
 
-	  if (ty1->get_parameters().size() != ty2->get_parameters().size())
-	    return false;
+      if (!types_have_similar_structure(ty1->get_return_type(),
+					ty2->get_return_type()))
+	return false;
 
-	  for (function_type::parameters::const_iterator
-		 i = ty1->get_parameters().begin(),
-		 j = ty2->get_parameters().begin();
-	       (i != ty1->get_parameters().end()
-		&& j != ty2->get_parameters().end());
-	       ++i, ++j)
-	    if (!types_have_similar_structure((*i)->get_type(),
-					      (*j)->get_type()))
-	      return false;
-	}
+      if (ty1->get_parameters().size() != ty2->get_parameters().size())
+	return false;
+
+      for (function_type::parameters::const_iterator
+	     i = ty1->get_parameters().begin(),
+	     j = ty2->get_parameters().begin();
+	   (i != ty1->get_parameters().end()
+	    && j != ty2->get_parameters().end());
+	   ++i, ++j)
+	if (!types_have_similar_structure((*i)->get_type(),
+					  (*j)->get_type()))
+	  return false;
 
       return true;
     }
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index bf76ca2e..3b4b614b 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -120,6 +120,11 @@ test-abidiff-exit/test-leaf1-v0.o \
 test-abidiff-exit/test-leaf1-v1.cc \
 test-abidiff-exit/test-leaf1-v1.o \
 test-abidiff-exit/test-leaf1-report.txt \
+test-abidiff-exit/test-leaf2-v0.cc \
+test-abidiff-exit/test-leaf2-v0.o \
+test-abidiff-exit/test-leaf2-v1.cc \
+test-abidiff-exit/test-leaf2-v1.o \
+test-abidiff-exit/test-leaf2-report.txt \
 test-abidiff-exit/test-leaf3-v0.c \
 test-abidiff-exit/test-leaf3-v0.o \
 test-abidiff-exit/test-leaf3-v1.c \
diff --git a/tests/data/test-abidiff-exit/test-leaf2-report.txt b/tests/data/test-abidiff-exit/test-leaf2-report.txt
new file mode 100644
index 00000000..2765b469
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-leaf2-report.txt
@@ -0,0 +1,12 @@
+Leaf changes summary: 1 artifact changed
+Changed leaf types summary: 1 leaf type changed
+Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
+Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
+
+'struct ops' changed:
+  type size hasn't changed
+  there are data member changes:
+    type 'void (int)*' of 'ops::munge' changed:
+      pointer type changed from: 'void (int)*' to: 'char (long int, bool)*'
+
+
diff --git a/tests/data/test-abidiff-exit/test-leaf2-v0.cc b/tests/data/test-abidiff-exit/test-leaf2-v0.cc
new file mode 100644
index 00000000..b75dd84c
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-leaf2-v0.cc
@@ -0,0 +1,6 @@
+struct ops {
+  void (*munge)(int x);
+};
+
+void register_ops(const ops&) {
+}
diff --git a/tests/data/test-abidiff-exit/test-leaf2-v0.o b/tests/data/test-abidiff-exit/test-leaf2-v0.o
new file mode 100644
index 0000000000000000000000000000000000000000..211a33884f30755929210fee5d328e5b7e6c24e1
GIT binary patch
literal 2840
zcmb_e-ESL35TEtg@g>)|PE4UukT4QZs&a>&R#DO_#b9Vsm7=IpQB?_<vvd9s@j2X`
zOUk!YgwzM5AP@x!iHE-M$p64Uf-2Excthd=X7+ZR_2%+|SjjsxzxmwRkMn15ym=)j
z1n>}W84e{z0dCD4@(sy0paP3<bL;-^TlYWt>)@SVzd<-JRkn<f@)AfVN8@v&y%=mE
z>@5T>Qi$AKOB&=|B!ycz&CmqJd|?nKVB6PGm?cCMv}yo2uK4i)m2))ZzV3q~V}n=_
z&zCBWRa!1Bh{a<0Db!YkWjoGA=aRGThzb@k4^}A^uU6JDUj7BRig@9aAoWZ^O2y~E
zaV|TS4Pc){mMmsH@yZhWhB8Cr^n=%y$Zd|?a;LGtva*Jks5bmz1Ud7>OJJF46B!H6
z;4H-7rFop?USWR)Bte|GyMf<baqrZ;PDlC_o`Kmk0g6u+#J!w_PMdGttTxY`t6!+D
zdn;bOx>BpJ*K6l%Rd<+-!(gKqgh4dupy)@P{>J{=s=Ioj>h`K`*N^XpoqjY5N8{KX
zhaU{W9XIjYyFq-kfY$B$N)+@4aS}u=+~6D6&eJx(oDBCs$6+`QdjY^^vw5-l;_E?s
z;D>2tZhiHvQKMWIJdqL*AKn15Ulz+JiuM7v;c3L_M?*I8)l&J(TyuWr3L2zv=1eCv
z4}boXrNoY9!MG8V&Q9sA^Z-v`Bv|S?m<kJ~j_*WmL2<(CjFp~x9g@5?Ir-Bn3+AT*
zC0S5920w8GUqob4>%-)L9yxW#Y`TibE1g4`c~Wsk!sVSN5XVAFfbqALe9FK-Rq~Re
zv}5}2oYn00b8tz+DK9-1G`cC7<h`flp@H|5{Jx@QUS1>BUr;tg%8EDbSC7G~3a2&c
z>jE#nJH-2kG>KB$XD$i$6YzHY#0Re($KXZ5uJ7#x?QyR)2)iTHN#1X_qu|bz+K+s^
zk<%`_gD_whOaWeJG#m!_5_{n&2|RpL+&J+&@2NmRztxTWAzthMV=QA3>J|5sV>T2s
zIgd&vTYWr>0%7vgqA9Lvyv~~b^yJdH`LF(U^fhBrKF<Gu1Z|kM^r4^+XhX9h_FeT=
z{X^k&t_b2Yj$a!&HgGm$lH!rn0(_+?6VrAZ6(&ZuBL&vjQBl*D)|plRwz?GTPxaHQ
zXV$-im>Clx_(_4ABxu95rN0tc`9D|rxlfdz-T^cJ9%2-e>qJ(L$12fx3@FO^nSO+L
zmjB1<GSm6e2m3Mo0+r0`b`Pf>gF}sJ`-Ac~&3{(F+M%oDc>N52i%eGkzR&0%eO1_>
z`%3kgxheK<3fxu&(|b=}E7PC$#Jqb5L5+&S!S8!29qkpx&GP?6)&Gzk6*c?!FWH5~
ARsaA1

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/test-leaf2-v1.cc b/tests/data/test-abidiff-exit/test-leaf2-v1.cc
new file mode 100644
index 00000000..f308a343
--- /dev/null
+++ b/tests/data/test-abidiff-exit/test-leaf2-v1.cc
@@ -0,0 +1,6 @@
+struct ops {
+  char (*munge)(long x, bool gunk);
+};
+
+void register_ops(const ops&) {
+}
diff --git a/tests/data/test-abidiff-exit/test-leaf2-v1.o b/tests/data/test-abidiff-exit/test-leaf2-v1.o
new file mode 100644
index 0000000000000000000000000000000000000000..9db3ed5e8f997d9c8455f8361449ce516edc840a
GIT binary patch
literal 2952
zcmbtV&2Jl35TECb<4v|PPE4UukXR(XqOwbzR#DO_C17Y06;M^F5<(zrZEtL=_HMMh
z4k@Sti3+7BiiA`l^~QmZ180s%T)4qM!5wZO4rS);8|V4Oxxkb5&CG8;ciz{>Z@hW6
zAO!Fba0QMfMge}AKIXS1y9HHPfSWt_e&4xw=db(k|NK3|Q&MHi2stl-d~!6t5bvj8
z3t{gdXpuq`W)Gynl!v4k;6&eam!=peC<$3a$u8znfrxFth4T!tqNo)K!0E)pZ%{c)
zQ{js)I5H)OdGTDi>R9Ea^1N6mRh~p`Ramy;Tyicu8;+=AU2|ZSb8)x2j`60Rhh4;r
zXT@%n45o`xE<Fp5a|L5zIgcSrHZ#6>Ws$ujnPcnRgVz?xZI;{$=di?zvWAzaI{Yw#
zoO$A(V3}zh84F&(S%`nib2!UI#KsHA!Zh>xVX(LA9n}0*OZpU_hM7D8icb{9rv(e0
z2E(Wm!uH!Y-TL|SwTteCzv|cA)s@;tZRNs>>kYDD6mE9HC`@`S6oaJI-8@`h^VTl9
zUdQ$Jg7kLO>Lzg%4^wX#eb9^AUKTX_VG7MS?w_osA4eUx7iI8rHrR*8yS3FM?DWzs
zOd7Z)Zd|)S8>7_?63}sg?Rx!^`{L_ivlm2pnO<#e*(ey`arv{@g%59lIIM`JGbQ^z
zcI7F=>7yZg`f9oIS)o2ReH9IIc;bw%xT*hqG)ajKoCM>#j2b<rxAKiXhLK>YV`C~T
z7~9VywFRXSuQOJD40K5H*61jVt1Ors2b5$1ZsZBWf-@)31w<CKK8*J3iA{LQQmcsk
zr?V(CPb$txI304<&65%b<3TRMSw$KDNXd(e(u(P;v#i<c`{1&M%gaT{Z3BOx<XZ-w
zD48kO^Pa-*81@g9eAmD~QSy<ZX8qg`iZ8E4Wmh@He(e<8RXFuV?+^It?ExNWq*;>F
zE^}FUn1SC8vH<*Mnu4E%{lIUB&0(j}i}qsFNj_*clki|n9V7u>JmW6?UKFwmrU1Vc
z4+bIL6n+$Ep^ul8mu5lhmI@Sh8+%DG2vy<#lPsY>^_Kg|;kFbr+Sf`ZTYWr(0%7tg
z(-hY<US~~zy2)w({a61Q`kFB*ALsvp1Z|kM^#0I;y`|X@d!%0Rb>%?&iXc8K_=w4|
ziL)7#6n{%Cz~_oGF>SA-!o<k-NP#QtsHka6|2e7tpVXmXf2yBuPqY3uVrEQ);70{+
zlb{XLwt>1y`TtP)xlfdz?h`ZrK4KJ;>qJ(LM=H^G3@FO^nbJKs$^Tn*m}!6MgZ-G^
zMJ4mP-LGSp!Li1){Yv?p=D#Um{n%A<{QnGpiOi(_+3G;*{iD~3{TZiv%-j^)RtM_3
qDwy64di6|yS`+i^Aq4MGQ8<=!GMdf*r?`{+T~+_rBhQ>M{r?5A)6WtB

literal 0
HcmV?d00001

diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc
index 45258a9f..6b91e833 100644
--- a/tests/test-abidiff-exit.cc
+++ b/tests/test-abidiff-exit.cc
@@ -139,6 +139,15 @@ InOutSpec in_out_specs[] =
     "data/test-abidiff-exit/test-leaf1-report.txt",
     "output/test-abidiff-exit/test-leaf1-report.txt"
   },
+  {
+    "data/test-abidiff-exit/test-leaf2-v0.o",
+    "data/test-abidiff-exit/test-leaf2-v1.o",
+    "",
+    "--no-show-locs --leaf-changes-only",
+    abigail::tools_utils::ABIDIFF_ABI_CHANGE,
+    "data/test-abidiff-exit/test-leaf2-report.txt",
+    "output/test-abidiff-exit/test-leaf2-report.txt"
+  },
   {
     "data/test-abidiff-exit/test-leaf3-v0.o",
     "data/test-abidiff-exit/test-leaf3-v1.o",
-- 
2.25.1.481.gfbce0eb801-goog


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 4/5 v2] [abidiff] Output 2-space indentation consistently.
  2020-03-12  6:30 ` [PATCH 4/5] [abidiff] Output 2-space indentation consistently Giuliano Procida
@ 2020-03-13 15:38   ` Giuliano Procida
  2020-03-17 12:31     ` Dodji Seketeli
  2020-03-14 20:12   ` [PATCH 4/5] " Matthias Maennich
  1 sibling, 1 reply; 21+ messages in thread
From: Giuliano Procida @ 2020-03-13 15:38 UTC (permalink / raw)
  To: libabigail; +Cc: dodji, kernel-team, gprocida

abidiff emits hierarchical difference information using 2-space
indentation, almost everywhere.

In a few places, long lines are split up and 1-space is used for
clarity. Otherwise 1-space indentation appears to be only used when
reporting:

    - data member changes (not additions or removals)
    - the change of the type of a variable

This patch resolves these inconsistencies in favour of 2-space
indentation.

	* src/abg-default-reporter.cc (report): In the
	class_or_union_diff override, use 2-space indentation when
        listing changed members. In the var_diff override, do the same
        for variable type changes.
	* src/abg-leaf-reporter.cc: Ditto.
        * tests/data/test-*/*report*.txt: Update many test cases.

Signed-off-by: Giuliano Procida <gprocida@google.com>
---
 src/abg-default-reporter.cc                   |   6 +-
 src/abg-leaf-reporter.cc                      |   6 +-
 .../test-abidiff-exit/test-leaf0-report.txt   |   4 +-
 .../test-abidiff-exit/test-leaf1-report.txt   |  12 +-
 .../test-no-stray-comma-report.txt            |  10 +-
 .../test-abidiff/test-PR18791-report0.txt     | 112 +--
 .../data/test-abidiff/test-struct0-report.txt |   8 +-
 .../data/test-abidiff/test-struct1-report.txt |  10 +-
 tests/data/test-abidiff/test-var0-report.txt  |   6 +-
 .../PR25058-liblttng-ctl-report-1.txt         | 200 ++---
 tests/data/test-diff-dwarf/test0-report.txt   |   2 +-
 tests/data/test-diff-dwarf/test1-report.txt   |   2 +-
 tests/data/test-diff-dwarf/test10-report.txt  |  24 +-
 tests/data/test-diff-dwarf/test11-report.txt  |  18 +-
 tests/data/test-diff-dwarf/test13-report.txt  |  14 +-
 .../test27-local-base-diff-report.txt         |   2 +-
 .../test32-fnptr-changes-report-0.txt         |  20 +-
 .../test33-fnref-changes-report-0.txt         |  22 +-
 ...t35-pr19173-libfoo-long-clang-report-0.txt |   6 +-
 ...est35-pr19173-libfoo-long-gcc-report-0.txt |   6 +-
 .../test-diff-dwarf/test39-union-report-0.txt |   8 +-
 tests/data/test-diff-dwarf/test4-report.txt   |   2 +-
 .../data/test-diff-dwarf/test40-report-0.txt  |  14 +-
 .../test44-anon-struct-union-report-0.txt     |   6 +-
 .../test45-anon-dm-change-report-0.txt        |   6 +-
 .../test-diff-dwarf/test46-rust-report-0.txt  |   2 +-
 tests/data/test-diff-dwarf/test5-report.txt   |   2 +-
 tests/data/test-diff-dwarf/test6-report.txt   |   2 +-
 tests/data/test-diff-dwarf/test8-report.txt   |  10 +-
 tests/data/test-diff-dwarf/test9-report.txt   |   4 +-
 .../libtest45-basic-type-change-report-0.txt  |  24 +-
 .../libtest45-basic-type-change-report-1.txt  |  12 +-
 tests/data/test-diff-filter/test0-report.txt  |   4 +-
 tests/data/test-diff-filter/test01-report.txt |   4 +-
 tests/data/test-diff-filter/test1-report.txt  |   2 +-
 tests/data/test-diff-filter/test13-report.txt |   8 +-
 .../data/test-diff-filter/test15-0-report.txt |   8 +-
 .../data/test-diff-filter/test15-1-report.txt |  10 +-
 .../data/test-diff-filter/test16-report-2.txt |   6 +-
 tests/data/test-diff-filter/test16-report.txt |   2 +-
 .../data/test-diff-filter/test17-0-report.txt |   2 +-
 .../data/test-diff-filter/test17-1-report.txt |   6 +-
 tests/data/test-diff-filter/test18-report.txt |   6 +-
 tests/data/test-diff-filter/test2-report.txt  |   4 +-
 .../test21-compatible-vars-report-0.txt       |   4 +-
 .../test24-compatible-vars-report-1.txt       |   8 +-
 .../test25-cyclic-type-report-1.txt           |   4 +-
 ...st26-qualified-redundant-node-report-0.txt |  10 +-
 ...st26-qualified-redundant-node-report-1.txt |  16 +-
 ...t-and-filtered-children-nodes-report-1.txt |   4 +-
 ...t-and-filtered-children-nodes-report-2.txt |  16 +-
 ...st29-finer-redundancy-marking-report-0.txt |   2 +-
 tests/data/test-diff-filter/test3-report.txt  |   2 +-
 .../test30-pr18904-rvalueref-report0.txt      | 206 ++---
 .../test30-pr18904-rvalueref-report1.txt      | 206 ++---
 .../test30-pr18904-rvalueref-report2.txt      | 206 ++---
 .../test31-pr18535-libstdc++-report-0.txt     |  12 +-
 .../test31-pr18535-libstdc++-report-1.txt     |  12 +-
 .../test35-pr18754-no-added-syms-report-0.txt | 206 ++---
 .../test35-pr18754-no-added-syms-report-1.txt |   6 +-
 .../data/test-diff-filter/test36-report-0.txt |  18 +-
 .../data/test-diff-filter/test37-report-0.txt |  18 +-
 .../test39/test39-report-0.txt                |  20 +-
 .../test44-anonymous-data-member-report-0.txt |  10 +-
 .../test44-anonymous-data-member-report-1.txt |  12 +-
 ...x86_64--2.24.2-30.fc30.x86_64-report-0.txt |  42 +-
 .../PR24690/PR24690-report-0.txt              |   8 +-
 ...libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt | 160 ++--
 ...4--libcdio-0.94-2.fc26.x86_64-report.1.txt |  48 +-
 ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt | 110 +--
 .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |  86 +-
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 738 +++++++++---------
 ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt | 262 +++----
 ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   8 +-
 .../test0-type-suppr-report-0.txt             |  10 +-
 .../test0-type-suppr-report-3.txt             |  10 +-
 .../test0-type-suppr-report-5.txt             |  10 +-
 .../test0-type-suppr-report-7.txt             |  10 +-
 .../test1-typedef-suppr-report-0.txt          |   4 +-
 .../test1-typedef-suppr-report-2.txt          |   2 +-
 .../test17-suppr-added-var-report-0.txt       |   8 +-
 .../test17-suppr-added-var-report-2.txt       |   8 +-
 .../test17-suppr-added-var-report-5.txt       |   8 +-
 .../test18-suppr-removed-var-report-0.txt     |   8 +-
 .../test18-suppr-removed-var-report-2.txt     |   8 +-
 .../test18-suppr-removed-var-report-5.txt     |   8 +-
 .../test2-struct-suppr-report-0.txt           |   2 +-
 .../test23-alias-filter-report-0.txt          |   2 +-
 .../test23-alias-filter-report-2.txt          |   2 +-
 .../test29-soname-report-3.txt                |   8 +-
 .../test29-soname-report-6.txt                |   8 +-
 .../test29-soname-report-8.txt                |   8 +-
 .../test3-struct-suppr-report-0.txt           |   4 +-
 .../test3-struct-suppr-report-1.txt           |   2 +-
 .../test3-struct-suppr-report-2.txt           |   2 +-
 .../data/test-diff-suppr/test30-report-0.txt  |  10 +-
 .../test-diff-suppr/test36-leaf-report-0.txt  |   6 +-
 .../test4-local-suppr-report-0.txt            |  12 +-
 .../test4-local-suppr-report-1.txt            |   2 +-
 .../test46-PR25128-report-1.txt               |  10 +-
 .../test46-PR25128-report-2.txt               |  10 +-
 .../test5-fn-suppr-report-0.txt               |   2 +-
 .../test5-fn-suppr-report-1.txt               |   2 +-
 .../test5-fn-suppr-report-2.txt               |   2 +-
 .../test5-fn-suppr-report-3.txt               |   2 +-
 .../test5-fn-suppr-report-4.txt               |   2 +-
 .../test5-fn-suppr-report-5.txt               |   2 +-
 .../test6-fn-suppr-report-0-1.txt             |   6 +-
 .../test6-fn-suppr-report-0.txt               |   6 +-
 .../test6-fn-suppr-report-1.txt               |   4 +-
 .../test6-fn-suppr-report-2.txt               |   4 +-
 .../test6-fn-suppr-report-3.txt               |   4 +-
 .../test7-var-suppr-report-0.txt              |  24 +-
 .../test7-var-suppr-report-1.txt              |  12 +-
 .../test7-var-suppr-report-2.txt              |  12 +-
 .../test7-var-suppr-report-3.txt              |  12 +-
 .../test7-var-suppr-report-4.txt              |  12 +-
 .../test7-var-suppr-report-7.txt              |  12 +-
 .../test7-var-suppr-report-8.txt              |  24 +-
 119 files changed, 1715 insertions(+), 1715 deletions(-)

diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
index a0b9eeea..cbb4ef39 100644
--- a/src/abg-default-reporter.cc
+++ b/src/abg-default-reporter.cc
@@ -1060,7 +1060,7 @@ default_reporter::report(const class_or_union_diff& d,
 	    {
 	      if ((*it)->to_be_reported())
 		{
-		  represent(*it, ctxt, out, indent + " ");
+		  represent(*it, ctxt, out, indent + "  ");
 		  out << "\n";
 		}
 	    }
@@ -1080,7 +1080,7 @@ default_reporter::report(const class_or_union_diff& d,
 	    {
 	      if ((*it)->to_be_reported())
 		{
-		  represent(*it, ctxt, out, indent + " ");
+		  represent(*it, ctxt, out, indent + "  ");
 		  out << "\n";
 		}
 	    }
@@ -1715,7 +1715,7 @@ default_reporter::report(const var_diff& d, ostream& out,
 	{
 	  RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER2(dif, "type");
 	  out << indent << "type of variable changed:\n";
-	  dif->report(out, indent + " ");
+	  dif->report(out, indent + "  ");
 	}
     }
 }
diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
index 760cc738..e1942e9d 100644
--- a/src/abg-leaf-reporter.cc
+++ b/src/abg-leaf-reporter.cc
@@ -648,7 +648,7 @@ leaf_reporter::report(const class_or_union_diff& d,
 	    {
 	      if (diff_to_be_reported((*it).get()))
 		{
-		  represent(*it, ctxt, out, indent + " ",
+		  represent(*it, ctxt, out, indent + "  ",
 			    /*local_only=*/true);
 		  out << "\n";
 		  emitted_data_members_changes = true;
@@ -675,7 +675,7 @@ leaf_reporter::report(const class_or_union_diff& d,
 	    {
 	      if (diff_to_be_reported((*it).get()))
 		{
-		  represent(*it, ctxt, out, indent + " ",
+		  represent(*it, ctxt, out, indent + "  ",
 			    /*local_only=*/true);
 		  out << "\n";
 		  emitted_data_members_changes = true;
@@ -991,7 +991,7 @@ leaf_reporter::report(const var_diff& d,
 	{
 	  RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER2(dif, "type");
 	  out << indent << "type of variable changed:\n";
-	  dif->report(out, indent + " ");
+	  dif->report(out, indent + "  ");
 	}
     }
 }
diff --git a/tests/data/test-abidiff-exit/test-leaf0-report.txt b/tests/data/test-abidiff-exit/test-leaf0-report.txt
index 7d15e28f..a347444c 100644
--- a/tests/data/test-abidiff-exit/test-leaf0-report.txt
+++ b/tests/data/test-abidiff-exit/test-leaf0-report.txt
@@ -16,7 +16,7 @@ Removed/Changed/Added variables summary: 0 Removed, 1 Changed, 0 Added variable
   [C] 'int changed_var' was changed to 'long int changed_var':
     size of symbol changed from 4 to 8
     type of variable changed:
-     type name changed from 'int' to 'long int'
-     type size changed from 32 to 64 (in bits)
+      type name changed from 'int' to 'long int'
+      type size changed from 32 to 64 (in bits)
 
 
diff --git a/tests/data/test-abidiff-exit/test-leaf1-report.txt b/tests/data/test-abidiff-exit/test-leaf1-report.txt
index b51bb4b3..45a849d9 100644
--- a/tests/data/test-abidiff-exit/test-leaf1-report.txt
+++ b/tests/data/test-abidiff-exit/test-leaf1-report.txt
@@ -32,15 +32,15 @@ Removed/Changed/Added variables summary: 1 Removed, 1 Changed, 1 Added variable
   [C] 'int directly_changed_var' was changed to 'long int directly_changed_var':
     size of symbol changed from 4 to 8
     type of variable changed:
-     type name changed from 'int' to 'long int'
-     type size changed from 32 to 64 (in bits)
+      type name changed from 'int' to 'long int'
+      type size changed from 32 to 64 (in bits)
 
 
 'struct changed' changed:
   type size changed from 32 to 64 (in bits)
   there are data member changes:
-   type 'int' of 'changed::foo' changed:
-     type name changed from 'int' to 'long int'
-     type size changed from 32 to 64 (in bits)
-   and size changed from 32 to 64 (in bits) (by +32 bits)
+    type 'int' of 'changed::foo' changed:
+      type name changed from 'int' to 'long int'
+      type size changed from 32 to 64 (in bits)
+    and size changed from 32 to 64 (in bits) (by +32 bits)
 
diff --git a/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt b/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt
index a66500d5..929c5d85 100644
--- a/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt
+++ b/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt
@@ -6,9 +6,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct foo at test-b146198490-v0.cc:1:1' changed:
   type size changed from 32 to 64 (in bits)
   there are data member changes:
-   type 'int[1]' of 'foo::bar' changed:
-     type name changed from 'int[1]' to 'int[2]'
-     array type size changed from 32 to 64
-     array type subrange 1 changed length from 1 to 2
-   and size changed from 32 to 64 (in bits) (by +32 bits)
+    type 'int[1]' of 'foo::bar' changed:
+      type name changed from 'int[1]' to 'int[2]'
+      array type size changed from 32 to 64
+      array type subrange 1 changed length from 1 to 2
+    and size changed from 32 to 64 (in bits) (by +32 bits)
 
diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
index 7e16fe32..8570a984 100644
--- a/tests/data/test-abidiff/test-PR18791-report0.txt
+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
@@ -16,46 +16,46 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-                        type size changed from 192 to 256 (in bits)
-                        2 data member changes:
-                         type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
-                           underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
-                             type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
-                             type size changed from 128 to 192 (in bits)
-                             1 base class change:
-                               'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
-                                 type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
-                                 type size changed from 128 to 192 (in bits)
-                                 1 data member change:
-                                  type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
-                                    type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
+          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':
+                          type size changed from 192 to 256 (in bits)
+                          2 data member changes:
+                            type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
+                              underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
+                                type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
+                                type size changed from 128 to 192 (in bits)
+                                1 base class change:
+                                  'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
+                                    type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
                                     type size changed from 128 to 192 (in bits)
                                     1 data member change:
-                                     type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
-                                       type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
-                                       type size changed from 128 to 192 (in bits)
-                                       1 base class insertion:
-                                         struct std::__detail::_List_node_base
-                                       2 data member deletions:
-                                         'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
-                                         'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
-                                       1 data member insertion:
-                                         'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
-                                     and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
-                                  and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
+                                      type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
+                                        type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
+                                        type size changed from 128 to 192 (in bits)
+                                        1 data member change:
+                                          type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
+                                            type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
+                                            type size changed from 128 to 192 (in bits)
+                                            1 base class insertion:
+                                              struct std::__detail::_List_node_base
+                                            2 data member deletions:
+                                              'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
+                                              'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
+                                            1 data member insertion:
+                                              'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
+                                          and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
+                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
 
 
-                         'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
+                            'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
 
 
 
@@ -65,8 +65,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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
+          type of 'sigc::slot_base* sigc::connection::slot_' changed:
+            pointed to type 'class sigc::slot_base' changed, as reported earlier
 
     parameter 1 of type 'const sigc::connection&' has sub-type changes:
       in referenced type 'const sigc::connection':
@@ -118,22 +118,22 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct sigc::internal::signal_impl':
         type size changed from 192 to 256 (in bits)
         1 data member change:
-         type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
-           type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
-           type size changed from 128 to 192 (in bits)
-           1 base class change:
-             'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
-               type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
-               type size changed from 128 to 192 (in bits)
-               1 data member change:
-                type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
-                  type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
-                  type size changed from 128 to 192 (in bits)
-                  1 data member change:
-                   type of 'std::__detail::_List_node_base std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed:
-                     details were reported earlier
-                   and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
-                and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
+          type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
+            type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
+            type size changed from 128 to 192 (in bits)
+            1 base class change:
+              'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
+                type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
+                type size changed from 128 to 192 (in bits)
+                1 data member change:
+                  type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
+                    type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
+                    type size changed from 128 to 192 (in bits)
+                    1 data member change:
+                      type of 'std::__detail::_List_node_base std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed:
+                        details were reported earlier
+                      and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
+                  and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
 
 
 
@@ -155,8 +155,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             details were reported earlier
 
         1 data member change:
-         type of 'sigc::internal::signal_impl* sigc::signal_base::impl_' changed:
-           pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier
+          type of 'sigc::internal::signal_impl* sigc::signal_base::impl_' changed:
+            pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier
 
     parameter 1 of type 'const sigc::signal_base&' has sub-type changes:
       in referenced type 'const sigc::signal_base':
diff --git a/tests/data/test-abidiff/test-struct0-report.txt b/tests/data/test-abidiff/test-struct0-report.txt
index f6c4cece..e22d59b1 100644
--- a/tests/data/test-abidiff/test-struct0-report.txt
+++ b/tests/data/test-abidiff/test-struct0-report.txt
@@ -4,10 +4,10 @@
     1 data member insertion:
       'char s0::m2', at offset 64 (in bits)
     1 data member change:
-     type of 'char s0::m1' changed:
-       type name changed from 'char' to 'unsigned int'
-       type size changed from 8 to 32 (in bits)
-       type alignment changed from 8 to 32
+      type of 'char s0::m1' changed:
+        type name changed from 'char' to 'unsigned int'
+        type size changed from 8 to 32 (in bits)
+        type alignment changed from 8 to 32
 
   's0&' changed:
     referenced type 'class s0' changed, as reported earlier
diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
index e334bf1a..242ba321 100644
--- a/tests/data/test-abidiff/test-struct1-report.txt
+++ b/tests/data/test-abidiff/test-struct1-report.txt
@@ -9,12 +9,12 @@
     1 data member insertion:
       'double s0::m01', at offset 128 (in bits)
     2 data member changes:
-     type of 'int s0::m0' changed:
-       type name changed from 'int' to 'char'
-       type size changed from 32 to 8 (in bits)
-       type alignment changed from 32 to 8
+      type of 'int s0::m0' changed:
+        type name changed from 'int' to 'char'
+        type size changed from 32 to 8 (in bits)
+        type alignment changed from 32 to 8
 
-     'unsigned int s0::m2' offset changed from 128 to 192 (in bits) (by +64 bits)
+      'unsigned int s0::m2' offset changed from 128 to 192 (in bits) (by +64 bits)
   'const s0' changed:
     unqualified underlying type 'class s0' changed, as reported earlier
   'const s0*' changed:
diff --git a/tests/data/test-abidiff/test-var0-report.txt b/tests/data/test-abidiff/test-var0-report.txt
index b4c9a38e..996a4dc0 100644
--- a/tests/data/test-abidiff/test-var0-report.txt
+++ b/tests/data/test-abidiff/test-var0-report.txt
@@ -1,6 +1,6 @@
 1 changed declaration:
   'int var' was changed to 'char var':
     type of variable changed:
-     type name changed from 'int' to 'char'
-     type size changed from 32 to 8 (in bits)
-     type alignment changed from 32 to 8
+      type name changed from 'int' to 'char'
+      type size changed from 32 to 8 (in bits)
+      type alignment changed from 32 to 8
diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
index aab271ff..088a0970 100644
--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
@@ -90,24 +90,24 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
       in pointed to type 'struct lttng_event_context':
         type size hasn't changed
         2 data member changes:
-         type of 'lttng_event_context_type lttng_event_context::ctx' changed:
-           type size hasn't changed
-           2 enumerator insertions:
-             'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL' value '20'
-             'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_USER' value '21'
-
-
-         type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
-           type name changed from '__anonymous_union__4' to '__anonymous_union__5'
-           type size hasn't changed
-           3 data member changes:
-            name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
-            name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
-            name of '__anonymous_union__4::perf_counter' changed to '__anonymous_union__5::perf_counter'
-           type changed from:
-             union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
-           to:
-             union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
+          type of 'lttng_event_context_type lttng_event_context::ctx' changed:
+            type size hasn't changed
+            2 enumerator insertions:
+              'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL' value '20'
+              'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_USER' value '21'
+
+
+          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
+            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
+            type size hasn't changed
+            3 data member changes:
+              name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
+              name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
+              name of '__anonymous_union__4::perf_counter' changed to '__anonymous_union__5::perf_counter'
+            type changed from:
+              union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
+            to:
+              union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
 
   [C] 'function lttng_condition_type lttng_condition_get_type(const lttng_condition*)' has some indirect sub-type changes:
     return type changed:
@@ -123,10 +123,10 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
       in pointed to type 'struct lttng_event':
         type size hasn't changed
         1 data member change:
-         type of 'lttng_event_type lttng_event::type' changed:
-           type size hasn't changed
-           1 enumerator insertion:
-             'lttng_event_type::LTTNG_EVENT_USERSPACE_PROBE' value '6'
+          type of 'lttng_event_type lttng_event::type' changed:
+            type size hasn't changed
+            1 enumerator insertion:
+              'lttng_event_type::LTTNG_EVENT_USERSPACE_PROBE' value '6'
 
 
 
@@ -184,8 +184,8 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
         in pointed to type 'struct lttng_event_field':
           type size hasn't changed
           1 data member change:
-           type of 'lttng_event lttng_event_field::event' changed:
-             details were reported earlier
+            type of 'lttng_event lttng_event_field::event' changed:
+              details were reported earlier
 
 
   [C] 'function int lttng_list_tracepoints(lttng_handle*, lttng_event**)' has some indirect sub-type changes:
@@ -231,101 +231,101 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
       in pointed to type 'struct filter_parser_ctx':
         type size hasn't changed
         1 data member change:
-         type of 'filter_ast* filter_parser_ctx::ast' changed:
-           in pointed to type 'struct filter_ast':
-             type size changed from 704 to 768 (in bits)
-             2 data member changes:
-              type of 'filter_node filter_ast::root' changed:
-                type size changed from 576 to 640 (in bits)
-                2 data member changes:
-                 type of 'filter_node* filter_node::parent' changed:
-                   pointed to type 'struct filter_node' changed; details are being reported
-
-                 type of 'union {struct {} unknown; struct {filter_node* child;} root; struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression; struct {op_type type; filter_node* lchild; filter_node* rchild;} op; struct {unary_op_type type; filter_node* child;} unary_op;} filter_node::u' changed:
-                   type size changed from 320 to 384 (in bits)
-                   4 data member changes:
-                    type of 'struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression' changed:
+          type of 'filter_ast* filter_parser_ctx::ast' changed:
+            in pointed to type 'struct filter_ast':
+              type size changed from 704 to 768 (in bits)
+              2 data member changes:
+                type of 'filter_node filter_ast::root' changed:
+                  type size changed from 576 to 640 (in bits)
+                  2 data member changes:
+                    type of 'filter_node* filter_node::parent' changed:
+                      pointed to type 'struct filter_node' changed; details are being reported
+
+                    type of 'union {struct {} unknown; struct {filter_node* child;} root; struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression; struct {op_type type; filter_node* lchild; filter_node* rchild;} op; struct {unary_op_type type; filter_node* child;} unary_op;} filter_node::u' changed:
                       type size changed from 320 to 384 (in bits)
-                      1 data member insertion:
-                        'filter_node* next_bracket', at offset 320 (in bits)
-                      5 data member changes:
-                       type of 'ast_link_type post_op' changed:
-                         type size hasn't changed
-                         1 enumerator insertion:
-                           'ast_link_type::AST_LINK_BRACKET' value '3'
+                      4 data member changes:
+                        type of 'struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression' changed:
+                          type size changed from 320 to 384 (in bits)
+                          1 data member insertion:
+                            'filter_node* next_bracket', at offset 320 (in bits)
+                          5 data member changes:
+                            type of 'ast_link_type post_op' changed:
+                              type size hasn't changed
+                              1 enumerator insertion:
+                                'ast_link_type::AST_LINK_BRACKET' value '3'
 
 
-                       type of 'ast_link_type pre_op' changed:
-                         details were reported earlier
+                            type of 'ast_link_type pre_op' changed:
+                              details were reported earlier
 
-                       type of 'union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u' changed:
-                         type size hasn't changed
-                         1 data member change:
-                          type of 'filter_node* child' changed:
-                            pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u' changed:
+                              type size hasn't changed
+                              1 data member change:
+                                type of 'filter_node* child' changed:
+                                  pointed to type 'struct filter_node' changed; details are being reported
 
-                         type changed from:
-                           union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
-                         to:
-                           union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
-                       type of 'filter_node* prev' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                              type changed from:
+                                union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
+                              to:
+                                union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
+                            type of 'filter_node* prev' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
-                       type of 'filter_node* next' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'filter_node* next' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
 
-                    type of 'struct {op_type type; filter_node* lchild; filter_node* rchild;} op' changed:
-                      type size hasn't changed
-                      3 data member changes:
-                       type of 'op_type type' changed:
-                         type size hasn't changed
-                         5 enumerator deletions:
-                           'op_type::AST_OP_RSHIFT' value '6'
-                           'op_type::AST_OP_LSHIFT' value '7'
-                           'op_type::AST_OP_BIN_AND' value '10'
-                           'op_type::AST_OP_BIN_OR' value '11'
-                           'op_type::AST_OP_BIN_XOR' value '12'
-                         5 enumerator insertions:
-                           'op_type::AST_OP_BIT_RSHIFT' value '6'
-                           'op_type::AST_OP_BIT_LSHIFT' value '7'
-                           'op_type::AST_OP_BIT_AND' value '10'
-                           'op_type::AST_OP_BIT_OR' value '11'
-                           'op_type::AST_OP_BIT_XOR' value '12'
+                        type of 'struct {op_type type; filter_node* lchild; filter_node* rchild;} op' changed:
+                          type size hasn't changed
+                          3 data member changes:
+                            type of 'op_type type' changed:
+                              type size hasn't changed
+                              5 enumerator deletions:
+                                'op_type::AST_OP_RSHIFT' value '6'
+                                'op_type::AST_OP_LSHIFT' value '7'
+                                'op_type::AST_OP_BIN_AND' value '10'
+                                'op_type::AST_OP_BIN_OR' value '11'
+                                'op_type::AST_OP_BIN_XOR' value '12'
+                              5 enumerator insertions:
+                                'op_type::AST_OP_BIT_RSHIFT' value '6'
+                                'op_type::AST_OP_BIT_LSHIFT' value '7'
+                                'op_type::AST_OP_BIT_AND' value '10'
+                                'op_type::AST_OP_BIT_OR' value '11'
+                                'op_type::AST_OP_BIT_XOR' value '12'
 
 
-                       type of 'filter_node* lchild' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'filter_node* lchild' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
-                       type of 'filter_node* rchild' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'filter_node* rchild' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
 
-                    type of 'struct {filter_node* child;} root' changed:
-                      type size hasn't changed
-                      1 data member change:
-                       type of 'filter_node* child' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                        type of 'struct {filter_node* child;} root' changed:
+                          type size hasn't changed
+                          1 data member change:
+                            type of 'filter_node* child' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
 
-                    type of 'struct {unary_op_type type; filter_node* child;} unary_op' changed:
-                      type size hasn't changed
-                      2 data member changes:
-                       type of 'unary_op_type type' changed:
-                         type size hasn't changed
-                         1 enumerator deletion:
-                           'unary_op_type::AST_UNARY_BIN_NOT' value '4'
-                         1 enumerator insertion:
-                           'unary_op_type::AST_UNARY_BIT_NOT' value '4'
+                        type of 'struct {unary_op_type type; filter_node* child;} unary_op' changed:
+                          type size hasn't changed
+                          2 data member changes:
+                            type of 'unary_op_type type' changed:
+                              type size hasn't changed
+                              1 enumerator deletion:
+                                'unary_op_type::AST_UNARY_BIN_NOT' value '4'
+                              1 enumerator insertion:
+                                'unary_op_type::AST_UNARY_BIT_NOT' value '4'
 
 
-                       type of 'filter_node* child' changed:
-                         pointed to type 'struct filter_node' changed; details are being reported
+                            type of 'filter_node* child' changed:
+                              pointed to type 'struct filter_node' changed; details are being reported
 
 
 
 
-              'cds_list_head filter_ast::allocated_nodes' offset changed from 576 to 640 (in bits) (by +64 bits)
+                'cds_list_head filter_ast::allocated_nodes' offset changed from 576 to 640 (in bits) (by +64 bits)
 
 
   [C] 'function YYSTYPE* lttng_yyget_lval(yyscan_t)' has some indirect sub-type changes:
@@ -334,8 +334,8 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
         underlying type 'union YYSTYPE' changed:
           type size hasn't changed
           1 data member change:
-           type of 'filter_node* YYSTYPE::n' changed:
-             pointed to type 'struct filter_node' changed, as reported earlier
+            type of 'filter_node* YYSTYPE::n' changed:
+              pointed to type 'struct filter_node' changed, as reported earlier
 
           type changed from:
             union YYSTYPE{long long int ll; char c; gc_string* gs; filter_node* n;}
diff --git a/tests/data/test-diff-dwarf/test0-report.txt b/tests/data/test-diff-dwarf/test0-report.txt
index 24d5e022..cad7ac78 100644
--- a/tests/data/test-diff-dwarf/test0-report.txt
+++ b/tests/data/test-diff-dwarf/test0-report.txt
@@ -18,6 +18,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
               'unsigned int B0S0::m2', at offset 64 (in bits)
 
         1 data member change:
-         'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected'
+          'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected'
 
 
diff --git a/tests/data/test-diff-dwarf/test1-report.txt b/tests/data/test-diff-dwarf/test1-report.txt
index 962bfac5..9c7178f3 100644
--- a/tests/data/test-diff-dwarf/test1-report.txt
+++ b/tests/data/test-diff-dwarf/test1-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'unsigned int S::m01', at offset 32 (in bits)
         1 data member change:
-         'int S::m1' offset changed from 32 to 64 (in bits) (by +32 bits)
+          'int S::m1' offset changed from 32 to 64 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test10-report.txt b/tests/data/test-diff-dwarf/test10-report.txt
index 84400c29..1745a4fb 100644
--- a/tests/data/test-diff-dwarf/test10-report.txt
+++ b/tests/data/test-diff-dwarf/test10-report.txt
@@ -8,18 +8,18 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S':
         type size changed from 1152 to 1280 (in bits)
         2 data member changes:
-         type of 'int S::m0[5][3]' changed:
-           type name changed from 'int[5][3]' to 'int[5][4]'
-           array type size changed from 256 to 288
-           array type subrange 2 changed length from 3 to 4
+          type of 'int S::m0[5][3]' changed:
+            type name changed from 'int[5][3]' to 'int[5][4]'
+            array type size changed from 256 to 288
+            array type subrange 2 changed length from 3 to 4
 
-         type of 'int* S::m1[10]' changed:
-           array element type 'int*' changed: 
-             in pointed to type 'int':
-               type name changed from 'int' to 'char'
-               type size changed from 32 to 8 (in bits)
-           type name changed from 'int*[10]' to 'char*[10]'
-           type size hasn't changed
-         and offset changed from 512 to 640 (in bits) (by +128 bits)
+          type of 'int* S::m1[10]' changed:
+            array element type 'int*' changed: 
+              in pointed to type 'int':
+                type name changed from 'int' to 'char'
+                type size changed from 32 to 8 (in bits)
+            type name changed from 'int*[10]' to 'char*[10]'
+            type size hasn't changed
+          and offset changed from 512 to 640 (in bits) (by +128 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test11-report.txt b/tests/data/test-diff-dwarf/test11-report.txt
index 32058bb6..ee5a753d 100644
--- a/tests/data/test-diff-dwarf/test11-report.txt
+++ b/tests/data/test-diff-dwarf/test11-report.txt
@@ -8,15 +8,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S':
         type size changed from 1248 to 1536 (in bits)
         2 data member changes:
-         type of 'int S::m0[5][3]' changed:
-           type name changed from 'int[5][3]' to 'int[6][3]'
-           array type size changed from 256 to 288
-           array type subrange 1 changed length from 5 to 6
+          type of 'int S::m0[5][3]' changed:
+            type name changed from 'int[5][3]' to 'int[6][3]'
+            array type size changed from 256 to 288
+            array type subrange 1 changed length from 5 to 6
 
-         type of 'int S::m1[6][4]' changed:
-           type name changed from 'int[6][4]' to 'int[6][5]'
-           array type size changed from 320 to 352
-           array type subrange 2 changed length from 4 to 5
-         and offset changed from 480 to 576 (in bits) (by +96 bits)
+          type of 'int S::m1[6][4]' changed:
+            type name changed from 'int[6][4]' to 'int[6][5]'
+            array type size changed from 320 to 352
+            array type subrange 2 changed length from 4 to 5
+          and offset changed from 480 to 576 (in bits) (by +96 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
index 833879c7..d58b0a8e 100644
--- a/tests/data/test-diff-dwarf/test13-report.txt
+++ b/tests/data/test-diff-dwarf/test13-report.txt
@@ -8,14 +8,14 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S':
         type size changed from 128 to 192 (in 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 '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 (in bits)
+          type of 'unsigned int S::m2' changed:
+            type name changed from 'unsigned int' to 'long long int'
+            type size changed from 32 to 64 (in bits)
 
-         'unsigned char S::m3' offset changed from 96 to 128 (in bits) (by +32 bits)
+          'unsigned char S::m3' offset changed from 96 to 128 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt b/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
index 63c7ec8c..3df36134 100644
--- a/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
+++ b/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
@@ -19,6 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             details were reported earlier
 
         1 data member change:
-         'int S::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
+          'int S::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt b/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
index 91b92d20..51b3920b 100644
--- a/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
+++ b/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
@@ -30,19 +30,19 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     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 ()':
-           parameter 1 of type 'double' was added
+        type of 'int ()* S::fnptr0' changed:
+          in pointed to type 'function type int ()':
+            parameter 1 of type 'double' was added
 
 
-       type of 'int ()* S::fnptr1' changed:
-         in pointed to type 'function type int ()':
-           entity changed from 'function type int ()' to 'void'
-           type size changed from 64 to 0 (in bits)
+        type of 'int ()* S::fnptr1' changed:
+          in pointed to type 'function type int ()':
+            entity changed from 'function type int ()' to 'void'
+            type size changed from 64 to 0 (in bits)
 
-       type of 'int ()* S::fnptr2' changed:
-         entity changed from 'int ()*' to 'int'
-         type size changed from 64 to 32 (in bits)
+        type of 'int ()* S::fnptr2' changed:
+          entity changed from 'int ()*' to 'int'
+          type size changed from 64 to 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt b/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
index fcab9120..c8da7868 100644
--- a/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
+++ b/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
@@ -31,20 +31,20 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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 ()':
-             parameter 1 of type 'double' was added
+          type of 'int ()& S::fnref0' changed:
+            in referenced type 'function type int ()':
+              parameter 1 of type 'double' was added
 
 
-         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::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 ()':
-             entity changed from 'function type int ()' to 'int'
-             type size changed from 64 to 32 (in bits)
+          type of 'int ()& S::fnref2' changed:
+            in referenced type 'function type int ()':
+              entity changed from 'function type int ()' to 'int'
+              type size changed from 64 to 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt
index 3db4c087..0046caae 100644
--- a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt
+++ b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt
@@ -6,8 +6,8 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
   [C] 'char buggy_symbol[5]' was changed to 'char buggy_symbol[10]':
     size of symbol changed from 5 to 10
     type of variable changed:
-     type name changed from 'char[5]' to 'char[10]'
-     array type size changed from 40 to 80
-     array type subrange 1 changed length from 5 to 10
+      type name changed from 'char[5]' to 'char[10]'
+      array type size changed from 40 to 80
+      array type subrange 1 changed length from 5 to 10
 
 
diff --git a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt
index 3db4c087..0046caae 100644
--- a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt
+++ b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt
@@ -6,8 +6,8 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
   [C] 'char buggy_symbol[5]' was changed to 'char buggy_symbol[10]':
     size of symbol changed from 5 to 10
     type of variable changed:
-     type name changed from 'char[5]' to 'char[10]'
-     array type size changed from 40 to 80
-     array type subrange 1 changed length from 5 to 10
+      type name changed from 'char[5]' to 'char[10]'
+      array type size changed from 40 to 80
+      array type subrange 1 changed length from 5 to 10
 
 
diff --git a/tests/data/test-diff-dwarf/test39-union-report-0.txt b/tests/data/test-diff-dwarf/test39-union-report-0.txt
index 2f70de44..4e98e97d 100644
--- a/tests/data/test-diff-dwarf/test39-union-report-0.txt
+++ b/tests/data/test-diff-dwarf/test39-union-report-0.txt
@@ -8,10 +8,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'union some_union_type':
         type size changed from 64 to 96 (in bits)
         1 data member change:
-         type of 'S some_union_type::m2' changed:
-           type size changed from 64 to 96 (in bits)
-           1 data member insertion:
-             'char S::S_member2', at offset 64 (in bits)
+          type of 'S some_union_type::m2' changed:
+            type size changed from 64 to 96 (in bits)
+            1 data member insertion:
+              'char S::S_member2', at offset 64 (in bits)
 
 
 
diff --git a/tests/data/test-diff-dwarf/test4-report.txt b/tests/data/test-diff-dwarf/test4-report.txt
index e784dde6..42ea4807 100644
--- a/tests/data/test-diff-dwarf/test4-report.txt
+++ b/tests/data/test-diff-dwarf/test4-report.txt
@@ -8,6 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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'
+          'int C0::m0' access changed from 'private' to 'public'
 
 
diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
index f0f9e1a1..27dd48e4 100644
--- a/tests/data/test-diff-dwarf/test40-report-0.txt
+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
@@ -10,17 +10,17 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         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)
+          '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
+          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:
@@ -30,7 +30,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         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)
+          'int S1::m0' offset changed from 0 to 64 (in bits) (by +64 bits)
+          'char S1::m1' offset changed from 32 to 96 (in bits) (by +64 bits)
 
 
diff --git a/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt b/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt
index ff0131a4..fd15a239 100644
--- a/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt
+++ b/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt
@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct S0':
         type size hasn't changed
         1 data member change:
-         type of 'union {int d; char c;} S0::m0' changed:
-           entity changed from 'union {int d; char c;}' to 'int'
-           type size hasn't changed
+          type of 'union {int d; char c;} S0::m0' changed:
+            entity changed from 'union {int d; char c;}' to 'int'
+            type size hasn't changed
 
 
 
diff --git a/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt b/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt
index e43c3a89..4fb2f58e 100644
--- a/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt
+++ b/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt
@@ -10,15 +10,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S1::m01', at offset 32 (in bits)
         1 data member change:
-         'char S1::m1' offset changed from 64 to 40 (in bits) (by -24 bits)
+          'char S1::m1' offset changed from 64 to 40 (in bits) (by -24 bits)
         1 data member change:
-         anonymous data member struct {int m0; char m01;} at offset 0 (in bits) became data member 'int S1::m0'
+          anonymous data member struct {int m0; char m01;} at offset 0 (in bits) became data member 'int S1::m0'
 
   [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:
-         data member int S0::m0 at offset 0 (in bits) became anonymous data member 'union {int m0; char m01;}'
+          data member int S0::m0 at offset 0 (in bits) became anonymous data member 'union {int m0; char m01;}'
 
 
diff --git a/tests/data/test-diff-dwarf/test46-rust-report-0.txt b/tests/data/test-diff-dwarf/test46-rust-report-0.txt
index 66538cdf..109abd65 100644
--- a/tests/data/test-diff-dwarf/test46-rust-report-0.txt
+++ b/tests/data/test-diff-dwarf/test46-rust-report-0.txt
@@ -11,7 +11,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'u32 two::Foo::b', at offset 32 (in bits)
       1 data member change:
-       name of 'one::Foo::a' changed to 'two::Foo::a'
+        name of 'one::Foo::a' changed to 'two::Foo::a'
     parameter 2 of type 'u32' was added
 
 
diff --git a/tests/data/test-diff-dwarf/test5-report.txt b/tests/data/test-diff-dwarf/test5-report.txt
index 74c9e3bf..81a4aa38 100644
--- a/tests/data/test-diff-dwarf/test5-report.txt
+++ b/tests/data/test-diff-dwarf/test5-report.txt
@@ -8,6 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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'
+          'int C0::m0' access changed from 'private' to 'public'
 
 
diff --git a/tests/data/test-diff-dwarf/test6-report.txt b/tests/data/test-diff-dwarf/test6-report.txt
index 755d37f8..cb7b00b6 100644
--- a/tests/data/test-diff-dwarf/test6-report.txt
+++ b/tests/data/test-diff-dwarf/test6-report.txt
@@ -8,6 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S0':
         type size hasn't changed
         1 data member change:
-         name of 'S0::m2' changed to 'S0::m12'
+          name of 'S0::m2' changed to 'S0::m12'
 
 
diff --git a/tests/data/test-diff-dwarf/test8-report.txt b/tests/data/test-diff-dwarf/test8-report.txt
index 5adaea5f..8ee5a975 100644
--- a/tests/data/test-diff-dwarf/test8-report.txt
+++ b/tests/data/test-diff-dwarf/test8-report.txt
@@ -15,14 +15,14 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           'struct B0' changed:
             type size hasn't changed
             1 data member change:
-             'char B0::m0' access changed from 'public' to 'private'
+              'char B0::m0' access changed from 'public' to 'private'
 
         1 base class insertion:
           class B1
         1 data member change:
-         type of 'int S::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
-         and offset changed from 32 to 64 (in bits) (by +32 bits), 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 (in bits)
+          and offset changed from 32 to 64 (in bits) (by +32 bits), access changed from 'public' to 'private'
 
 
diff --git a/tests/data/test-diff-dwarf/test9-report.txt b/tests/data/test-diff-dwarf/test9-report.txt
index 914841bd..01814b45 100644
--- a/tests/data/test-diff-dwarf/test9-report.txt
+++ b/tests/data/test-diff-dwarf/test9-report.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 1 Changed, 1 Added variables
   [C] 'int global_var0' was changed to 'char global_var0':
     size of symbol changed from 4 to 1
     type of variable changed:
-     type name changed from 'int' to 'char'
-     type size changed from 32 to 8 (in bits)
+      type name changed from 'int' to 'char'
+      type size changed from 32 to 8 (in bits)
 
 
diff --git a/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt b/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt
index 78be7f06..45424dc2 100644
--- a/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt
+++ b/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt
@@ -12,10 +12,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S0' at test45-basic-type-change-v1.cc:8:1:
         type size hasn't changed
         1 data member change:
-         type of 'int* S0::m0' changed:
-           in pointed to type 'int':
-             type name changed from 'int' to 'char'
-             type size changed from 32 to 8 (in bits)
+          type of 'int* S0::m0' changed:
+            in pointed to type 'int':
+              type name changed from 'int' to 'char'
+              type size changed from 32 to 8 (in bits)
 
 
   [C] 'function int* foo1(S1&)' at test45-basic-type-change-v1.cc:28:1 has some indirect sub-type changes:
@@ -27,10 +27,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S1' at test45-basic-type-change-v1.cc:13:1:
         type size hasn't changed
         1 data member change:
-         type of 'int* S1::m0' changed:
-           in pointed to type 'int':
-             type name changed from 'int' to 'char'
-             type size changed from 32 to 8 (in bits)
+          type of 'int* S1::m0' changed:
+            in pointed to type 'int':
+              type name changed from 'int' to 'char'
+              type size changed from 32 to 8 (in bits)
 
 
   [C] 'function const int foo2(S2&)' at test45-basic-type-change-v1.cc:32:1 has some indirect sub-type changes:
@@ -40,10 +40,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct S2' at test45-basic-type-change-v1.cc:18:1:
         type size hasn't changed
         1 data member change:
-         type of 'int* S2::m0' changed:
-           in pointed to type 'int':
-             type name changed from 'int' to 'char'
-             type size changed from 32 to 8 (in bits)
+          type of 'int* S2::m0' changed:
+            in pointed to type 'int':
+              type name changed from 'int' to 'char'
+              type size changed from 32 to 8 (in bits)
 
 
   [C] 'function int foo3(S2&)' at test45-basic-type-change-v1.cc:36:1 has some indirect sub-type changes:
diff --git a/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt b/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt
index e5e4bd30..f442f4d8 100644
--- a/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt
+++ b/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt
@@ -26,8 +26,8 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct S0 at test45-basic-type-change-v0.cc:8:1' changed:
   type size hasn't changed
   there are data member changes:
-   type 'int*' of 'S0::m0' changed:
-     pointer type changed from: 'int*' to: 'char*'
+    type 'int*' of 'S0::m0' changed:
+      pointer type changed from: 'int*' to: 'char*'
 
 
 
@@ -35,8 +35,8 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct S1 at test45-basic-type-change-v0.cc:13:1' changed:
   type size hasn't changed
   there are data member changes:
-   type 'int*' of 'S1::m0' changed:
-     pointer type changed from: 'int*' to: 'char*'
+    type 'int*' of 'S1::m0' changed:
+      pointer type changed from: 'int*' to: 'char*'
 
 
 
@@ -44,7 +44,7 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct S2 at test45-basic-type-change-v0.cc:18:1' changed:
   type size hasn't changed
   there are data member changes:
-   type 'int*' of 'S2::m0' changed:
-     pointer type changed from: 'int*' to: 'char*'
+    type 'int*' of 'S2::m0' changed:
+      pointer type changed from: 'int*' to: 'char*'
 
 
diff --git a/tests/data/test-diff-filter/test0-report.txt b/tests/data/test-diff-filter/test0-report.txt
index 0d5d2e52..6967ee31 100644
--- a/tests/data/test-diff-filter/test0-report.txt
+++ b/tests/data/test-diff-filter/test0-report.txt
@@ -17,9 +17,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             1 data member insertion:
               'unsigned int B0S0::m2', at offset 32 (in bits)
             1 data member change:
-             'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 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) (by +32 bits)
+          'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test01-report.txt b/tests/data/test-diff-filter/test01-report.txt
index 0407bd46..ff759af7 100644
--- a/tests/data/test-diff-filter/test01-report.txt
+++ b/tests/data/test-diff-filter/test01-report.txt
@@ -17,9 +17,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             1 data member insertion:
               'unsigned int B0S0::m2', at offset 32 (in bits)
             1 data member change:
-             'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 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) (by +32 bits), access changed from 'private' to 'protected'
+          'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected'
 
 
diff --git a/tests/data/test-diff-filter/test1-report.txt b/tests/data/test-diff-filter/test1-report.txt
index 0c1d1911..064b41ec 100644
--- a/tests/data/test-diff-filter/test1-report.txt
+++ b/tests/data/test-diff-filter/test1-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char C1::m0', at offset 0 (in bits)
         1 data member change:
-         'int C1::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int C1::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test13-report.txt b/tests/data/test-diff-filter/test13-report.txt
index 169771ec..6a0f152a 100644
--- a/tests/data/test-diff-filter/test13-report.txt
+++ b/tests/data/test-diff-filter/test13-report.txt
@@ -15,9 +15,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           class B1
         1 data member change:
-         type of 'int S::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
-         and offset changed from 32 to 64 (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 (in bits)
+          and offset changed from 32 to 64 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test15-0-report.txt b/tests/data/test-diff-filter/test15-0-report.txt
index 2c162d55..f2d37cb2 100644
--- a/tests/data/test-diff-filter/test15-0-report.txt
+++ b/tests/data/test-diff-filter/test15-0-report.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 64 to 96 (in bits)
-       1 data member insertion:
-         'unsigned int S::m2', at offset 64 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 64 to 96 (in bits)
+        1 data member insertion:
+          'unsigned int S::m2', at offset 64 (in bits)
 
 
diff --git a/tests/data/test-diff-filter/test15-1-report.txt b/tests/data/test-diff-filter/test15-1-report.txt
index 82c6575c..ed4825ca 100644
--- a/tests/data/test-diff-filter/test15-1-report.txt
+++ b/tests/data/test-diff-filter/test15-1-report.txt
@@ -5,13 +5,13 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables
 
   [C] 'S* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 64 to 96 (in bits)
-       1 data member insertion:
-         'unsigned int S::m2', at offset 64 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 64 to 96 (in bits)
+        1 data member insertion:
+          'unsigned int S::m2', at offset 64 (in bits)
 
   [C] 'S* var2' was changed:
     type of variable changed:
-     pointed to type 'struct S' changed, as reported earlier
+      pointed to type 'struct S' changed, as reported earlier
 
 
diff --git a/tests/data/test-diff-filter/test16-report-2.txt b/tests/data/test-diff-filter/test16-report-2.txt
index 744bdced..c85d1a84 100644
--- a/tests/data/test-diff-filter/test16-report-2.txt
+++ b/tests/data/test-diff-filter/test16-report-2.txt
@@ -10,8 +10,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         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) (by +64 bits)
+          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) (by +64 bits)
 
 
diff --git a/tests/data/test-diff-filter/test16-report.txt b/tests/data/test-diff-filter/test16-report.txt
index cf2bd81c..80c3f1ec 100644
--- a/tests/data/test-diff-filter/test16-report.txt
+++ b/tests/data/test-diff-filter/test16-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
+          'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
 
 
diff --git a/tests/data/test-diff-filter/test17-0-report.txt b/tests/data/test-diff-filter/test17-0-report.txt
index 2d2f8650..a90cab1e 100644
--- a/tests/data/test-diff-filter/test17-0-report.txt
+++ b/tests/data/test-diff-filter/test17-0-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
+          'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
 
 
diff --git a/tests/data/test-diff-filter/test17-1-report.txt b/tests/data/test-diff-filter/test17-1-report.txt
index 1c75796c..83a8945c 100644
--- a/tests/data/test-diff-filter/test17-1-report.txt
+++ b/tests/data/test-diff-filter/test17-1-report.txt
@@ -10,9 +10,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         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) (by +64 bits)
+          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) (by +64 bits)
 
   [C] 'function void foo(S&)' has some indirect sub-type changes:
     parameter 1 of type 'S&' has sub-type changes:
diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
index 6ade5bdf..2535b4e9 100644
--- a/tests/data/test-diff-filter/test18-report.txt
+++ b/tests/data/test-diff-filter/test18-report.txt
@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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
+          type of 'int S::m0' changed:
+            type name changed from 'int' to 'unsigned int'
+            type size hasn't changed
 
 
 
diff --git a/tests/data/test-diff-filter/test2-report.txt b/tests/data/test-diff-filter/test2-report.txt
index 87ef1a4d..78a3c9d3 100644
--- a/tests/data/test-diff-filter/test2-report.txt
+++ b/tests/data/test-diff-filter/test2-report.txt
@@ -21,7 +21,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char C0::m2', at offset 0 (in bits)
         2 data member changes:
-         'E0 C0::m0' offset changed from 0 to 8 (in bits) (by +8 bits)
-         'E1 C0::m1' offset changed from 8 to 16 (in bits) (by +8 bits)
+          'E0 C0::m0' offset changed from 0 to 8 (in bits) (by +8 bits)
+          'E1 C0::m1' offset changed from 8 to 16 (in bits) (by +8 bits)
 
 
diff --git a/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt b/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt
index 606c619d..622f6cd4 100644
--- a/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt
+++ b/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt
@@ -5,7 +5,7 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'const volatile S* const* const* var0' was changed to 'const volatile typedef_of_S* const* const* var0':
     type of variable changed:
-     in pointed to type 'const volatile S* const* const':
-       'const volatile S* const* const' changed to 'const volatile typedef_of_S* const* const'
+      in pointed to type 'const volatile S* const* const':
+        'const volatile S* const* const' changed to 'const volatile typedef_of_S* const* const'
 
 
diff --git a/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt b/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
index 85125410..08554b4b 100644
--- a/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
+++ b/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'S a[2]' was changed to 'typedef_of_S a[2]':
     type of variable 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
+      array element type 'struct S' changed: 
+        entity changed from 'struct S' to compatible type 'typedef typedef_of_S'
+      type name changed from 'S[2]' to 'typedef_of_S[2]'
+      type size hasn't changed
 
 
diff --git a/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt b/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
index dba30227..55249d4f 100644
--- a/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
+++ b/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
@@ -10,8 +10,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::m1', at offset 32 (in bits)
         1 data member change:
-         type of 'S* S::m2' changed:
-           pointed to type 'struct S' changed; details are being reported
+          type of 'S* S::m2' changed:
+            pointed to type 'struct S' changed; details are being reported
 
 
 
diff --git a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
index a226b6c5..fbfae8d4 100644
--- a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
+++ b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
@@ -11,11 +11,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             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)
+                type of 'FooStruct::Embedded* S::m1' changed:
+                  in pointed to type 'struct FooStruct::Embedded':
+                    type size hasn't changed
+                    1 data member insertion:
+                      'char FooStruct::Embedded::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
index 0f032cbd..760576ff 100644
--- a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
+++ b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
@@ -11,15 +11,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             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)
+                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)
 
-               type of 'FooStruct::Embedded** S::m2' changed:
-                 in pointed to type 'FooStruct::Embedded*':
-                   pointed to type 'struct FooStruct::Embedded' changed, as reported earlier
+                type of 'FooStruct::Embedded** S::m2' changed:
+                  in pointed to type 'FooStruct::Embedded*':
+                    pointed to type 'struct FooStruct::Embedded' changed, as reported earlier
 
 
 
diff --git a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
index cfbc7918..b9bdb216 100644
--- a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
+++ b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
@@ -15,8 +15,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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
+          type of 'S0* S::m0' changed:
+            pointed to type 'struct S0' changed, as reported earlier
 
 
 
diff --git a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
index eba592a2..dd5afb5f 100644
--- a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
+++ b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
@@ -21,16 +21,16 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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
+          type of 'S0* S::m0' changed:
+            pointed to type 'struct S0' changed, as reported earlier
 
-         type of 'S1* S::m1' changed:
-           in pointed to type 'struct S1':
-             entity changed from 'struct S1' to compatible type 'typedef S1Renamed'
+          type of 'S1* S::m1' changed:
+            in pointed to type 'struct S1':
+              entity changed from 'struct S1' to compatible type 'typedef S1Renamed'
 
-         type of 'S2* S::m2' changed:
-           in pointed to type 'struct S2':
-             entity changed from 'struct S2' to compatible type 'typedef S2Renamed'
+          type of 'S2* S::m2' changed:
+            in pointed to type 'struct S2':
+              entity changed from 'struct S2' to compatible type 'typedef S2Renamed'
 
 
 
diff --git a/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt b/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
index a7ee9d55..5a84c530 100644
--- a/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
+++ b/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
@@ -23,6 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             details were reported earlier
 
         1 data member change:
-         'int inherited::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
+          'int inherited::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test3-report.txt b/tests/data/test-diff-filter/test3-report.txt
index ef48956a..ff099fd9 100644
--- a/tests/data/test-diff-filter/test3-report.txt
+++ b/tests/data/test-diff-filter/test3-report.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'int S::m0', at offset 0 (in bits)
         1 data member change:
-         'char S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'char S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
index 5def3a08..678c9f61 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
@@ -1300,14 +1300,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
       in pointed to type 'struct VarDesc':
         type size hasn't changed
         1 data member changes (1 filtered):
-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
-           type size hasn't changed
-           1 data member changes (1 filtered):
-            anonymous data member at offset 0 (in bits) changed from:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
-            to:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
+            type size hasn't changed
+            1 data member changes (1 filtered):
+              anonymous data member at offset 0 (in bits) changed from:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
+              to:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
 
 
 
@@ -1318,11 +1318,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
           1 data member change:
-           type of 'void ()* InitTableEntry::func' changed:
-             in pointed to type 'function type void ()':
-               parameter 1 of type 'typedef MyoArena' was added
+            type of 'void ()* InitTableEntry::func' changed:
+              in pointed to type 'function type void ()':
+                parameter 1 of type 'typedef MyoArena' was added
 
-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
 
   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' has some indirect sub-type changes:
     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
@@ -1340,97 +1340,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
             'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits)
             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits)
           8 data member changes (2 filtered):
-           type of 'Engine& OffloadDescriptor::m_device' changed:
-             in referenced type 'struct Engine':
-               type size changed from 2752 to 5504 (in bits)
-               1 data member deletion:
-                 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
-               7 data member insertions:
-                 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
-                 'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
-                 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
-                 'int Engine::m_num_cores', at offset 3776 (in bits)
-                 'int Engine::m_num_threads', at offset 3808 (in bits)
-                 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
-                 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
-               4 data member changes:
-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
-                    type size changed from 384 to 704 (in bits)
-                    1 data member insertion:
-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
-                    1 data member change:
-                     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:
-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
-                       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> >
-                              2 data member deletions:
-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-                              1 data member change:
-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
-                                 type size changed from 8 to 384 (in bits)
-                                 1 base class deletion:
-                                   struct std::binary_function<PtrData, PtrData, bool>
-                                 1 base class insertion:
-                                   class std::allocator<std::_Rb_tree_node<PtrData> >
-                                 3 data member insertions:
-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
+            type of 'Engine& OffloadDescriptor::m_device' changed:
+              in referenced type 'struct Engine':
+                type size changed from 2752 to 5504 (in bits)
+                1 data member deletion:
+                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
+                7 data member insertions:
+                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
+                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
+                  'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
+                  'int Engine::m_num_cores', at offset 3776 (in bits)
+                  'int Engine::m_num_threads', at offset 3808 (in bits)
+                  'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
+                  'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
+                4 data member changes:
+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
+                      type size changed from 384 to 704 (in bits)
+                      1 data member insertion:
+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
+                      1 data member change:
+                        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:
+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
+                          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> >
+                                  2 data member deletions:
+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
+                                  1 data member change:
+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
+                                      type size changed from 8 to 384 (in bits)
+                                      1 base class deletion:
+                                        struct std::binary_function<PtrData, PtrData, bool>
+                                      1 base class insertion:
+                                        class std::allocator<std::_Rb_tree_node<PtrData> >
+                                      3 data member insertions:
+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
 
-                '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
-                  array type subrange 1 changed length from 6 to 7
-                and offset changed from 2368 to 5056 (in bits) (by +2688 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
+                    array type subrange 1 changed length from 6 to 7
+                  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) (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 (in bits)
-               2 data member insertions:
-                 '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) (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 (in 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) (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)
+            '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 (in bits)
+                2 data member insertions:
+                  '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) (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 (in 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) (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) (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)
+            '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:
@@ -1513,9 +1513,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]':
     size of symbol changed from 48 to 56
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 384 to 448
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 384 to 448
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
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 3bc8f6d7..318d0bc2 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
@@ -1300,14 +1300,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
       in pointed to type 'struct VarDesc' at offload_common.h:254:1:
         type size hasn't changed
         1 data member changes (1 filtered):
-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
-           type size hasn't changed
-           1 data member changes (1 filtered):
-            anonymous data member at offset 0 (in bits) changed from:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
-            to:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
+            type size hasn't changed
+            1 data member changes (1 filtered):
+              anonymous data member at offset 0 (in bits) changed from:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
+              to:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
 
 
 
@@ -1318,11 +1318,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
           1 data member change:
-           type of 'void ()* InitTableEntry::func' changed:
-             in pointed to type 'function type void ()':
-               parameter 1 of type 'typedef MyoArena' was added
+            type of 'void ()* InitTableEntry::func' changed:
+              in pointed to type 'function type void ()':
+                parameter 1 of type 'typedef MyoArena' was added
 
-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
 
   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' at compiler_if_host.cpp:456:1 has some indirect sub-type changes:
     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
@@ -1340,97 +1340,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
             'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits) at offload_host.h:360:1
             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits) at offload_host.h:362:1
           8 data member changes (2 filtered):
-           type of 'Engine& OffloadDescriptor::m_device' changed:
-             in referenced type 'struct Engine' at offload_engine.h:395:1:
-               type size changed from 2752 to 5504 (in bits)
-               1 data member deletion:
-                 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
-               7 data member insertions:
-                 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
-                 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
-                 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) at offload_engine.h:638:1
-                 'int Engine::m_num_cores', at offset 3776 (in bits) at offload_engine.h:639:1
-                 'int Engine::m_num_threads', at offset 3808 (in bits) at offload_engine.h:640:1
-                 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) at offload_engine.h:641:1
-                 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) at offload_engine.h:644:1
-               4 data member changes:
-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
-                    type size changed from 384 to 704 (in bits)
-                    1 data member insertion:
-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) at offload_engine.h:204:1
-                    1 data member change:
-                     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:
-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
-                       underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
-                              2 data member deletions:
-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
-                              1 data member change:
-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
-                                 type size changed from 8 to 384 (in bits)
-                                 1 base class deletion:
-                                   struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
-                                 1 base class insertion:
-                                   class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
-                                 3 data member insertions:
-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits) at stl_tree.h:592:1
-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
+            type of 'Engine& OffloadDescriptor::m_device' changed:
+              in referenced type 'struct Engine' at offload_engine.h:395:1:
+                type size changed from 2752 to 5504 (in bits)
+                1 data member deletion:
+                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
+                7 data member insertions:
+                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
+                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
+                  'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) at offload_engine.h:638:1
+                  'int Engine::m_num_cores', at offset 3776 (in bits) at offload_engine.h:639:1
+                  'int Engine::m_num_threads', at offset 3808 (in bits) at offload_engine.h:640:1
+                  'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) at offload_engine.h:641:1
+                  'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) at offload_engine.h:644:1
+                4 data member changes:
+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
+                      type size changed from 384 to 704 (in bits)
+                      1 data member insertion:
+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) at offload_engine.h:204:1
+                      1 data member change:
+                        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:
+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
+                          underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
+                                  2 data member deletions:
+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
+                                  1 data member change:
+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
+                                      type size changed from 8 to 384 (in bits)
+                                      1 base class deletion:
+                                        struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
+                                      1 base class insertion:
+                                        class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
+                                      3 data member insertions:
+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits) at stl_tree.h:592:1
+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
 
-                '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
-                  array type subrange 1 changed length from 6 to 7
-                and offset changed from 2368 to 5056 (in bits) (by +2688 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
+                    array type subrange 1 changed length from 6 to 7
+                  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) (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 (in bits)
-               2 data member insertions:
-                 '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) (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 (in 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) (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)
+            '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 (in bits)
+                2 data member insertions:
+                  '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) (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 (in 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) (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) (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)
+            '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:
@@ -1513,9 +1513,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]' at offload_engine.h:659:1:
     size of symbol changed from 48 to 56
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 384 to 448
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 384 to 448
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
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 d91de66b..9021bd9d 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
@@ -1300,14 +1300,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
       in pointed to type 'struct VarDesc' at offload_common.h:254:1:
         type size hasn't changed
         1 data member changes (1 filtered):
-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
-           type size hasn't changed
-           1 data member changes (1 filtered):
-            anonymous data member at offset 0 (in bytes) changed from:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
-            to:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
+            type size hasn't changed
+            1 data member changes (1 filtered):
+              anonymous data member at offset 0 (in bytes) changed from:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
+              to:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
 
 
 
@@ -1318,11 +1318,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
           1 data member change:
-           type of 'void ()* InitTableEntry::func' changed:
-             in pointed to type 'function type void ()':
-               parameter 1 of type 'typedef MyoArena' was added
+            type of 'void ()* InitTableEntry::func' changed:
+              in pointed to type 'function type void ()':
+                parameter 1 of type 'typedef MyoArena' was added
 
-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
 
   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' at compiler_if_host.cpp:456:1 has some indirect sub-type changes:
     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
@@ -1340,97 +1340,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
             'bool OffloadDescriptor::m_traceback_called', at offset 0x11c (in bytes) at offload_host.h:360:1
             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 0x120 (in bytes) at offload_host.h:362:1
           8 data member changes (2 filtered):
-           type of 'Engine& OffloadDescriptor::m_device' changed:
-             in referenced type 'struct Engine' at offload_engine.h:395:1:
-               type size changed from 0x158 to 0x2b0 (in bytes)
-               1 data member deletion:
-                 'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
-               7 data member insertions:
-                 'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
-                 'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
-                 'mutex_t Engine::m_stream_lock', at offset 0x1b0 (in bytes) at offload_engine.h:638:1
-                 'int Engine::m_num_cores', at offset 0x1d8 (in bytes) at offload_engine.h:639:1
-                 'int Engine::m_num_threads', at offset 0x1dc (in bytes) at offload_engine.h:640:1
-                 'std::bitset<1024ul> Engine::m_cpus', at offset 0x1e0 (in bytes) at offload_engine.h:641:1
-                 'DynLibList Engine::m_dyn_libs', at offset 0x260 (in bytes) at offload_engine.h:644:1
-               4 data member changes:
-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
-                    type size changed from 0x30 to 0x58 (in bytes)
-                    1 data member insertion:
-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 0x30 (in bytes) at offload_engine.h:204:1
-                    1 data member change:
-                     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:
-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
-                       underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
-                              2 data member deletions:
-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
-                              1 data member change:
-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
-                                 type size changed from 0x1 to 0x30 (in bytes)
-                                 1 base class deletion:
-                                   struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
-                                 1 base class insertion:
-                                   class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
-                                 3 data member insertions:
-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bytes) at stl_tree.h:592:1
-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
+            type of 'Engine& OffloadDescriptor::m_device' changed:
+              in referenced type 'struct Engine' at offload_engine.h:395:1:
+                type size changed from 0x158 to 0x2b0 (in bytes)
+                1 data member deletion:
+                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
+                7 data member insertions:
+                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
+                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
+                  'mutex_t Engine::m_stream_lock', at offset 0x1b0 (in bytes) at offload_engine.h:638:1
+                  'int Engine::m_num_cores', at offset 0x1d8 (in bytes) at offload_engine.h:639:1
+                  'int Engine::m_num_threads', at offset 0x1dc (in bytes) at offload_engine.h:640:1
+                  'std::bitset<1024ul> Engine::m_cpus', at offset 0x1e0 (in bytes) at offload_engine.h:641:1
+                  'DynLibList Engine::m_dyn_libs', at offset 0x260 (in bytes) at offload_engine.h:644:1
+                4 data member changes:
+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
+                      type size changed from 0x30 to 0x58 (in bytes)
+                      1 data member insertion:
+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 0x30 (in bytes) at offload_engine.h:204:1
+                      1 data member change:
+                        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:
+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
+                          underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
+                                  2 data member deletions:
+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
+                                  1 data member change:
+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
+                                      type size changed from 0x1 to 0x30 (in bytes)
+                                      1 base class deletion:
+                                        struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
+                                      1 base class insertion:
+                                        class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
+                                      3 data member insertions:
+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bytes) at stl_tree.h:592:1
+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
 
-                'Engine::SignalMap Engine::m_signal_map' offset changed from 0xd0 to 0x128 (in bytes) (by +0x58 bytes)
-                'mutex_t Engine::m_signal_lock' offset changed from 0x100 to 0x158 (in bytes) (by +0x58 bytes)
-                type of 'coifunction* Engine::m_funcs[6]' changed:
-                  type name changed from 'coifunction*[6]' to 'coifunction*[7]'
-                  array type size changed from 0x180 to 0x1c0
-                  array type subrange 1 changed length from 6 to 7
-                and offset changed from 0x128 to 0x278 (in bytes) (by +0x150 bytes)
+                  'Engine::SignalMap Engine::m_signal_map' offset changed from 0xd0 to 0x128 (in bytes) (by +0x58 bytes)
+                  'mutex_t Engine::m_signal_lock' offset changed from 0x100 to 0x158 (in bytes) (by +0x58 bytes)
+                  type of 'coifunction* Engine::m_funcs[6]' changed:
+                    type name changed from 'coifunction*[6]' to 'coifunction*[7]'
+                    array type size changed from 0x180 to 0x1c0
+                    array type subrange 1 changed length from 6 to 7
+                  and offset changed from 0x128 to 0x278 (in bytes) (by +0x150 bytes)
 
-           'bool OffloadDescriptor::m_is_mandatory' offset changed from 0x28 to 0x29 (in bytes) (by +0x1 bytes)
-           'const bool OffloadDescriptor::m_is_openmp' offset changed from 0x29 to 0x2a (in bytes) (by +0x1 bytes)
-           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 0x48 to 0x50 (in bytes)
-               2 data member insertions:
-                 'void* OffloadDescriptor::VarExtra::alloc', at offset 0x28 (in bytes) at offload_host.h:222:1
-                 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1
-               4 data member changes (3 filtered):
-                'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
-                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 0x40 to 0x48 (in bytes)
-                    1 data member insertion:
-                      'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bytes) at cean_util.h:59:1
-                    7 data member changes:
-                     'void* CeanReadRanges::ptr' offset changed from 0 to 0x8 (in bytes) (by +0x8 bytes)
-                     'int64_t CeanReadRanges::current_number' offset changed from 0x8 to 0x10 (in bytes) (by +0x8 bytes)
-                     'int64_t CeanReadRanges::range_max_number' offset changed from 0x10 to 0x18 (in bytes) (by +0x8 bytes)
-                     'int64_t CeanReadRanges::range_size' offset changed from 0x18 to 0x20 (in bytes) (by +0x8 bytes)
-                     'int CeanReadRanges::last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes)
-                     'int64_t CeanReadRanges::init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
-                     'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
-                and offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
-                'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes)
-                'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes)
+            'bool OffloadDescriptor::m_is_mandatory' offset changed from 0x28 to 0x29 (in bytes) (by +0x1 bytes)
+            'const bool OffloadDescriptor::m_is_openmp' offset changed from 0x29 to 0x2a (in bytes) (by +0x1 bytes)
+            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 0x48 to 0x50 (in bytes)
+                2 data member insertions:
+                  'void* OffloadDescriptor::VarExtra::alloc', at offset 0x28 (in bytes) at offload_host.h:222:1
+                  'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1
+                4 data member changes (3 filtered):
+                  'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
+                  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 0x40 to 0x48 (in bytes)
+                      1 data member insertion:
+                        'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bytes) at cean_util.h:59:1
+                      7 data member changes:
+                        'void* CeanReadRanges::ptr' offset changed from 0 to 0x8 (in bytes) (by +0x8 bytes)
+                        'int64_t CeanReadRanges::current_number' offset changed from 0x8 to 0x10 (in bytes) (by +0x8 bytes)
+                        'int64_t CeanReadRanges::range_max_number' offset changed from 0x10 to 0x18 (in bytes) (by +0x8 bytes)
+                        'int64_t CeanReadRanges::range_size' offset changed from 0x18 to 0x20 (in bytes) (by +0x8 bytes)
+                        'int CeanReadRanges::last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes)
+                        'int64_t CeanReadRanges::init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
+                        'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
+                  and offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
+                  'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes)
+                  'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes)
 
-           'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes)
-           'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 0x100 to 0x108 (in bytes) (by +0x8 bytes)
-           'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 0x108 to 0x110 (in bytes) (by +0x8 bytes)
-           'bool OffloadDescriptor::m_need_runfunction' offset changed from 0x110 to 0x118 (in bytes) (by +0x8 bytes)
+            'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes)
+            'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 0x100 to 0x108 (in bytes) (by +0x8 bytes)
+            'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 0x108 to 0x110 (in bytes) (by +0x8 bytes)
+            'bool OffloadDescriptor::m_need_runfunction' offset changed from 0x110 to 0x118 (in bytes) (by +0x8 bytes)
 
   [C] 'function void __offload_register_image(void*)' at offload_host.cpp:5531:1 has some indirect sub-type changes:
     return type changed:
@@ -1513,9 +1513,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]' at offload_engine.h:659:1:
     size of symbol changed from 0x6 to 0x7
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 0x180 to 0x1c0
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 0x180 to 0x1c0
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
index 795410dc..df13b950 100644
--- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
+++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
@@ -34,12 +34,12 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere
         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) (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)
+          '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:
diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
index 4ec08fea..6a165d55 100644
--- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
+++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
@@ -34,12 +34,12 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere
         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) (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)
+          '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:
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 306a9863..828e473a 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
@@ -216,14 +216,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
       in pointed to type 'struct VarDesc':
         type size hasn't changed
         1 data member changes (1 filtered):
-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
-           type size hasn't changed
-           1 data member changes (1 filtered):
-            anonymous data member at offset 0 (in bits) changed from:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
-            to:
-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
+            type size hasn't changed
+            1 data member changes (1 filtered):
+              anonymous data member at offset 0 (in bits) changed from:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
+              to:
+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
 
 
 
@@ -234,11 +234,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
           1 data member change:
-           type of 'void ()* InitTableEntry::func' changed:
-             in pointed to type 'function type void ()':
-               parameter 1 of type 'typedef MyoArena' was added
+            type of 'void ()* InitTableEntry::func' changed:
+              in pointed to type 'function type void ()':
+                parameter 1 of type 'typedef MyoArena' was added
 
-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
 
   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' has some indirect sub-type changes:
     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
@@ -256,97 +256,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
             'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits)
             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits)
           8 data member changes (2 filtered):
-           type of 'Engine& OffloadDescriptor::m_device' changed:
-             in referenced type 'struct Engine':
-               type size changed from 2752 to 5504 (in bits)
-               1 data member deletion:
-                 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
-               7 data member insertions:
-                 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
-                 'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
-                 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
-                 'int Engine::m_num_cores', at offset 3776 (in bits)
-                 'int Engine::m_num_threads', at offset 3808 (in bits)
-                 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
-                 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
-               4 data member changes:
-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
-                    type size changed from 384 to 704 (in bits)
-                    1 data member insertion:
-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
-                    1 data member change:
-                     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:
-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
-                       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> >
-                              2 data member deletions:
-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-                              1 data member change:
-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
-                                 type size changed from 8 to 384 (in bits)
-                                 1 base class deletion:
-                                   struct std::binary_function<PtrData, PtrData, bool>
-                                 1 base class insertion:
-                                   class std::allocator<std::_Rb_tree_node<PtrData> >
-                                 3 data member insertions:
-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
+            type of 'Engine& OffloadDescriptor::m_device' changed:
+              in referenced type 'struct Engine':
+                type size changed from 2752 to 5504 (in bits)
+                1 data member deletion:
+                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
+                7 data member insertions:
+                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
+                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
+                  'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
+                  'int Engine::m_num_cores', at offset 3776 (in bits)
+                  'int Engine::m_num_threads', at offset 3808 (in bits)
+                  'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
+                  'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
+                4 data member changes:
+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
+                      type size changed from 384 to 704 (in bits)
+                      1 data member insertion:
+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
+                      1 data member change:
+                        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:
+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
+                          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> >
+                                  2 data member deletions:
+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
+                                  1 data member change:
+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
+                                      type size changed from 8 to 384 (in bits)
+                                      1 base class deletion:
+                                        struct std::binary_function<PtrData, PtrData, bool>
+                                      1 base class insertion:
+                                        class std::allocator<std::_Rb_tree_node<PtrData> >
+                                      3 data member insertions:
+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
 
-                '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
-                  array type subrange 1 changed length from 6 to 7
-                and offset changed from 2368 to 5056 (in bits) (by +2688 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
+                    array type subrange 1 changed length from 6 to 7
+                  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) (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 (in bits)
-               2 data member insertions:
-                 '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) (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 (in 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) (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)
+            '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 (in bits)
+                2 data member insertions:
+                  '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) (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 (in 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) (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) (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)
+            '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:
@@ -415,9 +415,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]':
     size of symbol changed from 48 to 56
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 384 to 448
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 384 to 448
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
diff --git a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt
index 2f07f1a6..6ae2e3b0 100644
--- a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt
+++ b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt
@@ -93,9 +93,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]':
     size of symbol changed from 48 to 56
     type of variable changed:
-     type name changed from 'const char*[6]' to 'const char*[7]'
-     array type size changed from 384 to 448
-     array type subrange 1 changed length from 6 to 7
+      type name changed from 'const char*[6]' to 'const char*[7]'
+      array type size changed from 384 to 448
+      array type subrange 1 changed length from 6 to 7
 
 
 7 Removed function symbols not referenced by debug info:
diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
index 22e614d8..4b6b634d 100644
--- a/tests/data/test-diff-filter/test36-report-0.txt
+++ b/tests/data/test-diff-filter/test36-report-0.txt
@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct S' at test36-1-v1.c:6:1:
         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
+          type of 'int S::m0' changed:
+            type name changed from 'int' to 'unsigned int'
+            type size hasn't changed
 
 
   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
@@ -18,13 +18,13 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct S' at test36-2-v1.c:6:1:
         type size hasn't changed
         2 data member changes:
-         type of 'int S::m0' changed:
-           type name changed from 'int' to 'unsigned int'
-           type size hasn't changed
+          type of 'int S::m0' changed:
+            type name changed from 'int' to 'unsigned int'
+            type size hasn't changed
 
-         type of 'int S::m1' changed:
-           type name changed from 'int' to 'unsigned int'
-           type size hasn't changed
+          type of 'int S::m1' changed:
+            type name changed from 'int' to 'unsigned int'
+            type size hasn't changed
 
 
 
diff --git a/tests/data/test-diff-filter/test37-report-0.txt b/tests/data/test-diff-filter/test37-report-0.txt
index 4617a505..9680f32c 100644
--- a/tests/data/test-diff-filter/test37-report-0.txt
+++ b/tests/data/test-diff-filter/test37-report-0.txt
@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct A' at test37-v1.cc:3:1:
         type size changed from 32 to 8 (in bits)
         1 data member change:
-         type of 'int A::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
+          type of 'int A::m0' changed:
+            type name changed from 'int' to 'char'
+            type size changed from 32 to 8 (in bits)
 
 
   [C] 'function void f2(B&)' at test37-v1.cc:23:1 has some indirect sub-type changes:
@@ -18,9 +18,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct B' at test37-v1.cc:8:1:
         type size changed from 32 to 8 (in bits)
         1 data member change:
-         type of 'int B::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
+          type of 'int B::m0' changed:
+            type name changed from 'int' to 'char'
+            type size changed from 32 to 8 (in bits)
 
 
   [C] 'function void f3(C&)' at test37-v1.cc:27:1 has some indirect sub-type changes:
@@ -28,9 +28,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in referenced type 'struct C' at test37-v1.cc:13:1:
         type size changed from 32 to 8 (in bits)
         1 data member change:
-         type of 'int C::m0' changed:
-           type name changed from 'int' to 'char'
-           type size changed from 32 to 8 (in bits)
+          type of 'int C::m0' changed:
+            type name changed from 'int' to 'char'
+            type size changed from 32 to 8 (in bits)
 
 
 
diff --git a/tests/data/test-diff-filter/test39/test39-report-0.txt b/tests/data/test-diff-filter/test39/test39-report-0.txt
index c6bfa2b1..43de553f 100644
--- a/tests/data/test-diff-filter/test39/test39-report-0.txt
+++ b/tests/data/test-diff-filter/test39/test39-report-0.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct container_type' at test39.h:3:1:
         type size hasn't changed
         1 data member change:
-         type of 'opaque_type* container_type::s' changed:
-           in pointed to type 'struct opaque_type' at test39-b-v1.c:3:1:
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char opaque_type::m1', at offset 32 (in bits) at test39-b-v1.c:6:1
+          type of 'opaque_type* container_type::s' changed:
+            in pointed to type 'struct opaque_type' at test39-b-v1.c:3:1:
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char opaque_type::m1', at offset 32 (in bits) at test39-b-v1.c:6:1
 
 
   [C] 'function long long int foo2(container_type*)' at test39-c-v1.c:10:1 has some indirect sub-type changes:
@@ -20,11 +20,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct container_type' at test39.h:3:1:
         type size hasn't changed
         1 data member change:
-         type of 'opaque_type* container_type::s' changed:
-           in pointed to type 'struct opaque_type' at test39-c-v1.c:3:1:
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'unsigned char opaque_type::m1', at offset 32 (in bits) at test39-c-v1.c:6:1
+          type of 'opaque_type* container_type::s' changed:
+            in pointed to type 'struct opaque_type' at test39-c-v1.c:3:1:
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'unsigned char opaque_type::m1', at offset 32 (in bits) at test39-c-v1.c:6:1
 
 
 
diff --git a/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt b/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt
index a660fd3e..ed10b78a 100644
--- a/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt
+++ b/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       in pointed to type 'struct S2' at test44-anonymous-data-member-v1.c:11:1:
         type size changed from 128 to 160 (in bits)
         2 data member changes:
-         anonymous data member at offset 32 (in bits) changed from:
-           struct {int b; float c;}
-         to:
-           struct {int b; float c; char e;}
+          anonymous data member at offset 32 (in bits) changed from:
+            struct {int b; float c;}
+          to:
+            struct {int b; float c; char e;}
 
-         'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
+          'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt b/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt
index c866a9d4..4ac353fb 100644
--- a/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt
+++ b/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt
@@ -6,10 +6,10 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct S2 at test-44-anonymous-data-member-v0.c:10:1' changed:
   type size changed from 128 to 160 (in bits)
   there are data member changes:
-   anonymous data member at offset 32 (in bits) changed from:
-     struct {int b; float c;}
-   to:
-     struct {int b; float c; char e;}
-   size changed from 64 to 96 (in bits) (by +32 bits)
-   'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
+    anonymous data member at offset 32 (in bits) changed from:
+      struct {int b; float c;}
+    to:
+      struct {int b; float c; char e;}
+    size changed from 64 to 96 (in bits) (by +32 bits)
+    'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
 
diff --git a/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt b/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt
index fb67e43a..f65e09e0 100644
--- a/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt
@@ -11,17 +11,17 @@
         in unqualified underlying type 'struct gl_h__gluint_vec___XUP' at gl_h.ads:57:1:
           type size hasn't changed
           1 data member change:
-           type of 'gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB* gl_h__gluint_vec___XUP::P_BOUNDS' changed:
-             in pointed to type 'struct gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB' at gl_h.ads:57:1:
-               type size hasn't changed
-               2 data member changes:
-                type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::LB0' changed:
-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
-                  type size changed from 32 to 2147483647 (in bits)
+            type of 'gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB* gl_h__gluint_vec___XUP::P_BOUNDS' changed:
+              in pointed to type 'struct gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB' at gl_h.ads:57:1:
+                type size hasn't changed
+                2 data member changes:
+                  type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::LB0' changed:
+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
+                    type size changed from 32 to 2147483647 (in bits)
 
-                type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::UB0' changed:
-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
-                  type size changed from 32 to 2147483647 (in bits)
+                  type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::UB0' changed:
+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
+                    type size changed from 32 to 2147483647 (in bits)
 
 
 
@@ -30,17 +30,17 @@
         in unqualified underlying type 'struct gtk__glarea__attributes_array___XUP' at gtk-glarea.ads:48:1:
           type size hasn't changed
           1 data member change:
-           type of 'gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB* gtk__glarea__attributes_array___XUP::P_BOUNDS' changed:
-             in pointed to type 'struct gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB':
-               type size hasn't changed
-               2 data member changes:
-                type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::LB0' changed:
-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
-                  type size changed from 32 to 2147483647 (in bits)
-
-                type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::UB0' changed:
-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
-                  type size changed from 32 to 2147483647 (in bits)
+            type of 'gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB* gtk__glarea__attributes_array___XUP::P_BOUNDS' changed:
+              in pointed to type 'struct gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB':
+                type size hasn't changed
+                2 data member changes:
+                  type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::LB0' changed:
+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
+                    type size changed from 32 to 2147483647 (in bits)
+
+                  type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::UB0' changed:
+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
+                    type size changed from 32 to 2147483647 (in bits)
 
 
 
diff --git a/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt b/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt
index d106bf9b..2dad2619 100644
--- a/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt
+++ b/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt
@@ -35,10 +35,10 @@
       1 data member insertion:
         'typedef gboolean (FlatpakTransaction*, const char*, const char*, const char*, const char*, const char**)* _FlatpakTransactionClass::end_of_lifed_with_rebase', at offset 1408 (in bits) at flatpak-transaction.h:117:1
       4 data member changes (3 filtered):
-       'typedef gboolean (FlatpakTransaction*)* _FlatpakTransactionClass::ready' offset changed from 1408 to 1472 (in bits) (by +64 bits)
-       'typedef gboolean (FlatpakTransaction*, typedef FlatpakTransactionRemoteReason, const char*, const char*, const char*)* _FlatpakTransactionClass::add_new_remote' offset changed from 1472 to 1536 (in bits) (by +64 bits)
-       'typedef gboolean (FlatpakTransaction*, GCancellable*, GError**)* _FlatpakTransactionClass::run' offset changed from 1536 to 1600 (in bits) (by +64 bits)
-       'gpointer _FlatpakTransactionClass::padding[9]' offset changed from 1600 to 1664 (in bits) (by +64 bits)
+        'typedef gboolean (FlatpakTransaction*)* _FlatpakTransactionClass::ready' offset changed from 1408 to 1472 (in bits) (by +64 bits)
+        'typedef gboolean (FlatpakTransaction*, typedef FlatpakTransactionRemoteReason, const char*, const char*, const char*)* _FlatpakTransactionClass::add_new_remote' offset changed from 1472 to 1536 (in bits) (by +64 bits)
+        'typedef gboolean (FlatpakTransaction*, GCancellable*, GError**)* _FlatpakTransactionClass::run' offset changed from 1536 to 1600 (in bits) (by +64 bits)
+        'gpointer _FlatpakTransactionClass::padding[9]' offset changed from 1600 to 1664 (in bits) (by +64 bits)
 
 
   3 added types unreachable from any public interface:
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 0c097b6b..f6f4cd98 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,73 +16,73 @@
           in pointed to type 'struct _IceConn' at ICEconn.h:131:1:
             type size hasn't changed
             2 data member changes (3 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:
-                        type size changed from 640 to 768 (in bits)
-                        2 data member insertions:
-                          '_XtransConnFd* _XtransConnInfo::recv_fds', at offset 640 (in bits) at Xtransint.h:148:1
-                          '_XtransConnFd* _XtransConnInfo::send_fds', at offset 704 (in bits) at Xtransint.h:149: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
-                             3 data member changes (16 filtered):
-                              type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSClient' changed:
-                                in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
-                                  parameter 3 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':
-                                      entity changed from 'char' to 'const char'
-                                      type size hasn't changed
-
-                              type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSServer' changed:
-                                in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
-                                  parameter 3 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':
-                                      entity changed from 'char' to 'const char'
-                                      type size hasn't changed
-
-                              type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCLTSServer' changed:
-                                in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
-                                  parameter 3 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':
-                                      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:48:1:
-                 entity changed from 'struct _IcePingWait' to compatible type 'typedef _IcePingWait' at ICEconn.h:48:1
+              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:
+                          type size changed from 640 to 768 (in bits)
+                          2 data member insertions:
+                            '_XtransConnFd* _XtransConnInfo::recv_fds', at offset 640 (in bits) at Xtransint.h:148:1
+                            '_XtransConnFd* _XtransConnInfo::send_fds', at offset 704 (in bits) at Xtransint.h:149: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
+                                3 data member changes (16 filtered):
+                                  type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSClient' changed:
+                                    in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
+                                      parameter 3 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':
+                                          entity changed from 'char' to 'const char'
+                                          type size hasn't changed
+
+                                  type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSServer' changed:
+                                    in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
+                                      parameter 3 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':
+                                          entity changed from 'char' to 'const char'
+                                          type size hasn't changed
+
+                                  type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCLTSServer' changed:
+                                    in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
+                                      parameter 3 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':
+                                          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:48:1:
+                  entity changed from 'struct _IcePingWait' to compatible type 'typedef _IcePingWait' at ICEconn.h:48:1
 
 
 
@@ -94,22 +94,22 @@
 
     [C] 'char* _IceAuthNames[1]' was changed to 'const char* _IceAuthNames[1]' at globals.h:37:1:
       type of variable changed:
-       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
+        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
 
     [C] '_IceWatchProc* _IceWatchProcs' was changed at globals.h:39:1:
       type of variable changed:
-       in pointed to type 'struct _IceWatchProc' at ICElibint.h:322:1:
-         entity changed from 'struct _IceWatchProc' to compatible type 'typedef _IceWatchProc' at ICElibint.h:322:1
-           type size hasn't changed
-           1 data member changes (2 filtered):
-            type of '_IceWatchedConnection* _IceWatchProc::watched_connections' changed:
-              in pointed to type 'struct _IceWatchedConnection' at ICElibint.h:315:1:
-                entity changed from 'struct _IceWatchedConnection' to compatible type 'typedef _IceWatchedConnection' at ICElibint.h:315:1
+        in pointed to type 'struct _IceWatchProc' at ICElibint.h:322:1:
+          entity changed from 'struct _IceWatchProc' to compatible type 'typedef _IceWatchProc' at ICElibint.h:322:1
+            type size hasn't changed
+            1 data member changes (2 filtered):
+              type of '_IceWatchedConnection* _IceWatchProc::watched_connections' changed:
+                in pointed to type 'struct _IceWatchedConnection' at ICElibint.h:315:1:
+                  entity changed from 'struct _IceWatchedConnection' to compatible type 'typedef _IceWatchedConnection' at ICElibint.h:315:1
 
 
 
diff --git a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
index 23b12adf..c4f420fa 100644
--- a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
+++ b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
@@ -10,30 +10,30 @@
           underlying type 'union {uint8_t type; cdio_dvd_physical_t physical; cdio_dvd_copyright_t copyright; cdio_dvd_disckey_t disckey; cdio_dvd_bca_t bca; cdio_dvd_manufact_t manufact;}' at dvd.h:122:1 changed:
             type size hasn't changed
             2 data member changes:
-             type of 'cdio_dvd_disckey_t disckey' changed:
-               underlying type 'struct cdio_dvd_disckey' at dvd.h:100:1 changed:
-                 type size hasn't changed
-                 1 data member change:
-                  'unsigned int cdio_dvd_disckey::agid' offset changed from 30 to 22 (in bits) (by -8 bits)
-
-             type of 'cdio_dvd_physical_t physical' changed:
-               underlying type 'struct cdio_dvd_physical' at dvd.h:86:1 changed:
-                 type size hasn't changed
-                 1 data member change:
-                  type of 'cdio_dvd_layer_t cdio_dvd_physical::layer[4]' changed:
-                    array element type 'typedef cdio_dvd_layer_t' changed: 
-                      underlying type 'struct cdio_dvd_layer' at dvd.h:65:1 changed:
-                        type size hasn't changed
-                        8 data member changes:
-                         'unsigned int cdio_dvd_layer::track_density' offset changed from 21 to 5 (in bits) (by -16 bits)
-                         'unsigned int cdio_dvd_layer::bca' offset changed from 24 to 0 (in bits) (by -24 bits)
-                         'unsigned int cdio_dvd_layer::disc_size' offset changed from 24 to 16 (in bits) (by -8 bits)
-                         'unsigned int cdio_dvd_layer::linear_density' offset changed from 25 to 1 (in bits) (by -24 bits)
-                         'unsigned int cdio_dvd_layer::nlayers' offset changed from 25 to 9 (in bits) (by -16 bits)
-                         'unsigned int cdio_dvd_layer::track_path' offset changed from 27 to 11 (in bits) (by -16 bits)
-                         'unsigned int cdio_dvd_layer::layer_type' offset changed from 28 to 12 (in bits) (by -16 bits)
-                         'unsigned int cdio_dvd_layer::min_rate' offset changed from 28 to 20 (in bits) (by -8 bits)
-                    type size hasn't changed
+              type of 'cdio_dvd_disckey_t disckey' changed:
+                underlying type 'struct cdio_dvd_disckey' at dvd.h:100:1 changed:
+                  type size hasn't changed
+                  1 data member change:
+                    'unsigned int cdio_dvd_disckey::agid' offset changed from 30 to 22 (in bits) (by -8 bits)
+
+              type of 'cdio_dvd_physical_t physical' changed:
+                underlying type 'struct cdio_dvd_physical' at dvd.h:86:1 changed:
+                  type size hasn't changed
+                  1 data member change:
+                    type of 'cdio_dvd_layer_t cdio_dvd_physical::layer[4]' changed:
+                      array element type 'typedef cdio_dvd_layer_t' changed: 
+                        underlying type 'struct cdio_dvd_layer' at dvd.h:65:1 changed:
+                          type size hasn't changed
+                          8 data member changes:
+                            'unsigned int cdio_dvd_layer::track_density' offset changed from 21 to 5 (in bits) (by -16 bits)
+                            'unsigned int cdio_dvd_layer::bca' offset changed from 24 to 0 (in bits) (by -24 bits)
+                            'unsigned int cdio_dvd_layer::disc_size' offset changed from 24 to 16 (in bits) (by -8 bits)
+                            'unsigned int cdio_dvd_layer::linear_density' offset changed from 25 to 1 (in bits) (by -24 bits)
+                            'unsigned int cdio_dvd_layer::nlayers' offset changed from 25 to 9 (in bits) (by -16 bits)
+                            'unsigned int cdio_dvd_layer::track_path' offset changed from 27 to 11 (in bits) (by -16 bits)
+                            'unsigned int cdio_dvd_layer::layer_type' offset changed from 28 to 12 (in bits) (by -16 bits)
+                            'unsigned int cdio_dvd_layer::min_rate' offset changed from 28 to 20 (in bits) (by -8 bits)
+                      type size hasn't changed
 
 
 
diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
index 873a84cd..1cd20374 100644
--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
@@ -18,50 +18,50 @@
           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':
-                                 type size changed from 192 to 256 (in bits)
-                                 2 data member changes:
-                                  type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
-                                    underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
-                                      type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
-                                      type size changed from 128 to 192 (in bits)
-                                      1 base class change:
-                                        'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
-                                          type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
+              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':
+                                    type size changed from 192 to 256 (in bits)
+                                    2 data member changes:
+                                      type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
+                                        underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
+                                          type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
                                           type size changed from 128 to 192 (in bits)
-                                          1 data member change:
-                                           type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
-                                             type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
-                                             type size changed from 128 to 192 (in bits)
-                                             1 data member change:
-                                              type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
-                                                type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
-                                                type size changed from 128 to 192 (in bits)
-                                                1 base class insertion:
-                                                  struct std::__detail::_List_node_base
-                                                2 data member deletions:
-                                                  'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
-                                                  'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
-                                                1 data member insertion:
-                                                  'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
-                                              and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
-                                           and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
+                                          1 base class change:
+                                            'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
+                                              type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
+                                              type size changed from 128 to 192 (in bits)
+                                              1 data member change:
+                                                type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
+                                                  type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
+                                                  type size changed from 128 to 192 (in bits)
+                                                  1 data member change:
+                                                    type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
+                                                      type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
+                                                      type size changed from 128 to 192 (in bits)
+                                                      1 base class insertion:
+                                                        struct std::__detail::_List_node_base
+                                                      2 data member deletions:
+                                                        'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
+                                                        'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
+                                                      1 data member insertion:
+                                                        'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
+                                                    and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
+                                                and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
 
 
-                                  'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
+                                      'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
 
 
 
@@ -72,20 +72,20 @@
         in pointed to type 'struct sigc::internal::signal_impl':
           type size changed from 192 to 256 (in bits)
           1 data member change:
-           type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
-             type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
-             type size changed from 128 to 192 (in bits)
-             1 base class change:
-               'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
-                 type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
-                 type size changed from 128 to 192 (in bits)
-                 1 data member change:
-                  type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
-                    type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
-                    type size changed from 128 to 192 (in bits)
-                    1 data member change:
-                     name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
-                  and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
+            type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
+              type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
+              type size changed from 128 to 192 (in bits)
+              1 base class change:
+                'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
+                  type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
+                  type size changed from 128 to 192 (in bits)
+                  1 data member change:
+                    type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
+                      type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
+                      type size changed from 128 to 192 (in bits)
+                      1 data member change:
+                        name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
+                    and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
 
 
 
diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
index a0cc67c2..b23de5ae 100644
--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
@@ -45,19 +45,19 @@
             1 data member insertion:
               'SSLAuthType SSLCipherSuiteInfoStr::authType', at offset 736 (in bits) at sslt.h:250:1
             1 data member changes (3 filtered):
-             type of 'SSLAuthType SSLCipherSuiteInfoStr::authAlgorithm' changed:
-               underlying type 'enum __anonymous_enum__' at sslt.h:87:1 changed:
-                 type size hasn't changed
-                 1 enumerator deletion:
-                   '__anonymous_enum__::ssl_auth_rsa' value '1'
-                 7 enumerator insertions:
-                   '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
-                   '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
-                   '__anonymous_enum__::ssl_auth_ecdh_ecdsa' value '6'
-                   '__anonymous_enum__::ssl_auth_rsa_sign' value '7'
-                   '__anonymous_enum__::ssl_auth_rsa_pss' value '8'
-                   '__anonymous_enum__::ssl_auth_psk' value '9'
-                   '__anonymous_enum__::ssl_auth_size' value '10'
+              type of 'SSLAuthType SSLCipherSuiteInfoStr::authAlgorithm' changed:
+                underlying type 'enum __anonymous_enum__' at sslt.h:87:1 changed:
+                  type size hasn't changed
+                  1 enumerator deletion:
+                    '__anonymous_enum__::ssl_auth_rsa' value '1'
+                  7 enumerator insertions:
+                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
+                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
+                    '__anonymous_enum__::ssl_auth_ecdh_ecdsa' value '6'
+                    '__anonymous_enum__::ssl_auth_rsa_sign' value '7'
+                    '__anonymous_enum__::ssl_auth_rsa_pss' value '8'
+                    '__anonymous_enum__::ssl_auth_psk' value '9'
+                    '__anonymous_enum__::ssl_auth_size' value '10'
 
 
 
@@ -67,9 +67,9 @@
     [C] 'const PRUint16 SSL_ImplementedCiphers[74]' was changed to 'const PRUint16 SSL_ImplementedCiphers[69]' at sslenum.c:51:1:
       size of symbol changed from 148 to 138
       type of variable changed:
-       type name changed from 'PRUint16[74]' to 'const PRUint16[69]'
-       array type size changed from 1184 to 1104
-       array type subrange 1 changed length from 74 to 69
+        type name changed from 'PRUint16[74]' to 'const PRUint16[69]'
+        array type size changed from 1184 to 1104
+        array type subrange 1 changed length from 74 to 69
 
 
 ================ end of changes of 'libssl3.so'===============
@@ -86,33 +86,33 @@
           underlying type 'struct NSSCMSContentInfoStr' at cmst.h:131:1 changed:
             type size hasn't changed
             1 data member changes (2 filtered):
-             type of 'NSSCMSContent NSSCMSContentInfoStr::content' changed:
-               underlying type 'union NSSCMSContentUnion' at cmst.h:118:1 changed:
-                 type size hasn't changed
-                 1 data member changes (3 filtered):
-                  type of 'NSSCMSEncryptedData* NSSCMSContentUnion::encryptedData' changed:
-                    in pointed to type 'typedef NSSCMSEncryptedData' at cmst.h:65:1:
-                      underlying type 'struct NSSCMSEncryptedDataStr' at cmst.h:468:1 changed:
-                        type size hasn't changed
-                        1 data member changes (1 filtered):
-                         type of 'NSSCMSAttribute** NSSCMSEncryptedDataStr::unprotectedAttr' changed:
-                           in pointed to type 'NSSCMSAttribute*':
-                             in pointed to type 'typedef NSSCMSAttribute' at cmst.h:69:1:
-                               underlying type 'struct NSSCMSAttributeStr' at cmst.h:487:1 changed:
-                                 type size hasn't changed
-                                 1 data member change:
-                                  type of 'SECOidData* NSSCMSAttributeStr::typeTag' changed:
-                                    in pointed to type 'typedef SECOidData' at secoidt.h:16:1:
-                                      underlying type 'struct SECOidDataStr' at secoidt.h:500:1 changed:
-                                        type size hasn't changed
-                                        1 data member change:
-                                         type of 'SECOidTag SECOidDataStr::offset' changed:
-                                           underlying type 'enum __anonymous_enum__1' at secoidt.h:34:1 changed:
-                                             type size hasn't changed
-                                             1 enumerator insertion:
-                                               '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
-                                             1 enumerator change:
-                                               '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
+              type of 'NSSCMSContent NSSCMSContentInfoStr::content' changed:
+                underlying type 'union NSSCMSContentUnion' at cmst.h:118:1 changed:
+                  type size hasn't changed
+                  1 data member changes (3 filtered):
+                    type of 'NSSCMSEncryptedData* NSSCMSContentUnion::encryptedData' changed:
+                      in pointed to type 'typedef NSSCMSEncryptedData' at cmst.h:65:1:
+                        underlying type 'struct NSSCMSEncryptedDataStr' at cmst.h:468:1 changed:
+                          type size hasn't changed
+                          1 data member changes (1 filtered):
+                            type of 'NSSCMSAttribute** NSSCMSEncryptedDataStr::unprotectedAttr' changed:
+                              in pointed to type 'NSSCMSAttribute*':
+                                in pointed to type 'typedef NSSCMSAttribute' at cmst.h:69:1:
+                                  underlying type 'struct NSSCMSAttributeStr' at cmst.h:487:1 changed:
+                                    type size hasn't changed
+                                    1 data member change:
+                                      type of 'SECOidData* NSSCMSAttributeStr::typeTag' changed:
+                                        in pointed to type 'typedef SECOidData' at secoidt.h:16:1:
+                                          underlying type 'struct SECOidDataStr' at secoidt.h:500:1 changed:
+                                            type size hasn't changed
+                                            1 data member change:
+                                              type of 'SECOidTag SECOidDataStr::offset' changed:
+                                                underlying type 'enum __anonymous_enum__1' at secoidt.h:34:1 changed:
+                                                  type size hasn't changed
+                                                  1 enumerator insertion:
+                                                    '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
+                                                  1 enumerator change:
+                                                    '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
 
 
 
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
index c247ef95..163c176c 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
@@ -25,40 +25,40 @@
           underlying type 'struct QXLInstance' at spice.h:259:1 changed:
             type size hasn't changed
             1 data member change:
-             type of 'QXLState* QXLInstance::st' changed:
-               in pointed to type 'typedef QXLState' at spice-qxl.h:35:1:
-                 underlying type 'struct QXLState' at reds.h:93:1 changed:
-                   type size hasn't changed
-                   1 data member change:
-                    type of 'RedDispatcher* QXLState::dispatcher' changed:
-                      in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
-                        underlying type 'struct RedDispatcher' at red_dispatcher.c:53:1 changed:
-                          type size changed from 3264 to 3328 (in bits)
-                          13 data member changes:
-                           type of 'QXLInstance* RedDispatcher::qxl' changed:
-                             in pointed to type 'typedef QXLInstance' at spice-qxl.h:34:1:
-                               underlying type 'struct QXLInstance' changed; details are being reported
-
-                           type of 'Dispatcher RedDispatcher::dispatcher' changed:
-                             underlying type 'struct Dispatcher' at dispatcher.h:22:1 changed:
-                               type size changed from 960 to 1024 (in bits)
-                               1 data member insertion:
-                                 'dispatcher_handle_any_message Dispatcher::any_handler', at offset 960 (in bits) at dispatcher.h:56:1
-
-                           'pthread_t RedDispatcher::worker_thread' offset changed from 2048 to 2112 (in bits) (by +64 bits)
-                           'uint32_t RedDispatcher::pending' offset changed from 2112 to 2176 (in bits) (by +64 bits)
-                           'int RedDispatcher::primary_active' offset changed from 2144 to 2208 (in bits) (by +64 bits)
-                           'int RedDispatcher::x_res' offset changed from 2176 to 2240 (in bits) (by +64 bits)
-                           'int RedDispatcher::y_res' offset changed from 2208 to 2272 (in bits) (by +64 bits)
-                           'int RedDispatcher::use_hardware_cursor' offset changed from 2240 to 2304 (in bits) (by +64 bits)
-                           type of 'RedDispatcher* RedDispatcher::next' changed:
-                             in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
-                               underlying type 'struct RedDispatcher' changed; details are being reported
-                           and offset changed from 2304 to 2368 (in bits) (by +64 bits)
-                           'Ring RedDispatcher::async_commands' offset changed from 2368 to 2432 (in bits) (by +64 bits)
-                           'pthread_mutex_t RedDispatcher::async_lock' offset changed from 2496 to 2560 (in bits) (by +64 bits)
-                           'QXLDevSurfaceCreate RedDispatcher::surface_create' offset changed from 2816 to 2880 (in bits) (by +64 bits)
-                           'unsigned int RedDispatcher::max_monitors' offset changed from 3200 to 3264 (in bits) (by +64 bits)
+              type of 'QXLState* QXLInstance::st' changed:
+                in pointed to type 'typedef QXLState' at spice-qxl.h:35:1:
+                  underlying type 'struct QXLState' at reds.h:93:1 changed:
+                    type size hasn't changed
+                    1 data member change:
+                      type of 'RedDispatcher* QXLState::dispatcher' changed:
+                        in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
+                          underlying type 'struct RedDispatcher' at red_dispatcher.c:53:1 changed:
+                            type size changed from 3264 to 3328 (in bits)
+                            13 data member changes:
+                              type of 'QXLInstance* RedDispatcher::qxl' changed:
+                                in pointed to type 'typedef QXLInstance' at spice-qxl.h:34:1:
+                                  underlying type 'struct QXLInstance' changed; details are being reported
+
+                              type of 'Dispatcher RedDispatcher::dispatcher' changed:
+                                underlying type 'struct Dispatcher' at dispatcher.h:22:1 changed:
+                                  type size changed from 960 to 1024 (in bits)
+                                  1 data member insertion:
+                                    'dispatcher_handle_any_message Dispatcher::any_handler', at offset 960 (in bits) at dispatcher.h:56:1
+
+                              'pthread_t RedDispatcher::worker_thread' offset changed from 2048 to 2112 (in bits) (by +64 bits)
+                              'uint32_t RedDispatcher::pending' offset changed from 2112 to 2176 (in bits) (by +64 bits)
+                              'int RedDispatcher::primary_active' offset changed from 2144 to 2208 (in bits) (by +64 bits)
+                              'int RedDispatcher::x_res' offset changed from 2176 to 2240 (in bits) (by +64 bits)
+                              'int RedDispatcher::y_res' offset changed from 2208 to 2272 (in bits) (by +64 bits)
+                              'int RedDispatcher::use_hardware_cursor' offset changed from 2240 to 2304 (in bits) (by +64 bits)
+                              type of 'RedDispatcher* RedDispatcher::next' changed:
+                                in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
+                                  underlying type 'struct RedDispatcher' changed; details are being reported
+                              and offset changed from 2304 to 2368 (in bits) (by +64 bits)
+                              'Ring RedDispatcher::async_commands' offset changed from 2368 to 2432 (in bits) (by +64 bits)
+                              'pthread_mutex_t RedDispatcher::async_lock' offset changed from 2496 to 2560 (in bits) (by +64 bits)
+                              'QXLDevSurfaceCreate RedDispatcher::surface_create' offset changed from 2816 to 2880 (in bits) (by +64 bits)
+                              'unsigned int RedDispatcher::max_monitors' offset changed from 3200 to 3264 (in bits) (by +64 bits)
 
 
 
@@ -164,269 +164,269 @@
           underlying type 'struct RedsState' at reds-private.h:127:1 changed:
             type size hasn't changed
             2 data member changes (1 filtered):
-             type of 'VDIPortState RedsState::agent_state' changed:
-               underlying type 'struct VDIPortState' at reds-private.h:46:1 changed:
-                 type size hasn't changed
-                 1 data member change:
-                  type of 'SpiceCharDeviceState* VDIPortState::base' changed:
-                    in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
-                      underlying type 'struct SpiceCharDeviceState' at char_device.c:47:1 changed:
-                        type size changed from 1536 to 1600 (in bits)
-                        1 data member insertion:
-                          'uint64_t SpiceCharDeviceState::cur_pool_size', at offset 384 (in bits) at char_device.c:57:1
-                        12 data member changes:
-                         'SpiceCharDeviceWriteBuffer* SpiceCharDeviceState::cur_write_buf' offset changed from 384 to 448 (in bits) (by +64 bits)
-                         'uint8_t* SpiceCharDeviceState::cur_write_buf_pos' offset changed from 448 to 512 (in bits) (by +64 bits)
-                         'SpiceTimer* SpiceCharDeviceState::write_to_dev_timer' offset changed from 512 to 576 (in bits) (by +64 bits)
-                         'uint64_t SpiceCharDeviceState::num_self_tokens' offset changed from 576 to 640 (in bits) (by +64 bits)
-                         'Ring SpiceCharDeviceState::clients' offset changed from 640 to 704 (in bits) (by +64 bits)
-                         'uint32_t SpiceCharDeviceState::num_clients' offset changed from 768 to 832 (in bits) (by +64 bits)
-                         'uint64_t SpiceCharDeviceState::client_tokens_interval' offset changed from 832 to 896 (in bits) (by +64 bits)
-                         type of 'SpiceCharDeviceInstance* SpiceCharDeviceState::sin' changed:
-                           in pointed to type 'typedef SpiceCharDeviceInstance' at spice-char.h:33:1:
-                             underlying type 'struct SpiceCharDeviceInstance' at spice.h:416:1 changed:
-                               type size hasn't changed
-                               1 data member change:
-                                type of 'SpiceCharDeviceState* SpiceCharDeviceInstance::st' changed:
-                                  in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
-                                    underlying type 'struct SpiceCharDeviceState' changed; details are being reported
-
-                         and offset changed from 896 to 960 (in bits) (by +64 bits)
-                         'int SpiceCharDeviceState::during_read_from_device' offset changed from 960 to 1024 (in bits) (by +64 bits)
-                         'int SpiceCharDeviceState::during_write_to_device' offset changed from 992 to 1056 (in bits) (by +64 bits)
-                         type of 'SpiceCharDeviceCallbacks SpiceCharDeviceState::cbs' changed:
-                           underlying type 'struct SpiceCharDeviceCallbacks' at char_device.h:81:1 changed:
-                             type size hasn't changed
-                             1 data member change:
-                              type of 'SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)* SpiceCharDeviceCallbacks::read_one_msg_from_device' changed:
-                                in pointed to type 'function type SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)':
-                                  parameter 1 of type 'SpiceCharDeviceInstance*' has sub-type changes:
-                                    pointed to type 'typedef SpiceCharDeviceInstance' changed at spice.h:399:1, as reported earlier
-
-                         and offset changed from 1024 to 1088 (in bits) (by +64 bits)
-                         'void* SpiceCharDeviceState::opaque' offset changed from 1472 to 1536 (in bits) (by +64 bits)
-
-                 no data member changes (3 filtered);
-
-             type of 'MainChannel* RedsState::main_channel' changed:
-               in pointed to type 'typedef MainChannel' at main_channel.h:48:1:
-                 underlying type 'struct MainChannel' at main_channel.h:36:1 changed:
-                   type size hasn't changed
-                   1 data member change:
-                    type of 'RedChannel MainChannel::base' changed:
-                      underlying type 'struct RedChannel' at red_channel.h:303:1 changed:
-                        type size hasn't changed
-                        2 data member changes (1 filtered):
-                         type of 'ChannelCbs RedChannel::channel_cbs' changed:
-                           underlying type 'struct {channel_configure_socket_proc config_socket; channel_disconnect_proc on_disconnect; channel_send_pipe_item_proc send_item; channel_hold_pipe_item_proc hold_item; channel_release_pipe_item_proc release_item; channel_alloc_msg_recv_buf_proc alloc_recv_buf; channel_release_msg_recv_buf_proc release_recv_buf; channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark; channel_handle_migrate_data_proc handle_migrate_data; channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial;}' at red_channel.h:195:1 changed:
-                             type size hasn't changed
-                             10 data member changes:
-                              type of 'channel_configure_socket_proc config_socket' changed:
-                                underlying type 'int (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type int (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      in pointed to type 'typedef RedChannelClient' at red_channel.h:131:1:
-                                        underlying type 'struct RedChannelClient' at red_channel.h:247:1 changed:
-                                          type size hasn't changed
-                                          2 data member changes (2 filtered):
-                                           type of 'RedChannel* RedChannelClient::channel' changed:
-                                             in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
-                                               underlying type 'struct RedChannel' changed; details are being reported
-
-                                           type of 'RedsStream* RedChannelClient::stream' changed:
-                                             in pointed to type 'typedef RedsStream' at reds_stream.h:31:1:
-                                               underlying type 'struct RedsStream' at reds.h:68:1 changed:
-                                                 type size changed from 1280 to 256 (in bits)
-                                                 5 data member deletions:
-                                                   'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
-                                                   'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
-                                                   'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
-                                                   'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
-                                                   'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
-                                                 1 data member change:
-                                                  type of 'SSL* RedsStream::ssl' changed:
-                                                    in pointed to type 'typedef SSL' at reds_stream.h:32:1:
-                                                      typedef name changed from SSL to RedsStreamPrivate at reds_stream.h:32:1
-                                                      underlying type 'struct ssl_st' at ssl.h:1065:1 changed:
-                                                        type name changed from 'ssl_st' to 'RedsStreamPrivate'
-                                                        type size changed from 5504 to 0 (in bits)
-                                                        94 data member deletions:
-                                                          'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
-                                                          'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
-                                                          'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
-                                                          'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
-                                                          'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
-                                                          'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
-                                                          'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
-                                                          'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
-                                                          'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
-                                                          'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
-                                                          'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
-                                                          'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
-                                                          'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
-                                                          'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
-                                                          'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
-                                                          'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
-                                                          'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
-                                                          'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
-                                                          'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
-                                                          'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
-                                                          'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
-                                                          'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
-                                                          'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
-                                                          'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
-                                                          'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
-                                                          'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
-                                                          'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
-                                                          'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
-                                                          'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
-                                                          'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
-                                                          'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
-                                                          'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
-                                                          'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
-                                                          'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
-                                                          'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
-                                                          'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
-                                                          'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
-                                                          'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
-                                                          'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
-                                                          'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
-                                                          'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
-                                                          'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
-                                                          'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
-                                                          'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
-                                                          'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
-                                                          'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
-                                                          'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
-                                                          'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
-                                                          'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
-                                                          'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
-                                                          'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
-                                                          'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
-                                                          'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
-                                                          'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
-                                                          'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
-                                                          'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
-                                                          'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
-                                                          'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
-                                                          'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
-                                                          'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
-                                                          'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
-                                                          'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
-                                                          'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
-                                                          'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
-                                                          'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
-                                                          'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
-                                                          'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
-                                                          'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
-                                                          'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
-                                                          'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
-                                                          'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
-                                                          'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
-                                                          'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
-                                                          'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
-                                                          'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
-                                                          'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
-                                                          'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
-                                                          'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
-                                                          'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
-                                                          'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
-                                                          'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
-                                                          'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
-                                                          'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
-                                                          'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
-                                                          'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
-                                                          'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
-                                                          'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
-                                                          'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
-                                                          'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
-                                                          'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
-                                                          'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
-                                                          'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
-                                                          'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
-                                                          'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
-                                                  and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
-
-
-                              type of 'channel_disconnect_proc on_disconnect' changed:
-                                underlying type 'void (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_send_pipe_item_proc send_item' changed:
-                                underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_hold_pipe_item_proc hold_item' changed:
-                                underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_release_pipe_item_proc release_item' changed:
-                                underlying type 'void (RedChannelClient*, PipeItem*, int)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*, int)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_alloc_msg_recv_buf_proc alloc_recv_buf' changed:
-                                underlying type 'uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)*' changed:
-                                  in pointed to type 'function type uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_release_msg_recv_buf_proc release_recv_buf' changed:
-                                underlying type 'void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark' changed:
-                                underlying type 'int (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type int (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_handle_migrate_data_proc handle_migrate_data' changed:
-                                underlying type 'int (RedChannelClient*, typedef uint32_t, void*)*' changed:
-                                  in pointed to type 'function type int (RedChannelClient*, typedef uint32_t, void*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial' changed:
-                                underlying type 'typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)*' changed:
-                                  in pointed to type 'function type typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-
-                         type of 'ClientCbs RedChannel::client_cbs' changed:
-                           underlying type 'struct {channel_client_connect_proc connect; channel_client_disconnect_proc disconnect; channel_client_migrate_proc migrate;}' at red_channel.h:213:1 changed:
-                             type size hasn't changed
-                             3 data member changes:
-                              type of 'channel_client_connect_proc connect' changed:
-                                underlying type 'void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)*' changed:
-                                  in pointed to type 'function type void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)':
-                                    parameter 1 of type 'RedChannel*' has sub-type changes:
-                                      in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
-                                        underlying type 'struct RedChannel' changed; details are being reported
-                                    parameter 3 of type 'RedsStream*' has sub-type changes:
-                                      pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
-
-                              type of 'channel_client_disconnect_proc disconnect' changed:
-                                underlying type 'void (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'channel_client_migrate_proc migrate' changed:
-                                underlying type 'void (RedChannelClient*)*' changed:
-                                  in pointed to type 'function type void (RedChannelClient*)':
-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+              type of 'VDIPortState RedsState::agent_state' changed:
+                underlying type 'struct VDIPortState' at reds-private.h:46:1 changed:
+                  type size hasn't changed
+                  1 data member change:
+                    type of 'SpiceCharDeviceState* VDIPortState::base' changed:
+                      in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
+                        underlying type 'struct SpiceCharDeviceState' at char_device.c:47:1 changed:
+                          type size changed from 1536 to 1600 (in bits)
+                          1 data member insertion:
+                            'uint64_t SpiceCharDeviceState::cur_pool_size', at offset 384 (in bits) at char_device.c:57:1
+                          12 data member changes:
+                            'SpiceCharDeviceWriteBuffer* SpiceCharDeviceState::cur_write_buf' offset changed from 384 to 448 (in bits) (by +64 bits)
+                            'uint8_t* SpiceCharDeviceState::cur_write_buf_pos' offset changed from 448 to 512 (in bits) (by +64 bits)
+                            'SpiceTimer* SpiceCharDeviceState::write_to_dev_timer' offset changed from 512 to 576 (in bits) (by +64 bits)
+                            'uint64_t SpiceCharDeviceState::num_self_tokens' offset changed from 576 to 640 (in bits) (by +64 bits)
+                            'Ring SpiceCharDeviceState::clients' offset changed from 640 to 704 (in bits) (by +64 bits)
+                            'uint32_t SpiceCharDeviceState::num_clients' offset changed from 768 to 832 (in bits) (by +64 bits)
+                            'uint64_t SpiceCharDeviceState::client_tokens_interval' offset changed from 832 to 896 (in bits) (by +64 bits)
+                            type of 'SpiceCharDeviceInstance* SpiceCharDeviceState::sin' changed:
+                              in pointed to type 'typedef SpiceCharDeviceInstance' at spice-char.h:33:1:
+                                underlying type 'struct SpiceCharDeviceInstance' at spice.h:416:1 changed:
+                                  type size hasn't changed
+                                  1 data member change:
+                                    type of 'SpiceCharDeviceState* SpiceCharDeviceInstance::st' changed:
+                                      in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
+                                        underlying type 'struct SpiceCharDeviceState' changed; details are being reported
+
+                            and offset changed from 896 to 960 (in bits) (by +64 bits)
+                            'int SpiceCharDeviceState::during_read_from_device' offset changed from 960 to 1024 (in bits) (by +64 bits)
+                            'int SpiceCharDeviceState::during_write_to_device' offset changed from 992 to 1056 (in bits) (by +64 bits)
+                            type of 'SpiceCharDeviceCallbacks SpiceCharDeviceState::cbs' changed:
+                              underlying type 'struct SpiceCharDeviceCallbacks' at char_device.h:81:1 changed:
+                                type size hasn't changed
+                                1 data member change:
+                                  type of 'SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)* SpiceCharDeviceCallbacks::read_one_msg_from_device' changed:
+                                    in pointed to type 'function type SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)':
+                                      parameter 1 of type 'SpiceCharDeviceInstance*' has sub-type changes:
+                                        pointed to type 'typedef SpiceCharDeviceInstance' changed at spice.h:399:1, as reported earlier
+
+                            and offset changed from 1024 to 1088 (in bits) (by +64 bits)
+                            'void* SpiceCharDeviceState::opaque' offset changed from 1472 to 1536 (in bits) (by +64 bits)
+
+                  no data member changes (3 filtered);
+
+              type of 'MainChannel* RedsState::main_channel' changed:
+                in pointed to type 'typedef MainChannel' at main_channel.h:48:1:
+                  underlying type 'struct MainChannel' at main_channel.h:36:1 changed:
+                    type size hasn't changed
+                    1 data member change:
+                      type of 'RedChannel MainChannel::base' changed:
+                        underlying type 'struct RedChannel' at red_channel.h:303:1 changed:
+                          type size hasn't changed
+                          2 data member changes (1 filtered):
+                            type of 'ChannelCbs RedChannel::channel_cbs' changed:
+                              underlying type 'struct {channel_configure_socket_proc config_socket; channel_disconnect_proc on_disconnect; channel_send_pipe_item_proc send_item; channel_hold_pipe_item_proc hold_item; channel_release_pipe_item_proc release_item; channel_alloc_msg_recv_buf_proc alloc_recv_buf; channel_release_msg_recv_buf_proc release_recv_buf; channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark; channel_handle_migrate_data_proc handle_migrate_data; channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial;}' at red_channel.h:195:1 changed:
+                                type size hasn't changed
+                                10 data member changes:
+                                  type of 'channel_configure_socket_proc config_socket' changed:
+                                    underlying type 'int (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type int (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          in pointed to type 'typedef RedChannelClient' at red_channel.h:131:1:
+                                            underlying type 'struct RedChannelClient' at red_channel.h:247:1 changed:
+                                              type size hasn't changed
+                                              2 data member changes (2 filtered):
+                                                type of 'RedChannel* RedChannelClient::channel' changed:
+                                                  in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
+                                                    underlying type 'struct RedChannel' changed; details are being reported
+
+                                                type of 'RedsStream* RedChannelClient::stream' changed:
+                                                  in pointed to type 'typedef RedsStream' at reds_stream.h:31:1:
+                                                    underlying type 'struct RedsStream' at reds.h:68:1 changed:
+                                                      type size changed from 1280 to 256 (in bits)
+                                                      5 data member deletions:
+                                                        'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
+                                                        'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
+                                                        'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
+                                                        'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
+                                                        'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
+                                                      1 data member change:
+                                                        type of 'SSL* RedsStream::ssl' changed:
+                                                          in pointed to type 'typedef SSL' at reds_stream.h:32:1:
+                                                            typedef name changed from SSL to RedsStreamPrivate at reds_stream.h:32:1
+                                                            underlying type 'struct ssl_st' at ssl.h:1065:1 changed:
+                                                              type name changed from 'ssl_st' to 'RedsStreamPrivate'
+                                                              type size changed from 5504 to 0 (in bits)
+                                                              94 data member deletions:
+                                                                'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
+                                                                'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
+                                                                'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
+                                                                'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
+                                                                'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
+                                                                'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
+                                                                'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
+                                                                'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
+                                                                'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
+                                                                'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
+                                                                'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
+                                                                'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
+                                                                'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
+                                                                'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
+                                                                'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
+                                                                'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
+                                                                'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
+                                                                'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
+                                                                'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
+                                                                'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
+                                                                'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
+                                                                'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
+                                                                'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
+                                                                'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
+                                                                'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
+                                                                'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
+                                                                'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
+                                                                'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
+                                                                'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
+                                                                'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
+                                                                'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
+                                                                'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
+                                                                'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
+                                                                'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
+                                                                'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
+                                                                'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
+                                                                'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
+                                                                'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
+                                                                'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
+                                                                'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
+                                                                'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
+                                                                'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
+                                                                'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
+                                                                'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
+                                                                'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
+                                                                'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
+                                                                'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
+                                                                'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
+                                                                'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
+                                                                'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
+                                                                'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
+                                                                'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
+                                                                'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
+                                                                'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
+                                                                'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
+                                                                'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
+                                                                'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
+                                                                'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
+                                                                'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
+                                                                'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
+                                                                'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
+                                                                'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
+                                                                'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
+                                                                'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
+                                                                'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
+                                                                'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
+                                                                'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
+                                                                'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
+                                                                'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
+                                                                'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
+                                                                'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
+                                                                'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
+                                                                'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
+                                                                'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
+                                                                'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
+                                                                'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
+                                                                'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
+                                                                'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
+                                                                'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
+                                                                'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
+                                                                'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
+                                                                'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
+                                                                'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
+                                                                'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
+                                                                'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
+                                                                'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
+                                                                'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
+                                                                'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
+                                                                'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
+                                                                'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
+                                                                'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
+                                                                'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
+                                                                'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
+                                                                'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
+                                                        and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
+
+
+                                  type of 'channel_disconnect_proc on_disconnect' changed:
+                                    underlying type 'void (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_send_pipe_item_proc send_item' changed:
+                                    underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_hold_pipe_item_proc hold_item' changed:
+                                    underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_release_pipe_item_proc release_item' changed:
+                                    underlying type 'void (RedChannelClient*, PipeItem*, int)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*, PipeItem*, int)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_alloc_msg_recv_buf_proc alloc_recv_buf' changed:
+                                    underlying type 'uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)*' changed:
+                                      in pointed to type 'function type uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_release_msg_recv_buf_proc release_recv_buf' changed:
+                                    underlying type 'void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark' changed:
+                                    underlying type 'int (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type int (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_handle_migrate_data_proc handle_migrate_data' changed:
+                                    underlying type 'int (RedChannelClient*, typedef uint32_t, void*)*' changed:
+                                      in pointed to type 'function type int (RedChannelClient*, typedef uint32_t, void*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial' changed:
+                                    underlying type 'typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)*' changed:
+                                      in pointed to type 'function type typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+
+                            type of 'ClientCbs RedChannel::client_cbs' changed:
+                              underlying type 'struct {channel_client_connect_proc connect; channel_client_disconnect_proc disconnect; channel_client_migrate_proc migrate;}' at red_channel.h:213:1 changed:
+                                type size hasn't changed
+                                3 data member changes:
+                                  type of 'channel_client_connect_proc connect' changed:
+                                    underlying type 'void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)*' changed:
+                                      in pointed to type 'function type void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)':
+                                        parameter 1 of type 'RedChannel*' has sub-type changes:
+                                          in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
+                                            underlying type 'struct RedChannel' changed; details are being reported
+                                        parameter 3 of type 'RedsStream*' has sub-type changes:
+                                          pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
+
+                                  type of 'channel_client_disconnect_proc disconnect' changed:
+                                    underlying type 'void (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'channel_client_migrate_proc migrate' changed:
+                                    underlying type 'void (RedChannelClient*)*' changed:
+                                      in pointed to type 'function type void (RedChannelClient*)':
+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
 
 
 
@@ -531,65 +531,65 @@
           underlying type 'struct SpicePlaybackInstance' at spice.h:350:1 changed:
             type size hasn't changed
             1 data member change:
-             type of 'SpicePlaybackState* SpicePlaybackInstance::st' changed:
-               in pointed to type 'typedef SpicePlaybackState' at spice-audio.h:34:1:
-                 underlying type 'struct SpicePlaybackState' at snd_worker.c:165:1 changed:
-                   type size changed from 512 to 576 (in bits)
-                   1 data member insertion:
-                     'uint32_t SpicePlaybackState::frequency', at offset 512 (in bits) at snd_worker.c:159:1
-                   2 data member changes:
-                    type of 'SndWorker SpicePlaybackState::worker' changed:
-                      type size hasn't changed
-                      3 data member changes:
-                       type of 'RedChannel* SndWorker::base_channel' changed:
-                         pointed to type 'typedef RedChannel' changed at red_channel.h:135:1, as reported earlier
-
-                       type of 'SndChannel* SndWorker::connection' changed:
-                         in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
-                           underlying type 'struct SndChannel' at snd_worker.c:89:1 changed:
-                             type size hasn't changed
-                             6 data member changes:
-                              type of 'RedsStream* SndChannel::stream' changed:
-                                pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
-
-                              type of 'SndWorker* SndChannel::worker' changed:
-                                in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
-                                  underlying type 'struct SndWorker' changed; details are being reported
-
-                              type of 'RedChannelClient* SndChannel::channel_client' changed:
-                                pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
-
-                              type of 'snd_channel_handle_message_proc SndChannel::handle_message' changed:
-                                underlying type 'int (SndChannel*, typedef size_t, typedef uint32_t, void*)*' changed:
-                                  in pointed to type 'function type int (SndChannel*, typedef size_t, typedef uint32_t, void*)':
-                                    parameter 1 of type 'SndChannel*' has sub-type changes:
-                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
-                                        underlying type 'struct SndChannel' changed; details are being reported
-
-                              type of 'snd_channel_on_message_done_proc SndChannel::on_message_done' changed:
-                                underlying type 'void (SndChannel*)*' changed:
-                                  in pointed to type 'function type void (SndChannel*)':
-                                    parameter 1 of type 'SndChannel*' has sub-type changes:
-                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
-                                        underlying type 'struct SndChannel' changed; details are being reported
-
-                              type of 'snd_channel_cleanup_channel_proc SndChannel::cleanup' changed:
-                                underlying type 'void (SndChannel*)*' changed:
-                                  in pointed to type 'function type void (SndChannel*)':
-                                    parameter 1 of type 'SndChannel*' has sub-type changes:
-                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
-                                        underlying type 'struct SndChannel' changed; details are being reported
-
-                             no data member change (1 filtered);
-
-                       type of 'SndWorker* SndWorker::next' changed:
-                         in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
-                           underlying type 'struct SndWorker' changed; details are being reported
-
-
-                    type of 'SpicePlaybackInstance* SpicePlaybackState::sin' changed:
-                      in pointed to type 'typedef SpicePlaybackInstance' at spice-audio.h:33:1:
-                        underlying type 'struct SpicePlaybackInstance' changed; details are being reported
+              type of 'SpicePlaybackState* SpicePlaybackInstance::st' changed:
+                in pointed to type 'typedef SpicePlaybackState' at spice-audio.h:34:1:
+                  underlying type 'struct SpicePlaybackState' at snd_worker.c:165:1 changed:
+                    type size changed from 512 to 576 (in bits)
+                    1 data member insertion:
+                      'uint32_t SpicePlaybackState::frequency', at offset 512 (in bits) at snd_worker.c:159:1
+                    2 data member changes:
+                      type of 'SndWorker SpicePlaybackState::worker' changed:
+                        type size hasn't changed
+                        3 data member changes:
+                          type of 'RedChannel* SndWorker::base_channel' changed:
+                            pointed to type 'typedef RedChannel' changed at red_channel.h:135:1, as reported earlier
+
+                          type of 'SndChannel* SndWorker::connection' changed:
+                            in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                              underlying type 'struct SndChannel' at snd_worker.c:89:1 changed:
+                                type size hasn't changed
+                                6 data member changes:
+                                  type of 'RedsStream* SndChannel::stream' changed:
+                                    pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
+
+                                  type of 'SndWorker* SndChannel::worker' changed:
+                                    in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
+                                      underlying type 'struct SndWorker' changed; details are being reported
+
+                                  type of 'RedChannelClient* SndChannel::channel_client' changed:
+                                    pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
+
+                                  type of 'snd_channel_handle_message_proc SndChannel::handle_message' changed:
+                                    underlying type 'int (SndChannel*, typedef size_t, typedef uint32_t, void*)*' changed:
+                                      in pointed to type 'function type int (SndChannel*, typedef size_t, typedef uint32_t, void*)':
+                                        parameter 1 of type 'SndChannel*' has sub-type changes:
+                                          in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                                            underlying type 'struct SndChannel' changed; details are being reported
+
+                                  type of 'snd_channel_on_message_done_proc SndChannel::on_message_done' changed:
+                                    underlying type 'void (SndChannel*)*' changed:
+                                      in pointed to type 'function type void (SndChannel*)':
+                                        parameter 1 of type 'SndChannel*' has sub-type changes:
+                                          in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                                            underlying type 'struct SndChannel' changed; details are being reported
+
+                                  type of 'snd_channel_cleanup_channel_proc SndChannel::cleanup' changed:
+                                    underlying type 'void (SndChannel*)*' changed:
+                                      in pointed to type 'function type void (SndChannel*)':
+                                        parameter 1 of type 'SndChannel*' has sub-type changes:
+                                          in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
+                                            underlying type 'struct SndChannel' changed; details are being reported
+
+                                no data member change (1 filtered);
+
+                          type of 'SndWorker* SndWorker::next' changed:
+                            in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
+                              underlying type 'struct SndWorker' changed; details are being reported
+
+
+                      type of 'SpicePlaybackInstance* SpicePlaybackState::sin' changed:
+                        in pointed to type 'typedef SpicePlaybackInstance' at spice-audio.h:33:1:
+                          underlying type 'struct SpicePlaybackInstance' changed; details are being reported
 
 
 
@@ -623,19 +623,19 @@
           underlying type 'struct SpiceRecordInstance' at spice.h:380:1 changed:
             type size hasn't changed
             1 data member change:
-             type of 'SpiceRecordState* SpiceRecordInstance::st' changed:
-               in pointed to type 'typedef SpiceRecordState' at spice-audio.h:68:1:
-                 underlying type 'struct SpiceRecordState' at snd_worker.c:171:1 changed:
-                   type size changed from 512 to 576 (in bits)
-                   1 data member insertion:
-                     'uint32_t SpiceRecordState::frequency', at offset 512 (in bits) at snd_worker.c:166:1
-                   2 data member changes:
-                    type of 'SndWorker SpiceRecordState::worker' changed:
-                      details were reported earlier
-
-                    type of 'SpiceRecordInstance* SpiceRecordState::sin' changed:
-                      in pointed to type 'typedef SpiceRecordInstance' at spice-audio.h:67:1:
-                        underlying type 'struct SpiceRecordInstance' changed; details are being reported
+              type of 'SpiceRecordState* SpiceRecordInstance::st' changed:
+                in pointed to type 'typedef SpiceRecordState' at spice-audio.h:68:1:
+                  underlying type 'struct SpiceRecordState' at snd_worker.c:171:1 changed:
+                    type size changed from 512 to 576 (in bits)
+                    1 data member insertion:
+                      'uint32_t SpiceRecordState::frequency', at offset 512 (in bits) at snd_worker.c:166:1
+                    2 data member changes:
+                      type of 'SndWorker SpiceRecordState::worker' changed:
+                        details were reported earlier
+
+                      type of 'SpiceRecordInstance* SpiceRecordState::sin' changed:
+                        in pointed to type 'typedef SpiceRecordInstance' at spice-audio.h:67:1:
+                          underlying type 'struct SpiceRecordInstance' changed; details are being reported
 
 
 
diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
index d0381ce5..e192f2b2 100644
--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
@@ -33,25 +33,25 @@
             underlying type 'class tbb::internal::concurrent_queue_base_v3' at _concurrent_queue_impl.h:816: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) (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 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:
-                         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
+                          'tbb::spin_mutex tbb::internal::concurrent_monitor::mutex_ec' offset changed from 0 to 8 (in bits) (by +8 bits)
 
-                      type size hasn't changed
+                      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
 
 
 
@@ -78,124 +78,124 @@
           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):
-           type of 'char tbb::task_group_context::_leading_padding[80]' changed:
-             type name changed from 'char[80]' to 'char[72]'
-             array type size changed from 640 to 576
-             array type subrange 1 changed length from 80 to 72
-
-           type of 'tbb::internal::generic_scheduler* tbb::task_group_context::my_owner' changed:
-             in pointed to type 'class tbb::internal::generic_scheduler' at scheduler.h:110:1:
-               type size changed from 3136 to 3072 (in bits)
-               1 base class change:
-                 'struct tbb::internal::scheduler_state' at scheduler.h:73:1 changed:
-                   type size changed from 576 to 704 (in bits)
-                   2 data member insertions:
-                     'volatile intptr_t* tbb::internal::scheduler_state::my_ref_top_priority', at offset 576 (in bits) at scheduler.h:96:1
-                     'volatile uintptr_t* tbb::internal::scheduler_state::my_ref_reload_epoch', at offset 640 (in bits) at scheduler.h:99:1
-                   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 of 'char tbb::task_group_context::_leading_padding[80]' changed:
+              type name changed from 'char[80]' to 'char[72]'
+              array type size changed from 640 to 576
+              array type subrange 1 changed length from 80 to 72
+
+            type of 'tbb::internal::generic_scheduler* tbb::task_group_context::my_owner' changed:
+              in pointed to type 'class tbb::internal::generic_scheduler' at scheduler.h:110:1:
+                type size changed from 3136 to 3072 (in bits)
+                1 base class change:
+                  'struct tbb::internal::scheduler_state' at scheduler.h:73:1 changed:
+                    type size changed from 576 to 704 (in bits)
+                    2 data member insertions:
+                      'volatile intptr_t* tbb::internal::scheduler_state::my_ref_top_priority', at offset 576 (in bits) at scheduler.h:96:1
+                      'volatile uintptr_t* tbb::internal::scheduler_state::my_ref_reload_epoch', at offset 640 (in bits) at scheduler.h:99:1
+                    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:
+                            struct tbb::internal::padded<tbb::internal::arena_base, 128ul> at tbb_stddef.h:251:1
+                          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 base class deletion:
-                          struct tbb::internal::padded<tbb::internal::arena_base> at tbb_stddef.h:261:1
-                        1 base class insertion:
-                          struct tbb::internal::padded<tbb::internal::arena_base, 128ul> at tbb_stddef.h:251:1
                         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:
-                             struct tbb::internal::padded<tbb::internal::unpadded_mail_outbox, 128ul> at tbb_stddef.h:251:1
-                           1 data member deletion:
-                             'char tbb::internal::mail_outbox::pad[104]', at offset 136 (in bits) at mailbox.h:114:1
-
-
-
-               1 member function deletion:
-                 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
-
-               1 member function insertion:
-                 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&)' at scheduler.h:362:1, virtual at voffset 7/7
-
-               3 data member deletions:
-                 'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
-                 'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
-                 '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) (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 (in bits)
-                    1 data member insertion:
-                      'bool tbb::internal::market::join_workers', at offset 384 (in bits) at market.h:88:1
-                    7 data member changes:
-                     type of 'tbb::internal::market::arenas_list_mutex_type tbb::internal::market::my_arenas_list_mutex' changed:
-                       underlying type 'typedef tbb::internal::scheduler_mutex_type' at scheduler_common.h:123:1 changed:
-                         typedef name changed from tbb::internal::scheduler_mutex_type to tbb::spin_rw_mutex at spin_rw_mutex.h:38:1
-                         underlying type 'class tbb::spin_mutex' at spin_mutex.h:47:1 changed:
-                           type name changed from 'tbb::spin_mutex' to 'tbb::spin_rw_mutex_v3'
-                           type size changed from 8 to 64 (in bits)
-                           1 base class insertion:
-                             class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
-                           1 data member change:
-                            type of '__TBB_atomic_flag tbb::spin_mutex::flag' changed:
-                              typedef name changed from __TBB_atomic_flag to tbb::spin_rw_mutex_v3::state_t at spin_rw_mutex.h:214:1
-                              underlying type 'typedef __TBB_Flag' at tbb_machine.h:875:1 changed:
-                                typedef name changed from __TBB_Flag to intptr_t at stdint.h:119:1
-                                underlying type 'unsigned char' changed:
-                                  type name changed from 'unsigned char' to 'long int'
-                                  type size changed from 8 to 64 (in bits)
-                            and name of 'tbb::spin_mutex::flag' changed to 'tbb::spin_rw_mutex_v3::state' at spin_rw_mutex.h:224:1
-
-                     '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*'
+                          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:
+                                struct tbb::internal::padded<tbb::internal::unpadded_mail_outbox, 128ul> at tbb_stddef.h:251:1
+                              1 data member deletion:
+                                'char tbb::internal::mail_outbox::pad[104]', at offset 136 (in bits) at mailbox.h:114:1
+
+
+
+                1 member function deletion:
+                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
+
+                1 member function insertion:
+                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&)' at scheduler.h:362:1, virtual at voffset 7/7
+
+                3 data member deletions:
+                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
+                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
+                  '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) (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 (in bits)
+                      1 data member insertion:
+                        'bool tbb::internal::market::join_workers', at offset 384 (in bits) at market.h:88:1
+                      7 data member changes:
+                        type of 'tbb::internal::market::arenas_list_mutex_type tbb::internal::market::my_arenas_list_mutex' changed:
+                          underlying type 'typedef tbb::internal::scheduler_mutex_type' at scheduler_common.h:123:1 changed:
+                            typedef name changed from tbb::internal::scheduler_mutex_type to tbb::spin_rw_mutex at spin_rw_mutex.h:38:1
+                            underlying type 'class tbb::spin_mutex' at spin_mutex.h:47:1 changed:
+                              type name changed from 'tbb::spin_mutex' to 'tbb::spin_rw_mutex_v3'
+                              type size changed from 8 to 64 (in bits)
+                              1 base class insertion:
+                                class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
+                              1 data member change:
+                                type of '__TBB_atomic_flag tbb::spin_mutex::flag' changed:
+                                  typedef name changed from __TBB_atomic_flag to tbb::spin_rw_mutex_v3::state_t at spin_rw_mutex.h:214:1
+                                  underlying type 'typedef __TBB_Flag' at tbb_machine.h:875:1 changed:
+                                    typedef name changed from __TBB_Flag to intptr_t at stdint.h:119:1
+                                    underlying type 'unsigned char' changed:
+                                      type name changed from 'unsigned char' to 'long int'
+                                      type size changed from 8 to 64 (in bits)
+                                and name of 'tbb::spin_mutex::flag' changed to 'tbb::spin_rw_mutex_v3::state' at spin_rw_mutex.h:224:1
+
+                        '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
-
-                       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)
+                            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*'
+                                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:
diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
index 89c8efa3..203b8473 100644
--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
@@ -49,10 +49,10 @@
           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 (2 filtered):
-           type of 'char tbb::task_group_context::_leading_padding[80]' changed:
-             type name changed from 'char[80]' to 'char[72]'
-             array type size changed from 640 to 576
-             array type subrange 1 changed length from 80 to 72
+            type of 'char tbb::task_group_context::_leading_padding[80]' changed:
+              type name changed from 'char[80]' to 'char[72]'
+              array type size changed from 640 to 576
+              array type subrange 1 changed length from 80 to 72
 
 
     [C] 'method void tbb::queuing_mutex::scoped_lock::acquire(tbb::queuing_mutex&)' at queuing_mutex.h:84:1 has some indirect sub-type changes:
diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
index 11a383c7..3af4788a 100644
--- a/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char MyType::Private::m1', at offset 32 (in bits)
+          type of 'MyType::Private* MyType::priv' changed:
+            in pointed to type 'struct MyType::Private':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char MyType::Private::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
index 11a383c7..3af4788a 100644
--- a/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char MyType::Private::m1', at offset 32 (in bits)
+          type of 'MyType::Private* MyType::priv' changed:
+            in pointed to type 'struct MyType::Private':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char MyType::Private::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
index 11a383c7..3af4788a 100644
--- a/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char MyType::Private::m1', at offset 32 (in bits)
+          type of 'MyType::Private* MyType::priv' changed:
+            in pointed to type 'struct MyType::Private':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char MyType::Private::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
index 11a383c7..3af4788a 100644
--- a/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char MyType::Private::m1', at offset 32 (in bits)
+          type of 'MyType::Private* MyType::priv' changed:
+            in pointed to type 'struct MyType::Private':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char MyType::Private::m1', at offset 32 (in bits)
 
 
 
diff --git a/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt b/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
index d3ac0320..8b33db84 100644
--- a/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char b_type::m_char', at offset 0 (in bits)
         1 data member change:
-         'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function void foo(a_type*)' has some indirect sub-type changes:
     parameter 1 of type 'a_type*' has sub-type changes:
@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 data member insertion:
             'char a_type::m_char', at offset 0 (in bits)
           1 data member change:
-           'int a_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int a_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt b/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
index e9a14b00..251f4356 100644
--- a/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char b_type::m_char', at offset 0 (in bits)
         1 data member change:
-         'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt b/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt
index fa1d882f..71f601f9 100644
--- a/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt
+++ b/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt
@@ -9,9 +9,9 @@ Variables changes summary: 0 Removed, 1 Changed, 1 Added variables
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt b/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt
index 2cb7afd9..ab0c65c0 100644
--- a/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt
+++ b/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added (1 filtered out) variab
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt b/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt
index fa1d882f..71f601f9 100644
--- a/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt
+++ b/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt
@@ -9,9 +9,9 @@ Variables changes summary: 0 Removed, 1 Changed, 1 Added variables
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt
index 47fe3d83..a8dc9848 100644
--- a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt
+++ b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt
@@ -9,9 +9,9 @@ Variables changes summary: 1 Removed, 1 Changed, 0 Added variables
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt
index f235ac30..6f9467c7 100644
--- a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt
+++ b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed (1 filtered out), 1 Changed, 0 Added variab
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt
index 47fe3d83..a8dc9848 100644
--- a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt
+++ b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt
@@ -9,9 +9,9 @@ Variables changes summary: 1 Removed, 1 Changed, 0 Added variables
 
   [C] 'S* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt b/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
index 0de2e7cf..b380313d 100644
--- a/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char C::inserted_char_member', at offset 0 (in bits)
         1 data member change:
-         'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt b/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
index 75274e00..125cd90c 100644
--- a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
+++ b/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
@@ -13,6 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 data member insertion:
             'char S::inserted_member', at offset 0 (in bits)
           1 data member change:
-           'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt b/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
index 75274e00..125cd90c 100644
--- a/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
+++ b/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
@@ -13,6 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 data member insertion:
             'char S::inserted_member', at offset 0 (in bits)
           1 data member change:
-           'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test29-soname-report-3.txt b/tests/data/test-diff-suppr/test29-soname-report-3.txt
index 609643aa..c17c6a39 100644
--- a/tests/data/test-diff-suppr/test29-soname-report-3.txt
+++ b/tests/data/test-diff-suppr/test29-soname-report-3.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'static S* S::sm0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test29-soname-report-6.txt b/tests/data/test-diff-suppr/test29-soname-report-6.txt
index 609643aa..c17c6a39 100644
--- a/tests/data/test-diff-suppr/test29-soname-report-6.txt
+++ b/tests/data/test-diff-suppr/test29-soname-report-6.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'static S* S::sm0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test29-soname-report-8.txt b/tests/data/test-diff-suppr/test29-soname-report-8.txt
index 609643aa..c17c6a39 100644
--- a/tests/data/test-diff-suppr/test29-soname-report-8.txt
+++ b/tests/data/test-diff-suppr/test29-soname-report-8.txt
@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
 
   [C] 'static S* S::sm0' was changed:
     type of variable changed:
-     in pointed to type 'struct S':
-       type size changed from 32 to 64 (in bits)
-       1 data member insertion:
-         'char S::m1', at offset 32 (in bits)
+      in pointed to type 'struct S':
+        type size changed from 32 to 64 (in bits)
+        1 data member insertion:
+          'char S::m1', at offset 32 (in bits)
 
 
diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
index ebd3b6ea..b36cce6e 100644
--- a/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
@@ -10,13 +10,13 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::inserted_char_member', at offset 0 (in bits)
         1 data member change:
-         'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 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 (in 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) (by +32 bits)
+          'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
index 93fa56e1..a2fe75aa 100644
--- a/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char C::inserted_char_member', at offset 0 (in bits)
         1 data member change:
-         'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
index 3cf04629..0e09e1ec 100644
--- a/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::inserted_char_member', at offset 0 (in bits)
         1 data member change:
-         'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test30-report-0.txt b/tests/data/test-diff-suppr/test30-report-0.txt
index 9ac85d53..15790f64 100644
--- a/tests/data/test-diff-suppr/test30-report-0.txt
+++ b/tests/data/test-diff-suppr/test30-report-0.txt
@@ -22,11 +22,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       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 64 to 128 (in bits)
-             1 data member insertion:
-               'int S::priv_type::member1', at offset 64 (in bits) at test30-pub-lib-v1.cc:18:1
+          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 64 to 128 (in bits)
+              1 data member insertion:
+                'int S::priv_type::member1', at offset 64 (in bits) at test30-pub-lib-v1.cc:18:1
 
 
 
diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
index f286cc7b..92de4df4 100644
--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
@@ -16,9 +16,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct leaf2 at test36-leaf-v0.cc:9:1' changed:
   type size changed from 64 to 96 (in bits)
   there are data member changes:
-   type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
-   and size changed from 32 to 64 (in bits) (by +32 bits)
-   'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
+    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
+    and size changed from 32 to 64 (in bits) (by +32 bits)
+    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
   3 impacted interfaces:
     function void interface1(struct_type*)
     function void interface2(struct_type&)
diff --git a/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt b/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
index 3484c052..4129ccae 100644
--- a/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
@@ -10,12 +10,12 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'unsigned int public_type::oops', at offset 0 (in bits)
         1 data member change:
-         type of 'private_data* public_type::priv_' changed:
-           in pointed to type 'struct private_data':
-             type size changed from 32 to 64 (in bits)
-             1 data member insertion:
-               'char private_data::private_data1', at offset 32 (in bits)
-         and offset changed from 0 to 64 (in bits) (by +64 bits)
+          type of 'private_data* public_type::priv_' changed:
+            in pointed to type 'struct private_data':
+              type size changed from 32 to 64 (in bits)
+              1 data member insertion:
+                'char private_data::private_data1', at offset 32 (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 (in bits)
diff --git a/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt b/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
index e051f750..b76e25b0 100644
--- a/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'unsigned int public_type::oops', at offset 0 (in bits)
         1 data member change:
-         'private_data* public_type::priv_' offset changed from 0 to 64 (in bits) (by +64 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 (in bits)
diff --git a/tests/data/test-diff-suppr/test46-PR25128-report-1.txt b/tests/data/test-diff-suppr/test46-PR25128-report-1.txt
index 9a974032..f16989e4 100644
--- a/tests/data/test-diff-suppr/test46-PR25128-report-1.txt
+++ b/tests/data/test-diff-suppr/test46-PR25128-report-1.txt
@@ -10,9 +10,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct root_domain at sched.h:732:1' changed:
   type size changed from 14592 to 14720 (in bits)
   there are data member changes:
-   type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
-     entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
-     type size changed from 64 to 192 (in bits)
-   and size changed from 64 to 192 (in bits) (by +128 bits)
-   'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
+    type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
+      entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
+      type size changed from 64 to 192 (in bits)
+    and size changed from 64 to 192 (in bits) (by +128 bits)
+    'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
 
diff --git a/tests/data/test-diff-suppr/test46-PR25128-report-2.txt b/tests/data/test-diff-suppr/test46-PR25128-report-2.txt
index d6873cb0..f8654213 100644
--- a/tests/data/test-diff-suppr/test46-PR25128-report-2.txt
+++ b/tests/data/test-diff-suppr/test46-PR25128-report-2.txt
@@ -6,9 +6,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
 'struct root_domain at sched.h:732:1' changed:
   type size changed from 14592 to 14720 (in bits)
   there are data member changes:
-   type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
-     entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
-     type size changed from 64 to 192 (in bits)
-   and size changed from 64 to 192 (in bits) (by +128 bits)
-   'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
+    type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
+      entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
+      type size changed from 64 to 192 (in bits)
+    and size changed from 64 to 192 (in bits) (by +128 bits)
+    'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
index 30b79879..505ba42c 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::m0', at offset 0 (in bits)
         1 data member change:
-         'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function void bar(int, S)' has some indirect sub-type changes:
     parameter 2 of type 'struct S' has sub-type changes:
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
index 072702c9..45ead077 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'char S::m0', at offset 0 (in bits)
       1 data member change:
-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
index 072702c9..45ead077 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'char S::m0', at offset 0 (in bits)
       1 data member change:
-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
index 072702c9..45ead077 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'char S::m0', at offset 0 (in bits)
       1 data member change:
-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
index ca57bbbb..1d631754 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 data member insertion:
           'char S::m0', at offset 0 (in bits)
         1 data member change:
-         'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
index 072702c9..45ead077 100644
--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       1 data member insertion:
         'char S::m0', at offset 0 (in bits)
       1 data member change:
-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
index 2c08c142..559182db 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base at test6-fn-suppr-v1.cc:4:1
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function int bar(S&)' at test6-fn-suppr-v1.cc:42:1 has some indirect sub-type changes:
     parameter 1 of type 'S&' has sub-type changes:
@@ -19,7 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base at test6-fn-suppr-v1.cc:4:1
         1 data member change:
-         'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' at test6-fn-suppr-v1.cc:52:1 has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -29,6 +29,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base at test6-fn-suppr-v1.cc:4:1
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
index 32e1d239..a679f47a 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function int bar(S&)' has some indirect sub-type changes:
     parameter 1 of type 'S&' has sub-type changes:
@@ -19,7 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -29,6 +29,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
index 0a3c7b4d..20fcb19b 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
index 0a3c7b4d..20fcb19b 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
index 0a3c7b4d..20fcb19b 100644
--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         1 base class insertion:
           struct base
         1 data member change:
-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
     parameter 2 of type 'S2**' has sub-type changes:
@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           1 base class insertion:
             struct base
           1 data member change:
-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
index 7fd8502c..10153c12 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
@@ -5,20 +5,20 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
   [C] 'S1* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S1':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S1':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
index d4d86310..6a924a85 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S1* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S1':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S1':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
index af81d0a8..15e0668f 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
index d4d86310..6a924a85 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S1* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S1':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S1':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
index af81d0a8..15e0668f 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
index af81d0a8..15e0668f 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
index 7fd8502c..10153c12 100644
--- a/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
@@ -5,20 +5,20 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables
 
   [C] 'S0* var0' was changed:
     type of variable changed:
-     in pointed to type 'struct S0':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S0':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
   [C] 'S1* var1' was changed:
     type of variable changed:
-     in pointed to type 'struct S1':
-       type size changed from 32 to 64 (in 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) (by +32 bits)
+      in pointed to type 'struct S1':
+        type size changed from 32 to 64 (in 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) (by +32 bits)
 
 
-- 
2.25.1.481.gfbce0eb801-goog


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 1/5] Fix interaction of --redundant and --leaf-changes-only options.
  2020-03-12  6:30 ` [PATCH 1/5] Fix interaction of --redundant and --leaf-changes-only options Giuliano Procida
@ 2020-03-13 17:30   ` Dodji Seketeli
  0 siblings, 0 replies; 21+ messages in thread
From: Dodji Seketeli @ 2020-03-13 17:30 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, kernel-team

Hello Giuliano,

Giuliano Procida <gprocida@google.com> a écrit:

[...]

>
> 	* src/abg-comparison.cc (diff_context::show_leaf_changes_only):
> 	Remove "--leaf-changes-only implies --redundant" logic.
> 	* tools/abidiff.cc (display_usage): Mention that
> 	--leaf-changes-only implies --redundant.
> 	(set_diff_context_from_opts): Make --leaf-changes-only imply
> 	--redundant; document this behaviour in a comment.
> 	* tools/abipkgdiff.cc: Ditto.
> 	* tests/data/Makefile.am: Add new test case files.
> 	* tests/data/test-abidiff-exit/test-leaf3-report.txt: Add new
> 	test case, to show --leaf-changes-only implies --redundant.
> 	* tests/data/test-abidiff-exit/test-leaf3-v0.c: Ditto.
> 	* tests/data/test-abidiff-exit/test-leaf3-v0.o: Ditto.
> 	* tests/data/test-abidiff-exit/test-leaf3-v1.c: Ditto.
> 	* tests/data/test-abidiff-exit/test-leaf3-v1.o: Ditto.
> 	* tests/test-abidiff-exit.cc: Run new test case.
> 	* tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt:
> 	Update abipkgdiff report with --redundant output.
> 	* tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt:
> 	Ditto.
> 	* tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
> 	Ditto.

Looks good to me, applied to master.

Thanks!


-- 
		Dodji

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 2/5] abg-leaf-reporter.cc: Fix indentation of function parameter diffs.
  2020-03-12  6:30 ` [PATCH 2/5] abg-leaf-reporter.cc: Fix indentation of function parameter diffs Giuliano Procida
@ 2020-03-13 17:37   ` Dodji Seketeli
  0 siblings, 0 replies; 21+ messages in thread
From: Dodji Seketeli @ 2020-03-13 17:37 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, kernel-team

Hello Giuliano,

Giuliano Procida <gprocida@google.com> a écrit:

> When reporting the details of changes to function parameter
> differences in leaf-changes-only mode, the details are output at the
> same level of indentation as the introductory text. In default mode
> the usual 2-space indentation is used.
>
> This patch fixes this discrepancy, making the output more readable.
>
> 	* src/abg-leaf-reporter.cc (report): In the fn_parm_diff
> 	override, indent the lines of detail by 2 spaces.
> 	* tests/data/test-abidiff-exit/test-leaf3-report.txt: Update
> 	report with correct indentation.

This looks good to me and has been applied to master.

Cheers,

-- 
		Dodji

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output.
  2020-03-12  6:30 ` [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output Giuliano Procida
@ 2020-03-14 20:09   ` Matthias Maennich
  2020-03-16 10:51     ` Giuliano Procida
  2020-03-16 13:10   ` [PATCH 3/5 v2] " Giuliano Procida
  1 sibling, 1 reply; 21+ messages in thread
From: Matthias Maennich @ 2020-03-14 20:09 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, dodji, kernel-team

On Thu, Mar 12, 2020 at 06:30:34AM +0000, Android Kernel Team wrote:
>There is distributed responsibility for horizontal and vertical
>whitespace in the reporting code with indent and new line control
>information being manipulated by and passed in and out of functions.
>Occasionally, this information is ignored or incorrect and the code
>tends to err on the side of more rather than fewer new lines.
>
>The outcome is that abidiff output sometimes contains extra blank
>lines which can be confusing.
>
>This patch eliminates some of the more obvious cases:
>
>   - after data member deletions
>   - in enumerator change lists
>   - after "type size hasn't changed"
>   - before listing impacted interfaces
>
>The patch cleans up the reporting of data members. The code will
>either emit indentation, a short description and a new line or do
>nothing at all.
>
>The patch also removes some stray location reporting code for array
>diffs which would have produced some oddly placed output. I could not
>get this code to trigger as loc = decl->get_location() was never
>present on the array decls in question.
>
>	* src/abg-default-reporter.cc (report): In the enum_diff
>	override, simplify new line logic; emit just one
>	blank line after each enum. In the array_diff override, remove
>	stray location reporting which doesn't appear to ever trigger;
>	fix new line logic. In the class_or_union_diff override,
>	simplify new line logic for deleted members; pass indentation
>	to represent_data_member.
>	* src/abg-leaf-reporter.cc (report): In the array_diff
>	override, remove stray location reporting which doesn't appear
>	to ever trigger; fix new line handling. In the
>	class_or_union_diff override, simplify new line logic for
>	deleted members; pass indentation to represent_data_member.
>	* src/abg-reporter-priv.cc (represent_data_member): Handle
>	indentation; fix new line logic.
>	(report_size_and_alignment_changes): Fix new line logic
>	for "type size hasn't changed" message; simplify new line
>	logic.
>	(report_name_size_and_alignment_changes): Fix new line logic.
>	(maybe_report_interfaces_impacted_by_diff) Remove new line
>	prefix code and new_line_prefix argument.
>	* src/abg-reporter-priv.h (represent_data_member): Add indent
>	argument.
>	(maybe_report_interfaces_impacted_by_diff) Remove
>	new_line_prefix argument.
>	* tests/data/test-*/*report*.txt: Remove some blank lines.
>
>Signed-off-by: Giuliano Procida <gprocida@google.com>
>---
> src/abg-default-reporter.cc                   |  43 +++-----
> src/abg-leaf-reporter.cc                      |  27 ++---
> src/abg-reporter-priv.cc                      |  34 +++---
> src/abg-reporter-priv.h                       |   9 +-
> .../test5-fn-changed-report-0.txt             |   1 -
> .../test5-fn-changed-report-1.txt             |   1 -
> .../test6-var-changed-report-0.txt            |   1 -
> .../test6-var-changed-report-1.txt            |   1 -
> .../test7-fn-changed-report-0.txt             |   1 -
> .../test-abidiff-exit/test-leaf3-report.txt   |   1 -
> .../test-loc-with-locs-report.txt             |   1 -
> .../test-loc-without-locs-report.txt          |   1 -
> .../test-abidiff/test-PR18791-report0.txt     |   2 -
> tests/data/test-abidiff/test-enum0-report.txt |   1 -
> tests/data/test-abidiff/test-enum1-report.txt |   1 -
> .../data/test-abidiff/test-struct1-report.txt |   1 -
> .../PR25058-liblttng-ctl-report-1.txt         |   5 -
> tests/data/test-diff-dwarf/test13-report.txt  |   1 -
> .../test-diff-dwarf/test38-union-report-0.txt |   1 -
> .../data/test-diff-dwarf/test40-report-0.txt  |   2 -
> .../test42-PR21296-clanggcc-report0.txt       |   1 -
> .../test43-PR22913-report-0.txt               |   1 -
> tests/data/test-diff-filter/test10-report.txt |   1 -
> tests/data/test-diff-filter/test18-report.txt |   1 -
> ...st23-redundant-fn-parm-change-report-0.txt |   2 -
> .../test30-pr18904-rvalueref-report0.txt      |   8 --
> .../test30-pr18904-rvalueref-report1.txt      |   8 --
> .../test30-pr18904-rvalueref-report2.txt      |   8 --
> .../test35-pr18754-no-added-syms-report-0.txt |   8 --
> .../data/test-diff-filter/test36-report-0.txt |   3 -
> .../test42-leaf-report-output-0.txt           |   1 -
> tests/data/test-diff-filter/test7-report.txt  |   1 -
> ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt |   2 -
> .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |   4 -
> ...l7.x86_64-0.12.8-1.el7.x86_64-report-0.txt |   2 -
> ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt |   2 -
> ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 101 ------------------
> ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt |   3 -
> ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt |   5 -
> ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   1 -
> .../test10-changed-parm-c-report-0.txt        |   3 -
> .../test-diff-suppr/test35-leaf-report-0.txt  |   1 -
> .../test-diff-suppr/test36-leaf-report-0.txt  |   2 -
> .../test41-enumerator-changes-report-0.txt    |   2 -
> 44 files changed, 42 insertions(+), 264 deletions(-)
>
>diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
>index 3bfdfbc4..a0b9eeea 100644
>--- a/src/abg-default-reporter.cc
>+++ b/src/abg-default-reporter.cc
>@@ -130,16 +130,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> 	   i != sorted_deleted_enumerators.end();
> 	   ++i)
> 	{
>-	  if (i != sorted_deleted_enumerators.begin())
>-	    out << "\n";
> 	  out << indent
> 	      << "  '"
> 	      << i->get_qualified_name()
> 	      << "' value '"
> 	      << i->get_value()
> 	      << "'";
>+	  out << "\n";
> 	}
>-      out << "\n\n";
>     }
>   if (numins)
>     {
>@@ -151,16 +149,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> 	   i != sorted_inserted_enumerators.end();
> 	   ++i)
> 	{
>-	  if (i != sorted_inserted_enumerators.begin())
>-	    out << "\n";
> 	  out << indent
> 	      << "  '"
> 	      << i->get_qualified_name()
> 	      << "' value '"
> 	      << i->get_value()
> 	      << "'";
>+	  out << "\n";
> 	}
>-      out << "\n\n";
>     }
>   if (numchanges)
>     {
>@@ -173,8 +169,6 @@ default_reporter::report(const enum_diff& d, ostream& out,
> 	   i != sorted_changed_enumerators.end();
> 	   ++i)
> 	{
>-	  if (i != sorted_changed_enumerators.begin())
>-	    out << "\n";
> 	  out << indent
> 	      << "  '"
> 	      << i->first.get_qualified_name()
>@@ -182,13 +176,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> 	      << i->first.get_value() << "' to '"
> 	      << i->second.get_value() << "'";
> 	  report_loc_info(second, *d.context(), out);
>+	  out << "\n";
> 	}
>-      out << "\n\n";
>     }
>
>+  out << "\n";
>+
>   if (d.context()->show_leaf_changes_only())
>-    maybe_report_interfaces_impacted_by_diff(&d, out, indent,
>-					     /*new_line_prefix=*/false);
>+    maybe_report_interfaces_impacted_by_diff(&d, out, indent);
>
>   d.reported_once(true);
> }
>@@ -392,7 +387,7 @@ default_reporter::report(const pointer_diff& d, ostream& out,
> 	: string("void");
>
>       out << indent
>-	  << "in pointed to type '" <<  repr << "'";
>+	  << "in pointed to type '" << repr << "'";
>       report_loc_info(dif->second_subject(), *d.context(), out);
>       out << ":\n";
>       dif->report(out, indent + "  ");
>@@ -673,12 +668,12 @@ default_reporter::report(const array_diff& d, ostream& out,
>       dif->report(out, indent + "  ");
>     }
>
>-  report_name_size_and_alignment_changes(d.first_array(),
>-					 d.second_array(),
>-					 d.context(),
>-					 out, indent,
>-					 /*new line=*/false);
>-  report_loc_info(d.second_array(), *d.context(), out);
>+  if (report_name_size_and_alignment_changes(d.first_array(),
>+					     d.second_array(),
>+					     d.context(),
>+					     out, indent,
>+					     /*new line=*/false))

Though it is not required here, I would prefer braces for readability.

>+    out << "\n";
> }
>
> /// Generates a report for an intance of @ref base_diff.
>@@ -1014,7 +1009,6 @@ default_reporter::report(const class_or_union_diff& d,
> 	  sort_data_members
> 	    (d.class_or_union_diff::get_priv()->deleted_data_members_,
> 	     sorted_dms);
>-	  bool emitted = false;
> 	  for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
> 	       i != sorted_dms.end();
> 	       ++i)
>@@ -1024,14 +1018,8 @@ default_reporter::report(const class_or_union_diff& d,
> 	      ABG_ASSERT(data_mem);
> 	      if (get_member_is_static(data_mem))
> 		continue;
>-	      if (emitted)
>-		out << "\n";
>-	      out << indent << "  ";
>-	      represent_data_member(data_mem, ctxt, out);
>-	      emitted = true;
>+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
> 	    }
>-	  if (emitted)
>-	    out << "\n";
> 	}
>
>       //report insertions
>@@ -1052,8 +1040,7 @@ default_reporter::report(const class_or_union_diff& d,
> 	      var_decl_sptr data_mem =
> 		dynamic_pointer_cast<var_decl>(*i);
> 	      ABG_ASSERT(data_mem);
>-	      out << indent << "  ";
>-	      represent_data_member(data_mem, ctxt, out);
>+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
> 	    }
> 	}
>
>diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
>index bbd51dcb..f706bd21 100644
>--- a/src/abg-leaf-reporter.cc
>+++ b/src/abg-leaf-reporter.cc
>@@ -78,7 +78,7 @@ report_diffs(const reporter_base& r,
>
> 	  string n = (*i)->first_subject()->get_pretty_representation();
>
>-	  out << indent << "'" << n ;
>+	  out << indent << "'" << n;
>
> 	  report_loc_info((*i)->first_subject(),
> 			  *(*i)->context(), out);
>@@ -425,11 +425,12 @@ leaf_reporter::report(const array_diff& d,
> 						    d.second_array(),
> 						    "array type");
>
>-  report_name_size_and_alignment_changes(d.first_array(),
>-					 d.second_array(),
>-					 d.context(),
>-					 out, indent,
>-					 /*new line=*/false);
>+  if (report_name_size_and_alignment_changes(d.first_array(),
>+					     d.second_array(),
>+					     d.context(),
>+					     out, indent,
>+					     /*new line=*/false))

As above.

>+    out << "\n";
>
>   diff_sptr dif = d.element_type_diff();
>   if (diff_to_be_reported(dif.get()))
>@@ -441,8 +442,6 @@ leaf_reporter::report(const array_diff& d,
>       dif->report(out, indent + "  ");
>     }
>
>-  report_loc_info(d.second_array(), *d.context(), out);
>-
>   maybe_report_interfaces_impacted_by_diff(&d, out, indent);
> }
>
>@@ -592,7 +591,6 @@ leaf_reporter::report(const class_or_union_diff& d,
> 	  sort_data_members
> 	    (d.class_or_union_diff::get_priv()->deleted_data_members_,
> 	     sorted_dms);
>-	  bool emitted = false;
> 	  for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
> 	       i != sorted_dms.end();
> 	       ++i)
>@@ -602,14 +600,8 @@ leaf_reporter::report(const class_or_union_diff& d,
> 	      ABG_ASSERT(data_mem);
> 	      if (get_member_is_static(data_mem))
> 		continue;
>-	      if (emitted)
>-		out << "\n";
>-	      out << indent << "  ";
>-	      represent_data_member(data_mem, ctxt, out);
>-	      emitted = true;
>+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
> 	    }
>-	  if (emitted)
>-	    out << "\n";
> 	}
>
>       //report insertions
>@@ -630,8 +622,7 @@ leaf_reporter::report(const class_or_union_diff& d,
> 	      var_decl_sptr data_mem =
> 		dynamic_pointer_cast<var_decl>(*i);
> 	      ABG_ASSERT(data_mem);
>-	      out << indent << "  ";
>-	      represent_data_member(data_mem, ctxt, out);
>+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
> 	    }
> 	}
>
>diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc
>index fbac85f8..948a32fc 100644
>--- a/src/abg-reporter-priv.cc
>+++ b/src/abg-reporter-priv.cc
>@@ -242,16 +242,19 @@ represent(const diff_context& ctxt,
> /// @param ctxt the current diff context.
> ///
> /// @param out the output stream to send the representation to
>+///
>+/// @param indent the indentation string to use for the change report.
> void
> represent_data_member(var_decl_sptr d,
> 		      const diff_context_sptr& ctxt,
>-		      ostream& out)
>+		      ostream& out,
>+		      const string& indent)

I would prefer out parameters after all input parameters. Since this is
a private implementation detail, we should be good to change that
interface.

> {
>   if (!is_data_member(d)
>       || (!get_member_is_static(d) && !get_data_member_is_laid_out(d)))
>     return;
>
>-  out << "'" << d->get_pretty_representation() << "'";
>+  out << indent << "'" << d->get_pretty_representation() << "'";
>   if (!get_member_is_static(d))
>     {
>       // Do not emit offset information for data member of a union
>@@ -262,8 +265,8 @@ represent_data_member(var_decl_sptr d,
> 			    get_data_member_offset(d),
> 			    *ctxt, out);
>       report_loc_info(d, *ctxt, out);
>-      out << "\n";
>     }
>+  out << "\n";
> }
>
> /// If a given @ref var_diff node carries a data member change in
>@@ -806,7 +809,10 @@ report_size_and_alignment_changes(type_or_decl_base_sptr	first,
> 	} // end if (fs != ss || fdc != sdc)
>       else
> 	if (ctxt->show_relative_offset_changes())
>-	  out << indent << "type size hasn't changed\n";
>+	  {
>+	    out << indent << "type size hasn't changed";
>+	    n = true;
>+	  }
>     }
>   if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY)
>       && (fa != sa))
>@@ -819,9 +825,7 @@ report_size_and_alignment_changes(type_or_decl_base_sptr	first,
>       n = true;
>     }
>
>-  if (n)
>-    return true;
>-  return false;
>+  return n;

We should give 'n' a better name. Not necessarily part of this change.

> }
>
> /// @param tod the type or declaration to emit loc info about
>@@ -910,8 +914,8 @@ report_name_size_and_alignment_changes(decl_base_sptr		first,
> 	}
>     }
>
>-  nl |= report_size_and_alignment_changes(first, second, ctxt,
>-					  out, indent, nl);
>+  nl = report_size_and_alignment_changes(first, second, ctxt,
>+                                         out, indent, nl);
>   return nl;
> }
>
>@@ -1366,14 +1370,10 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
> /// @param out the output stream to report to.
> ///
> /// @param indent the white space string to use for indentation.
>-///
>-/// @param new_line_prefix if set to true, it means there is going to
>-/// be a new line emitted before the report.
> void
> maybe_report_interfaces_impacted_by_diff(const diff	*d,
> 					 ostream	&out,
>-					 const string	&indent,
>-					 bool		new_line_prefix)
>+					 const string	&indent)
> {
>   const diff_context_sptr &ctxt = d->context();
>   const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff();
>@@ -1395,9 +1395,6 @@ maybe_report_interfaces_impacted_by_diff(const diff	*d,
>   vector<type_or_decl_base_sptr> sorted_impacted_interfaces;
>   sort_artifacts_set(*impacted_artifacts, sorted_impacted_interfaces);
>
>-  if (new_line_prefix)
>-    out << '\n';
>-

I think we need to keep this newline. It separates the cause (the leaf
node change) from the impacted interfaces (the top level nodes).


With the above addressed, feel free to add
Reviewed-by: Matthias Maennich <maennich@google.com>

Cheers,
Matthias

>   size_t num_impacted_interfaces = impacted_artifacts->size();
>   if (num_impacted_interfaces == 1)
>     out << indent << "one impacted interface:\n";
>@@ -1424,9 +1421,6 @@ maybe_report_interfaces_impacted_by_diff(const diff	*d,
> /// @param out the output stream to report to.
> ///
> /// @param indent the white space string to use for indentation.
>-///
>-/// @param new_line_prefix if set to true, it means there is going to
>-/// be a new line emitted before the report.
> void
> maybe_report_interfaces_impacted_by_diff(const diff_sptr	&d,
> 					 ostream		&out,
>diff --git a/src/abg-reporter-priv.h b/src/abg-reporter-priv.h
>index 7471c74f..04803f43 100644
>--- a/src/abg-reporter-priv.h
>+++ b/src/abg-reporter-priv.h
>@@ -151,7 +151,8 @@ represent(const diff_context& ctxt,
> void
> represent_data_member(var_decl_sptr d,
> 		      const diff_context_sptr& ctxt,
>-		      ostream& out);
>+		      ostream& out,
>+		      const string& indent);
>
> void
> maybe_show_relative_offset_change(const var_diff_sptr &diff,
>@@ -244,14 +245,12 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
> void
> maybe_report_interfaces_impacted_by_diff(const diff		*d,
> 					 ostream		&out,
>-					 const string		&indent,
>-					 bool new_line_prefix = true);
>+					 const string		&indent);
>
> void
> maybe_report_interfaces_impacted_by_diff(const diff_sptr	&d,
> 					 ostream		&out,
>-					 const string		&indent,
>-					 bool new_line_prefix = false);
>+					 const string		&indent);
>
> } // end namespace comparison
> } // end namespace abigail
>diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
>index 96d48ccf..04676908 100644
>--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt
>+++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
>@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
>         1 data member deletion:
>           'unsigned char S1::m1', at offset 32 (in bits)
>
>-
>diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
>index 3c8c4a8f..b39f650d 100644
>--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt
>+++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
>@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
>         1 data member deletion:
>           'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1
>
>-
>diff --git a/tests/data/test-abicompat/test6-var-changed-report-0.txt b/tests/data/test-abicompat/test6-var-changed-report-0.txt
>index 5d2bd89c..f5077879 100644
>--- a/tests/data/test-abicompat/test6-var-changed-report-0.txt
>+++ b/tests/data/test-abicompat/test6-var-changed-report-0.txt
>@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
>       1 data member deletion:
>         'unsigned char S1::m1', at offset 32 (in bits)
>
>-
>diff --git a/tests/data/test-abicompat/test6-var-changed-report-1.txt b/tests/data/test-abicompat/test6-var-changed-report-1.txt
>index 697929f0..5b78c83c 100644
>--- a/tests/data/test-abicompat/test6-var-changed-report-1.txt
>+++ b/tests/data/test-abicompat/test6-var-changed-report-1.txt
>@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
>       1 data member deletion:
>         'unsigned char S1::m1', at offset 32 (in bits) at test6-var-changed-libapp-v0.h:11:1
>
>-
>diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
>index 19db76e3..6a34710d 100644
>--- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt
>+++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
>@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       type name changed from 'float' to 'int'
>       type size hasn't changed
>
>-
>   [C] 'function void print(const Student)' has some indirect sub-type changes:
>     parameter 1 of type 'const Student' has sub-type changes:
>       in unqualified underlying type 'struct Student':
>diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
>index 138c4b5a..7602e761 100644
>--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt
>+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
>@@ -10,7 +10,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>       type name changed from 'sto1' to 'stn1'
>       type size hasn't changed
>
>-
>   [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
>     parameter 1 of type 'struct sto2' changed:
>       type name changed from 'sto2' to 'stn2'
>diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
>index 53672744..bc37ff53 100644
>--- a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
>+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
>@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       type size hasn't changed
>
>
>-
>diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
>index 6893e3fc..56c41d79 100644
>--- a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
>+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
>@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       type size hasn't changed
>
>
>-
>diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
>index 5758077d..7e16fe32 100644
>--- a/tests/data/test-abidiff/test-PR18791-report0.txt
>+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
>@@ -48,9 +48,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>                                          struct std::__detail::_List_node_base
>                                        2 data member deletions:
>                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>-
>                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>-
>                                        1 data member insertion:
>                                          'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt
>index c7c5a682..1cd7eaaf 100644
>--- a/tests/data/test-abidiff/test-enum0-report.txt
>+++ b/tests/data/test-abidiff/test-enum0-report.txt
>@@ -3,7 +3,6 @@
>     type size hasn't changed
>     1 enumerator deletion:
>       'E::e2' value '1'
>-
>     1 enumerator insertion:
>       'E::e1' value '1'
>
>diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt
>index f1198ef9..7e8acf80 100644
>--- a/tests/data/test-abidiff/test-enum1-report.txt
>+++ b/tests/data/test-abidiff/test-enum1-report.txt
>@@ -3,7 +3,6 @@
>     type size hasn't changed
>     1 enumerator insertion:
>       'E::e1' value '1'
>-
>     1 enumerator change:
>       'E::e2' from value '1' to '2'
>
>diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
>index 39b71e55..e334bf1a 100644
>--- a/tests/data/test-abidiff/test-struct1-report.txt
>+++ b/tests/data/test-abidiff/test-struct1-report.txt
>@@ -6,7 +6,6 @@
>
>     1 data member deletion:
>       'char s0::m1', at offset 96 (in bits)
>-
>     1 data member insertion:
>       'double s0::m01', at offset 128 (in bits)
>     2 data member changes:
>diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>index 29f823ec..aab271ff 100644
>--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>@@ -100,7 +100,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
>            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
>            type size hasn't changed
>-
>            3 data member changes:
>             name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
>             name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
>@@ -171,7 +170,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>           type size changed from 35008 to 35072 (in bits)
>           1 data member deletion:
>             'char lttng_session::padding[12]', at offset 34912 (in bits)
>-
>           1 data member insertion:
>             'union {char padding[12]; void* ptr;} lttng_session::extended', at offset 34944 (in bits)
>
>@@ -208,7 +206,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>           1 data member deletion:
>             'bool lttng_notification::owns_elements', at offset 128 (in bits)
>
>-
>   [C] 'function lttng_notification_channel_status lttng_notification_channel_subscribe(lttng_notification_channel*, const lttng_condition*)' has some indirect sub-type changes:
>     return type changed:
>       enum type 'enum lttng_notification_channel_status' changed, as reported earlier
>@@ -289,7 +286,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>                            'op_type::AST_OP_BIN_AND' value '10'
>                            'op_type::AST_OP_BIN_OR' value '11'
>                            'op_type::AST_OP_BIN_XOR' value '12'
>-
>                          5 enumerator insertions:
>                            'op_type::AST_OP_BIT_RSHIFT' value '6'
>                            'op_type::AST_OP_BIT_LSHIFT' value '7'
>@@ -319,7 +315,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>                          type size hasn't changed
>                          1 enumerator deletion:
>                            'unary_op_type::AST_UNARY_BIN_NOT' value '4'
>-
>                          1 enumerator insertion:
>                            'unary_op_type::AST_UNARY_BIT_NOT' value '4'
>
>diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
>index cf29a4fd..833879c7 100644
>--- a/tests/data/test-diff-dwarf/test13-report.txt
>+++ b/tests/data/test-diff-dwarf/test13-report.txt
>@@ -12,7 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>            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 (in bits)
>diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt
>index f7a75df7..fd9708e6 100644
>--- a/tests/data/test-diff-dwarf/test38-union-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt
>@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         type size hasn't changed
>         1 data member deletion:
>           'int some_union_type::m0'
>-
>         type changed from:
>           union some_union_type{int m0; char m1; S m2;}
>         to:
>diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
>index d0b8c52c..f0f9e1a1 100644
>--- a/tests/data/test-diff-dwarf/test40-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
>@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         type size changed from 96 to 64 (in 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)
>@@ -24,7 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>            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':
>diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
>index f0a25a2e..44918baa 100644
>--- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
>+++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
>@@ -19,7 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>     return type changed:
>       type name changed from 'std::tuple<STR&&>' to 'std::tuple<STR &&>'
>       type size hasn't changed
>-
>       1 base class deletion:
>         struct std::_Tuple_impl<0ul, STR&&>
>       1 base class insertion:
>diff --git a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
>index 1c0c773d..60681336 100644
>--- a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
>@@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>             'char m2', at offset 8 (in bits)
>
>
>-
>diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt
>index bdc31fd0..5a505fc3 100644
>--- a/tests/data/test-diff-filter/test10-report.txt
>+++ b/tests/data/test-diff-filter/test10-report.txt
>@@ -16,4 +16,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           'unsigned int S::m', at offset 0 (in bits)
>
>
>-
>diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
>index 0d30ef39..6ade5bdf 100644
>--- a/tests/data/test-diff-filter/test18-report.txt
>+++ b/tests/data/test-diff-filter/test18-report.txt
>@@ -14,4 +14,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>
>
>
>-
>diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
>index f847d32e..99c14329 100644
>--- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
>+++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
>@@ -7,10 +7,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>     parameter 1 of type 'int' changed:
>       type name changed from 'int' to 'float'
>       type size hasn't changed
>-
>     parameter 2 of type 'int' changed:
>       type name changed from 'int' to 'float'
>       type size hasn't changed
>
>
>-
>diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>index b78215b0..5def3a08 100644
>--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>           '__anonymous_enum__1::c_report_state_stream' value '142'
>           '__anonymous_enum__1::c_report_stream' value '143'
>           '__anonymous_enum__1::c_unload_library' value '144'
>-
>         92 enumerator changes:
>           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
>           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
>@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>            type size hasn't changed
>-
>            1 data member changes (1 filtered):
>             anonymous data member at offset 0 (in bits) changed from:
>               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
>           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>           type size hasn't changed
>-
>           1 data member change:
>            type of 'void ()* InitTableEntry::func' changed:
>              in pointed to type 'function type void ()':
>@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>                type size changed from 2752 to 5504 (in bits)
>                1 data member deletion:
>                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>-
>                7 data member insertions:
>                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>                        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> >
>                               2 data member deletions:
>                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>-
>                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>-
>                               1 data member change:
>                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>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 ccaf8126..3bc8f6d7 100644
>--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
>+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
>@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>           '__anonymous_enum__1::c_report_state_stream' value '142'
>           '__anonymous_enum__1::c_report_stream' value '143'
>           '__anonymous_enum__1::c_unload_library' value '144'
>-
>         92 enumerator changes:
>           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
>           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
>@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>            type size hasn't changed
>-
>            1 data member changes (1 filtered):
>             anonymous data member at offset 0 (in bits) changed from:
>               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
>           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>           type size hasn't changed
>-
>           1 data member change:
>            type of 'void ()* InitTableEntry::func' changed:
>              in pointed to type 'function type void ()':
>@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>                type size changed from 2752 to 5504 (in bits)
>                1 data member deletion:
>                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
>-
>                7 data member insertions:
>                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
>                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
>@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>                               2 data member deletions:
>                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
>-
>                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
>-
>                               1 data member change:
>                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>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 44e78935..d91de66b 100644
>--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
>+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
>@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>           '__anonymous_enum__1::c_report_state_stream' value '142'
>           '__anonymous_enum__1::c_report_stream' value '143'
>           '__anonymous_enum__1::c_unload_library' value '144'
>-
>         92 enumerator changes:
>           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
>           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
>@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>            type size hasn't changed
>-
>            1 data member changes (1 filtered):
>             anonymous data member at offset 0 (in bytes) changed from:
>               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
>           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>           type size hasn't changed
>-
>           1 data member change:
>            type of 'void ()* InitTableEntry::func' changed:
>              in pointed to type 'function type void ()':
>@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>                type size changed from 0x158 to 0x2b0 (in bytes)
>                1 data member deletion:
>                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
>-
>                7 data member insertions:
>                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
>                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
>@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>                               2 data member deletions:
>                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
>-
>                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
>-
>                               1 data member change:
>                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>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 c9cb9246..306a9863 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
>@@ -116,7 +116,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>           '__anonymous_enum__1::c_report_state_stream' value '142'
>           '__anonymous_enum__1::c_report_stream' value '143'
>           '__anonymous_enum__1::c_unload_library' value '144'
>-
>         92 enumerator changes:
>           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
>           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
>@@ -220,7 +219,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>            type size hasn't changed
>-
>            1 data member changes (1 filtered):
>             anonymous data member at offset 0 (in bits) changed from:
>               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>@@ -235,7 +233,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
>           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>           type size hasn't changed
>-
>           1 data member change:
>            type of 'void ()* InitTableEntry::func' changed:
>              in pointed to type 'function type void ()':
>@@ -264,7 +261,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>                type size changed from 2752 to 5504 (in bits)
>                1 data member deletion:
>                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>-
>                7 data member insertions:
>                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>@@ -286,20 +282,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>                        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> >
>                               2 data member deletions:
>                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>-
>                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>-
>                               1 data member change:
>                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
>index 08692c1e..22e614d8 100644
>--- a/tests/data/test-diff-filter/test36-report-0.txt
>+++ b/tests/data/test-diff-filter/test36-report-0.txt
>@@ -13,7 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>            type size hasn't changed
>
>
>-
>   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
>     parameter 1 of type 'S*' has sub-type changes:
>       in pointed to type 'struct S' at test36-2-v1.c:6:1:
>@@ -23,11 +22,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>            type name changed from 'int' to 'unsigned int'
>            type size hasn't changed
>
>-
>          type of 'int S::m1' changed:
>            type name changed from 'int' to 'unsigned int'
>            type size hasn't changed
>
>
>
>-
>diff --git a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
>index 94a0551d..d40a1374 100644
>--- a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
>+++ b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
>@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>   type size changed from 32 to 64 (in bits)
>   1 data member insertion:
>     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
>-
>   one impacted interface:
>     function void fn(C&)
>diff --git a/tests/data/test-diff-filter/test7-report.txt b/tests/data/test-diff-filter/test7-report.txt
>index 7e3a4d47..26933033 100644
>--- a/tests/data/test-diff-filter/test7-report.txt
>+++ b/tests/data/test-diff-filter/test7-report.txt
>@@ -7,7 +7,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>     return type changed:
>       type name changed from 'return_type' to 'other_return_type'
>       type size hasn't changed
>-
>       no data member change (1 filtered);
>
>
>diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>index 05d6fcad..873a84cd 100644
>--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>@@ -54,9 +54,7 @@
>                                                   struct std::__detail::_List_node_base
>                                                 2 data member deletions:
>                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>-
>                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>-
>                                                 1 data member insertion:
>                                                   'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>                                               and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>index c227fa5c..a0cc67c2 100644
>--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>@@ -10,7 +10,6 @@
>           type size hasn't changed
>           1 enumerator insertion:
>             '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
>-
>           1 enumerator change:
>             '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
>
>@@ -34,7 +33,6 @@
>           type size hasn't changed
>           1 enumerator insertion:
>             '__anonymous_enum__1::ssl_kea_ecdh_psk' value '5'
>-
>           1 enumerator change:
>             '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1
>
>@@ -52,7 +50,6 @@
>                  type size hasn't changed
>                  1 enumerator deletion:
>                    '__anonymous_enum__::ssl_auth_rsa' value '1'
>-
>                  7 enumerator insertions:
>                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
>                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
>@@ -114,7 +111,6 @@
>                                              type size hasn't changed
>                                              1 enumerator insertion:
>                                                '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
>-
>                                              1 enumerator change:
>                                                '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
>
>diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
>index bf081f52..70b41ddd 100644
>--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
>+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
>@@ -25,7 +25,6 @@
>         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
>           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>           type size hasn't changed
>-
>           7 enumerator deletions:
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>@@ -34,7 +33,6 @@
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>-
>           9 enumerator insertions:
>             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
>index 7b86b964..0b909f90 100644
>--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
>+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
>@@ -25,7 +25,6 @@
>         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
>           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>           type size hasn't changed
>-
>           7 enumerator deletions:
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>@@ -34,7 +33,6 @@
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>-
>           9 enumerator insertions:
>             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>index 3d20caf1..c247ef95 100644
>--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>@@ -239,15 +239,10 @@
>                                                  type size changed from 1280 to 256 (in bits)
>                                                  5 data member deletions:
>                                                    'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
>-
>                                                    'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
>-
>                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
>-
>                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
>-
>                                                    'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
>-
>                                                  1 data member change:
>                                                   type of 'SSL* RedsStream::ssl' changed:
>                                                     in pointed to type 'typedef SSL' at reds_stream.h:32:1:
>@@ -257,193 +252,99 @@
>                                                         type size changed from 5504 to 0 (in bits)
>                                                         94 data member deletions:
>                                                           'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
>-
>                                                           'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
>-
>                                                           'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
>-
>                                                           'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
>-
>                                                           'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
>-
>                                                           'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
>-
>                                                           'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
>-
>                                                           'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
>-
>                                                           'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
>-
>                                                           'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
>-
>                                                           'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
>-
>                                                           'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
>-
>                                                           'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
>-
>                                                           'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
>-
>                                                           'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
>-
>                                                           'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
>-
>                                                           'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
>-
>                                                           'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
>-
>                                                           'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
>-
>                                                           'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
>-
>                                                           'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
>-
>                                                           'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
>-
>                                                           'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
>-
>                                                           'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
>-
>                                                           'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
>-
>                                                           'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
>-
>                                                           'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
>-
>                                                           'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
>-
>                                                           'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
>-
>                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
>-
>                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
>-
>                                                           'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
>-
>                                                           'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
>-
>                                                           'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
>-
>                                                           'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
>-
>                                                           'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
>-
>                                                           'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
>-
>                                                           'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
>-
>                                                           'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
>-
>                                                           'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
>-
>                                                           'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
>-
>                                                           'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
>-
>                                                           'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
>-
>                                                           'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
>-
>                                                           'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
>-
>                                                           'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
>-
>                                                           'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
>-
>                                                           'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
>-
>                                                           'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
>-
>                                                           'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
>-
>                                                           'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
>-
>                                                           'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
>-
>                                                           'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
>-
>                                                           'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
>-
>                                                           'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
>-
>                                                           'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
>-
>                                                           'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
>-
>                                                           'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
>-
>                                                           'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
>-
>                                                           'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
>-
>                                                           'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
>-
>                                                           'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
>-
>                                                           'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
>-
>                                                           'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
>-
>                                                           'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
>-
>                                                           'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
>-
>                                                           'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
>-
>                                                           'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
>-
>                                                           'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
>-
>                                                           'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
>-
>                                                           'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
>-
>                                                           'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
>-
>                                                           'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
>-
>                                                           'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
>-
>                                                           'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
>-
>                                                           'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
>-
>                                                           'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
>-
>                                                           'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
>-
>                                                           'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
>-
>                                                           'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
>-
>                                                           'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
>-
>                                                           'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
>-
>                                                           'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
>-
>                                                           'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
>-
>                                                           'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
>-
>                                                           'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
>-
>                                                           'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
>-
>                                                           'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
>-
>                                                           'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
>-
>                                                           'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
>-
>                                                           'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
>-
>                                                           'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
>-
>                                                           'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
>-
>                                                           'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
>-
>                                                   and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
>
>
>@@ -558,7 +459,6 @@
>         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
>           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>           type size hasn't changed
>-
>           7 enumerator deletions:
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>@@ -567,7 +467,6 @@
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>-
>           9 enumerator insertions:
>             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
>index 75ba0a50..11cd5682 100644
>--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
>+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
>@@ -22,7 +22,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
>   'enum __anonymous_enum__2 at spice.h:471:1' changed:
>     type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>     type size hasn't changed
>-
>     7 enumerator deletions:
>       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>@@ -31,7 +30,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
>       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>-
>     9 enumerator insertions:
>       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>@@ -48,7 +46,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
>       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
>   'typedef spice_image_compression_t at spice.h:479:1' changed:
>     typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
>-
>     2 impacted interfaces:
>       function spice_image_compression_t spice_server_get_image_compression(SpiceServer*)
>       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
>diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>index f8e60b50..d0381ce5 100644
>--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>@@ -60,7 +60,6 @@
>         type size hasn't changed
>         1 enumerator insertion:
>           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
>-
>         1 enumerator change:
>           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
>
>@@ -129,7 +128,6 @@
>
>
>
>-
>                1 member function deletion:
>                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
>
>@@ -138,11 +136,8 @@
>
>                3 data member deletions:
>                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
>-
>                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
>-
>                  '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) (by +128 bits)
>                 type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed:
>diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>index 10816705..89c8efa3 100644
>--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>@@ -31,7 +31,6 @@
>         type size hasn't changed
>         1 enumerator insertion:
>           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
>-
>         1 enumerator change:
>           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
>
>diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
>index 8f5d0b6b..c39851d3 100644
>--- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
>+++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
>@@ -7,14 +7,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>     return type changed:
>       type name changed from 'int' to 'float'
>       type size hasn't changed
>-
>     parameter 1 of type 'int' changed:
>       type name changed from 'int' to 'float'
>       type size hasn't changed
>-
>     parameter 2 of type 'int' changed:
>       type name changed from 'int' to 'float'
>       type size hasn't changed
>
>
>-
>diff --git a/tests/data/test-diff-suppr/test35-leaf-report-0.txt b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
>index 411cc1b4..244455ae 100644
>--- a/tests/data/test-diff-suppr/test35-leaf-report-0.txt
>+++ b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
>@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>   type size changed from 32 to 64 (in bits)
>   1 data member insertion:
>     'char leaf::m1', at offset 32 (in bits) at test35-leaf-v1.cc:8:1
>-
>   one impacted interface:
>     function void fn(C&)
>diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>index b12a8a61..f286cc7b 100644
>--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>@@ -7,7 +7,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>   type size changed from 32 to 64 (in bits)
>   1 data member insertion:
>     'char leaf1::m1', at offset 32 (in bits) at test36-leaf-v1.cc:7:1
>-
>   3 impacted interfaces:
>     function void interface1(struct_type*)
>     function void interface2(struct_type&)
>@@ -20,7 +19,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
>    and size changed from 32 to 64 (in bits) (by +32 bits)
>    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
>-
>   3 impacted interfaces:
>     function void interface1(struct_type*)
>     function void interface2(struct_type&)
>diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
>index 4b1681bc..d772bd1d 100644
>--- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
>+++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
>@@ -8,7 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       type size hasn't changed
>       1 enumerator insertion:
>         'EnumType1::ee3_inserted' value '3'
>-
>       1 enumerator change:
>         'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1
>
>@@ -18,7 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       type size hasn't changed
>       1 enumerator insertion:
>         'EnumType0::e3_inserted' value '3'
>-
>       1 enumerator change:
>         'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1
>
>-- 
>2.25.1.481.gfbce0eb801-goog
>
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 4/5] [abidiff] Output 2-space indentation consistently.
  2020-03-12  6:30 ` [PATCH 4/5] [abidiff] Output 2-space indentation consistently Giuliano Procida
  2020-03-13 15:38   ` [PATCH 4/5 v2] " Giuliano Procida
@ 2020-03-14 20:12   ` Matthias Maennich
  1 sibling, 0 replies; 21+ messages in thread
From: Matthias Maennich @ 2020-03-14 20:12 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, dodji, kernel-team

On Thu, Mar 12, 2020 at 06:30:35AM +0000, Android Kernel Team wrote:
>abidiff emits hierarchical difference information using 2-space
>indentation, almost everywhere.
>
>In a few places, long lines are split up and 1-space is used for
>clarity. Otherwise 1-space indentation appears to be only used when
>reporting:
>
>    - data member changes (not additions or removals)
>    - the change of the type of a variable
>
>This patch resolves these inconsistencies in favour of 2-space
>indentation.
>
>	* src/abg-default-reporter.cc (report): In the
>	class_or_union_diff override, use 2-space indentation when
>        listing changed members. In the var_diff override, do the same
>        for variable type changes.
>	* src/abg-leaf-reporter.cc: Ditto.
>        * tests/data/test-*/*report*.txt: Update many test cases.
>
>Signed-off-by: Giuliano Procida <gprocida@google.com>

Thanks for cleaning this up!

Reviewed-by: Matthias Maennich <maennich@google.com>

Cheers,
Matthias

>---
> src/abg-default-reporter.cc                   |   6 +-
> src/abg-leaf-reporter.cc                      |   6 +-
> .../test-abidiff-exit/test-leaf0-report.txt   |   4 +-
> .../test-abidiff-exit/test-leaf1-report.txt   |   4 +-
> .../test-no-stray-comma-report.txt            |  10 +-
> .../test-abidiff/test-PR18791-report0.txt     | 112 +--
> .../data/test-abidiff/test-struct0-report.txt |   8 +-
> .../data/test-abidiff/test-struct1-report.txt |  10 +-
> tests/data/test-abidiff/test-var0-report.txt  |   6 +-
> .../PR25058-liblttng-ctl-report-1.txt         | 200 ++---
> tests/data/test-diff-dwarf/test0-report.txt   |   2 +-
> tests/data/test-diff-dwarf/test1-report.txt   |   2 +-
> tests/data/test-diff-dwarf/test10-report.txt  |  24 +-
> tests/data/test-diff-dwarf/test11-report.txt  |  18 +-
> tests/data/test-diff-dwarf/test13-report.txt  |  14 +-
> .../test27-local-base-diff-report.txt         |   2 +-
> .../test32-fnptr-changes-report-0.txt         |  20 +-
> .../test33-fnref-changes-report-0.txt         |  22 +-
> ...t35-pr19173-libfoo-long-clang-report-0.txt |   6 +-
> ...est35-pr19173-libfoo-long-gcc-report-0.txt |   6 +-
> .../test-diff-dwarf/test39-union-report-0.txt |   8 +-
> tests/data/test-diff-dwarf/test4-report.txt   |   2 +-
> .../data/test-diff-dwarf/test40-report-0.txt  |  14 +-
> .../test44-anon-struct-union-report-0.txt     |   6 +-
> .../test45-anon-dm-change-report-0.txt        |   6 +-
> .../test-diff-dwarf/test46-rust-report-0.txt  |   2 +-
> tests/data/test-diff-dwarf/test5-report.txt   |   2 +-
> tests/data/test-diff-dwarf/test6-report.txt   |   2 +-
> tests/data/test-diff-dwarf/test8-report.txt   |  10 +-
> tests/data/test-diff-dwarf/test9-report.txt   |   4 +-
> .../libtest45-basic-type-change-report-0.txt  |  24 +-
> .../libtest45-basic-type-change-report-1.txt  |  12 +-
> tests/data/test-diff-filter/test0-report.txt  |   4 +-
> tests/data/test-diff-filter/test01-report.txt |   4 +-
> tests/data/test-diff-filter/test1-report.txt  |   2 +-
> tests/data/test-diff-filter/test13-report.txt |   8 +-
> .../data/test-diff-filter/test15-0-report.txt |   8 +-
> .../data/test-diff-filter/test15-1-report.txt |  10 +-
> .../data/test-diff-filter/test16-report-2.txt |   6 +-
> tests/data/test-diff-filter/test16-report.txt |   2 +-
> .../data/test-diff-filter/test17-0-report.txt |   2 +-
> .../data/test-diff-filter/test17-1-report.txt |   6 +-
> tests/data/test-diff-filter/test18-report.txt |   6 +-
> tests/data/test-diff-filter/test2-report.txt  |   4 +-
> .../test21-compatible-vars-report-0.txt       |   4 +-
> .../test24-compatible-vars-report-1.txt       |   8 +-
> .../test25-cyclic-type-report-1.txt           |   4 +-
> ...st26-qualified-redundant-node-report-0.txt |  10 +-
> ...st26-qualified-redundant-node-report-1.txt |  16 +-
> ...t-and-filtered-children-nodes-report-1.txt |   4 +-
> ...t-and-filtered-children-nodes-report-2.txt |  16 +-
> ...st29-finer-redundancy-marking-report-0.txt |   2 +-
> tests/data/test-diff-filter/test3-report.txt  |   2 +-
> .../test30-pr18904-rvalueref-report0.txt      | 206 ++---
> .../test30-pr18904-rvalueref-report1.txt      | 206 ++---
> .../test30-pr18904-rvalueref-report2.txt      | 206 ++---
> .../test31-pr18535-libstdc++-report-0.txt     |  12 +-
> .../test31-pr18535-libstdc++-report-1.txt     |  12 +-
> .../test35-pr18754-no-added-syms-report-0.txt | 206 ++---
> .../test35-pr18754-no-added-syms-report-1.txt |   6 +-
> .../data/test-diff-filter/test36-report-0.txt |  18 +-
> .../data/test-diff-filter/test37-report-0.txt |  18 +-
> .../test39/test39-report-0.txt                |  20 +-
> .../test44-anonymous-data-member-report-0.txt |  10 +-
> .../test44-anonymous-data-member-report-1.txt |  12 +-
> ...x86_64--2.24.2-30.fc30.x86_64-report-0.txt |  42 +-
> .../PR24690/PR24690-report-0.txt              |   8 +-
> ...libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt | 160 ++--
> ...4--libcdio-0.94-2.fc26.x86_64-report.1.txt |  48 +-
> ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt | 110 +--
> .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |  86 +-
> ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 738 +++++++++---------
> ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt | 262 +++----
> ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   8 +-
> .../test0-type-suppr-report-0.txt             |  10 +-
> .../test0-type-suppr-report-3.txt             |  10 +-
> .../test0-type-suppr-report-5.txt             |  10 +-
> .../test0-type-suppr-report-7.txt             |  10 +-
> .../test1-typedef-suppr-report-0.txt          |   4 +-
> .../test1-typedef-suppr-report-2.txt          |   2 +-
> .../test17-suppr-added-var-report-0.txt       |   8 +-
> .../test17-suppr-added-var-report-2.txt       |   8 +-
> .../test17-suppr-added-var-report-5.txt       |   8 +-
> .../test18-suppr-removed-var-report-0.txt     |   8 +-
> .../test18-suppr-removed-var-report-2.txt     |   8 +-
> .../test18-suppr-removed-var-report-5.txt     |   8 +-
> .../test2-struct-suppr-report-0.txt           |   2 +-
> .../test23-alias-filter-report-0.txt          |   2 +-
> .../test23-alias-filter-report-2.txt          |   2 +-
> .../test29-soname-report-3.txt                |   8 +-
> .../test29-soname-report-6.txt                |   8 +-
> .../test29-soname-report-8.txt                |   8 +-
> .../test3-struct-suppr-report-0.txt           |   4 +-
> .../test3-struct-suppr-report-1.txt           |   2 +-
> .../test3-struct-suppr-report-2.txt           |   2 +-
> .../data/test-diff-suppr/test30-report-0.txt  |  10 +-
> .../test-diff-suppr/test36-leaf-report-0.txt  |   6 +-
> .../test4-local-suppr-report-0.txt            |  12 +-
> .../test4-local-suppr-report-1.txt            |   2 +-
> .../test46-PR25128-report-1.txt               |  10 +-
> .../test46-PR25128-report-2.txt               |  10 +-
> .../test5-fn-suppr-report-0.txt               |   2 +-
> .../test5-fn-suppr-report-1.txt               |   2 +-
> .../test5-fn-suppr-report-2.txt               |   2 +-
> .../test5-fn-suppr-report-3.txt               |   2 +-
> .../test5-fn-suppr-report-4.txt               |   2 +-
> .../test5-fn-suppr-report-5.txt               |   2 +-
> .../test6-fn-suppr-report-0-1.txt             |   6 +-
> .../test6-fn-suppr-report-0.txt               |   6 +-
> .../test6-fn-suppr-report-1.txt               |   4 +-
> .../test6-fn-suppr-report-2.txt               |   4 +-
> .../test6-fn-suppr-report-3.txt               |   4 +-
> .../test7-var-suppr-report-0.txt              |  24 +-
> .../test7-var-suppr-report-1.txt              |  12 +-
> .../test7-var-suppr-report-2.txt              |  12 +-
> .../test7-var-suppr-report-3.txt              |  12 +-
> .../test7-var-suppr-report-4.txt              |  12 +-
> .../test7-var-suppr-report-7.txt              |  12 +-
> .../test7-var-suppr-report-8.txt              |  24 +-
> 119 files changed, 1711 insertions(+), 1711 deletions(-)
>
>diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
>index a0b9eeea..cbb4ef39 100644
>--- a/src/abg-default-reporter.cc
>+++ b/src/abg-default-reporter.cc
>@@ -1060,7 +1060,7 @@ default_reporter::report(const class_or_union_diff& d,
> 	    {
> 	      if ((*it)->to_be_reported())
> 		{
>-		  represent(*it, ctxt, out, indent + " ");
>+		  represent(*it, ctxt, out, indent + "  ");
> 		  out << "\n";
> 		}
> 	    }
>@@ -1080,7 +1080,7 @@ default_reporter::report(const class_or_union_diff& d,
> 	    {
> 	      if ((*it)->to_be_reported())
> 		{
>-		  represent(*it, ctxt, out, indent + " ");
>+		  represent(*it, ctxt, out, indent + "  ");
> 		  out << "\n";
> 		}
> 	    }
>@@ -1715,7 +1715,7 @@ default_reporter::report(const var_diff& d, ostream& out,
> 	{
> 	  RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER2(dif, "type");
> 	  out << indent << "type of variable changed:\n";
>-	  dif->report(out, indent + " ");
>+	  dif->report(out, indent + "  ");
> 	}
>     }
> }
>diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
>index f706bd21..fcea2626 100644
>--- a/src/abg-leaf-reporter.cc
>+++ b/src/abg-leaf-reporter.cc
>@@ -648,7 +648,7 @@ leaf_reporter::report(const class_or_union_diff& d,
> 	    {
> 	      if (diff_to_be_reported((*it).get()))
> 		{
>-		  represent(*it, ctxt, out, indent + " ",
>+		  represent(*it, ctxt, out, indent + "  ",
> 			    /*local_only=*/true);
> 		  out << "\n";
> 		  emitted_data_members_changes = true;
>@@ -675,7 +675,7 @@ leaf_reporter::report(const class_or_union_diff& d,
> 	    {
> 	      if (diff_to_be_reported((*it).get()))
> 		{
>-		  represent(*it, ctxt, out, indent + " ",
>+		  represent(*it, ctxt, out, indent + "  ",
> 			    /*local_only=*/true);
> 		  out << "\n";
> 		  emitted_data_members_changes = true;
>@@ -991,7 +991,7 @@ leaf_reporter::report(const var_diff& d,
> 	{
> 	  RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER2(dif, "type");
> 	  out << indent << "type of variable changed:\n";
>-	  dif->report(out, indent + " ");
>+	  dif->report(out, indent + "  ");
> 	}
>     }
> }
>diff --git a/tests/data/test-abidiff-exit/test-leaf0-report.txt b/tests/data/test-abidiff-exit/test-leaf0-report.txt
>index 7d15e28f..a347444c 100644
>--- a/tests/data/test-abidiff-exit/test-leaf0-report.txt
>+++ b/tests/data/test-abidiff-exit/test-leaf0-report.txt
>@@ -16,7 +16,7 @@ Removed/Changed/Added variables summary: 0 Removed, 1 Changed, 0 Added variable
>   [C] 'int changed_var' was changed to 'long int changed_var':
>     size of symbol changed from 4 to 8
>     type of variable changed:
>-     type name changed from 'int' to 'long int'
>-     type size changed from 32 to 64 (in bits)
>+      type name changed from 'int' to 'long int'
>+      type size changed from 32 to 64 (in bits)
>
>
>diff --git a/tests/data/test-abidiff-exit/test-leaf1-report.txt b/tests/data/test-abidiff-exit/test-leaf1-report.txt
>index 9da015bf..efa4a31f 100644
>--- a/tests/data/test-abidiff-exit/test-leaf1-report.txt
>+++ b/tests/data/test-abidiff-exit/test-leaf1-report.txt
>@@ -32,7 +32,7 @@ Removed/Changed/Added variables summary: 1 Removed, 1 Changed, 1 Added variable
>   [C] 'int changed_var' was changed to 'long int changed_var':
>     size of symbol changed from 4 to 8
>     type of variable changed:
>-     type name changed from 'int' to 'long int'
>-     type size changed from 32 to 64 (in bits)
>+      type name changed from 'int' to 'long int'
>+      type size changed from 32 to 64 (in bits)
>
>
>diff --git a/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt b/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt
>index a66500d5..929c5d85 100644
>--- a/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt
>+++ b/tests/data/test-abidiff-exit/test-no-stray-comma-report.txt
>@@ -6,9 +6,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> 'struct foo at test-b146198490-v0.cc:1:1' changed:
>   type size changed from 32 to 64 (in bits)
>   there are data member changes:
>-   type 'int[1]' of 'foo::bar' changed:
>-     type name changed from 'int[1]' to 'int[2]'
>-     array type size changed from 32 to 64
>-     array type subrange 1 changed length from 1 to 2
>-   and size changed from 32 to 64 (in bits) (by +32 bits)
>+    type 'int[1]' of 'foo::bar' changed:
>+      type name changed from 'int[1]' to 'int[2]'
>+      array type size changed from 32 to 64
>+      array type subrange 1 changed length from 1 to 2
>+    and size changed from 32 to 64 (in bits) (by +32 bits)
>
>diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
>index 7e16fe32..8570a984 100644
>--- a/tests/data/test-abidiff/test-PR18791-report0.txt
>+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
>@@ -16,46 +16,46 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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':
>-                        type size changed from 192 to 256 (in bits)
>-                        2 data member changes:
>-                         type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
>-                           underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
>-                             type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
>-                             type size changed from 128 to 192 (in bits)
>-                             1 base class change:
>-                               'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
>-                                 type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
>-                                 type size changed from 128 to 192 (in bits)
>-                                 1 data member change:
>-                                  type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
>-                                    type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
>+          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':
>+                          type size changed from 192 to 256 (in bits)
>+                          2 data member changes:
>+                            type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
>+                              underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
>+                                type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
>+                                type size changed from 128 to 192 (in bits)
>+                                1 base class change:
>+                                  'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
>+                                    type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
>                                     type size changed from 128 to 192 (in bits)
>                                     1 data member change:
>-                                     type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
>-                                       type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
>-                                       type size changed from 128 to 192 (in bits)
>-                                       1 base class insertion:
>-                                         struct std::__detail::_List_node_base
>-                                       2 data member deletions:
>-                                         'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>-                                         'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>-                                       1 data member insertion:
>-                                         'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>-                                     and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>-                                  and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
>+                                      type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
>+                                        type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
>+                                        type size changed from 128 to 192 (in bits)
>+                                        1 data member change:
>+                                          type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
>+                                            type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
>+                                            type size changed from 128 to 192 (in bits)
>+                                            1 base class insertion:
>+                                              struct std::__detail::_List_node_base
>+                                            2 data member deletions:
>+                                              'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>+                                              'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>+                                            1 data member insertion:
>+                                              'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>+                                          and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>+                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
>
>
>-                         'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
>+                            'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
>
>
>
>@@ -65,8 +65,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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
>+          type of 'sigc::slot_base* sigc::connection::slot_' changed:
>+            pointed to type 'class sigc::slot_base' changed, as reported earlier
>
>     parameter 1 of type 'const sigc::connection&' has sub-type changes:
>       in referenced type 'const sigc::connection':
>@@ -118,22 +118,22 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in pointed to type 'struct sigc::internal::signal_impl':
>         type size changed from 192 to 256 (in bits)
>         1 data member change:
>-         type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
>-           type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
>-           type size changed from 128 to 192 (in bits)
>-           1 base class change:
>-             'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
>-               type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
>-               type size changed from 128 to 192 (in bits)
>-               1 data member change:
>-                type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
>-                  type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
>-                  type size changed from 128 to 192 (in bits)
>-                  1 data member change:
>-                   type of 'std::__detail::_List_node_base std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed:
>-                     details were reported earlier
>-                   and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
>-                and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
>+          type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
>+            type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
>+            type size changed from 128 to 192 (in bits)
>+            1 base class change:
>+              'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
>+                type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
>+                type size changed from 128 to 192 (in bits)
>+                1 data member change:
>+                  type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
>+                    type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
>+                    type size changed from 128 to 192 (in bits)
>+                    1 data member change:
>+                      type of 'std::__detail::_List_node_base std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed:
>+                        details were reported earlier
>+                      and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
>+                  and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
>
>
>
>@@ -155,8 +155,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>             details were reported earlier
>
>         1 data member change:
>-         type of 'sigc::internal::signal_impl* sigc::signal_base::impl_' changed:
>-           pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier
>+          type of 'sigc::internal::signal_impl* sigc::signal_base::impl_' changed:
>+            pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier
>
>     parameter 1 of type 'const sigc::signal_base&' has sub-type changes:
>       in referenced type 'const sigc::signal_base':
>diff --git a/tests/data/test-abidiff/test-struct0-report.txt b/tests/data/test-abidiff/test-struct0-report.txt
>index f6c4cece..e22d59b1 100644
>--- a/tests/data/test-abidiff/test-struct0-report.txt
>+++ b/tests/data/test-abidiff/test-struct0-report.txt
>@@ -4,10 +4,10 @@
>     1 data member insertion:
>       'char s0::m2', at offset 64 (in bits)
>     1 data member change:
>-     type of 'char s0::m1' changed:
>-       type name changed from 'char' to 'unsigned int'
>-       type size changed from 8 to 32 (in bits)
>-       type alignment changed from 8 to 32
>+      type of 'char s0::m1' changed:
>+        type name changed from 'char' to 'unsigned int'
>+        type size changed from 8 to 32 (in bits)
>+        type alignment changed from 8 to 32
>
>   's0&' changed:
>     referenced type 'class s0' changed, as reported earlier
>diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
>index e334bf1a..242ba321 100644
>--- a/tests/data/test-abidiff/test-struct1-report.txt
>+++ b/tests/data/test-abidiff/test-struct1-report.txt
>@@ -9,12 +9,12 @@
>     1 data member insertion:
>       'double s0::m01', at offset 128 (in bits)
>     2 data member changes:
>-     type of 'int s0::m0' changed:
>-       type name changed from 'int' to 'char'
>-       type size changed from 32 to 8 (in bits)
>-       type alignment changed from 32 to 8
>+      type of 'int s0::m0' changed:
>+        type name changed from 'int' to 'char'
>+        type size changed from 32 to 8 (in bits)
>+        type alignment changed from 32 to 8
>
>-     'unsigned int s0::m2' offset changed from 128 to 192 (in bits) (by +64 bits)
>+      'unsigned int s0::m2' offset changed from 128 to 192 (in bits) (by +64 bits)
>   'const s0' changed:
>     unqualified underlying type 'class s0' changed, as reported earlier
>   'const s0*' changed:
>diff --git a/tests/data/test-abidiff/test-var0-report.txt b/tests/data/test-abidiff/test-var0-report.txt
>index b4c9a38e..996a4dc0 100644
>--- a/tests/data/test-abidiff/test-var0-report.txt
>+++ b/tests/data/test-abidiff/test-var0-report.txt
>@@ -1,6 +1,6 @@
> 1 changed declaration:
>   'int var' was changed to 'char var':
>     type of variable changed:
>-     type name changed from 'int' to 'char'
>-     type size changed from 32 to 8 (in bits)
>-     type alignment changed from 32 to 8
>+      type name changed from 'int' to 'char'
>+      type size changed from 32 to 8 (in bits)
>+      type alignment changed from 32 to 8
>diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>index aab271ff..088a0970 100644
>--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>@@ -90,24 +90,24 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>       in pointed to type 'struct lttng_event_context':
>         type size hasn't changed
>         2 data member changes:
>-         type of 'lttng_event_context_type lttng_event_context::ctx' changed:
>-           type size hasn't changed
>-           2 enumerator insertions:
>-             'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL' value '20'
>-             'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_USER' value '21'
>-
>-
>-         type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
>-           type name changed from '__anonymous_union__4' to '__anonymous_union__5'
>-           type size hasn't changed
>-           3 data member changes:
>-            name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
>-            name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
>-            name of '__anonymous_union__4::perf_counter' changed to '__anonymous_union__5::perf_counter'
>-           type changed from:
>-             union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
>-           to:
>-             union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
>+          type of 'lttng_event_context_type lttng_event_context::ctx' changed:
>+            type size hasn't changed
>+            2 enumerator insertions:
>+              'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL' value '20'
>+              'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_USER' value '21'
>+
>+
>+          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
>+            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
>+            type size hasn't changed
>+            3 data member changes:
>+              name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
>+              name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
>+              name of '__anonymous_union__4::perf_counter' changed to '__anonymous_union__5::perf_counter'
>+            type changed from:
>+              union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
>+            to:
>+              union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];}
>
>   [C] 'function lttng_condition_type lttng_condition_get_type(const lttng_condition*)' has some indirect sub-type changes:
>     return type changed:
>@@ -123,10 +123,10 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>       in pointed to type 'struct lttng_event':
>         type size hasn't changed
>         1 data member change:
>-         type of 'lttng_event_type lttng_event::type' changed:
>-           type size hasn't changed
>-           1 enumerator insertion:
>-             'lttng_event_type::LTTNG_EVENT_USERSPACE_PROBE' value '6'
>+          type of 'lttng_event_type lttng_event::type' changed:
>+            type size hasn't changed
>+            1 enumerator insertion:
>+              'lttng_event_type::LTTNG_EVENT_USERSPACE_PROBE' value '6'
>
>
>
>@@ -184,8 +184,8 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>         in pointed to type 'struct lttng_event_field':
>           type size hasn't changed
>           1 data member change:
>-           type of 'lttng_event lttng_event_field::event' changed:
>-             details were reported earlier
>+            type of 'lttng_event lttng_event_field::event' changed:
>+              details were reported earlier
>
>
>   [C] 'function int lttng_list_tracepoints(lttng_handle*, lttng_event**)' has some indirect sub-type changes:
>@@ -231,101 +231,101 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>       in pointed to type 'struct filter_parser_ctx':
>         type size hasn't changed
>         1 data member change:
>-         type of 'filter_ast* filter_parser_ctx::ast' changed:
>-           in pointed to type 'struct filter_ast':
>-             type size changed from 704 to 768 (in bits)
>-             2 data member changes:
>-              type of 'filter_node filter_ast::root' changed:
>-                type size changed from 576 to 640 (in bits)
>-                2 data member changes:
>-                 type of 'filter_node* filter_node::parent' changed:
>-                   pointed to type 'struct filter_node' changed; details are being reported
>-
>-                 type of 'union {struct {} unknown; struct {filter_node* child;} root; struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression; struct {op_type type; filter_node* lchild; filter_node* rchild;} op; struct {unary_op_type type; filter_node* child;} unary_op;} filter_node::u' changed:
>-                   type size changed from 320 to 384 (in bits)
>-                   4 data member changes:
>-                    type of 'struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression' changed:
>+          type of 'filter_ast* filter_parser_ctx::ast' changed:
>+            in pointed to type 'struct filter_ast':
>+              type size changed from 704 to 768 (in bits)
>+              2 data member changes:
>+                type of 'filter_node filter_ast::root' changed:
>+                  type size changed from 576 to 640 (in bits)
>+                  2 data member changes:
>+                    type of 'filter_node* filter_node::parent' changed:
>+                      pointed to type 'struct filter_node' changed; details are being reported
>+
>+                    type of 'union {struct {} unknown; struct {filter_node* child;} root; struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression; struct {op_type type; filter_node* lchild; filter_node* rchild;} op; struct {unary_op_type type; filter_node* child;} unary_op;} filter_node::u' changed:
>                       type size changed from 320 to 384 (in bits)
>-                      1 data member insertion:
>-                        'filter_node* next_bracket', at offset 320 (in bits)
>-                      5 data member changes:
>-                       type of 'ast_link_type post_op' changed:
>-                         type size hasn't changed
>-                         1 enumerator insertion:
>-                           'ast_link_type::AST_LINK_BRACKET' value '3'
>+                      4 data member changes:
>+                        type of 'struct {__anonymous_enum__ type; ast_link_type post_op; ast_link_type pre_op; union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u; filter_node* prev; filter_node* next;} expression' changed:
>+                          type size changed from 320 to 384 (in bits)
>+                          1 data member insertion:
>+                            'filter_node* next_bracket', at offset 320 (in bits)
>+                          5 data member changes:
>+                            type of 'ast_link_type post_op' changed:
>+                              type size hasn't changed
>+                              1 enumerator insertion:
>+                                'ast_link_type::AST_LINK_BRACKET' value '3'
>
>
>-                       type of 'ast_link_type pre_op' changed:
>-                         details were reported earlier
>+                            type of 'ast_link_type pre_op' changed:
>+                              details were reported earlier
>
>-                       type of 'union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u' changed:
>-                         type size hasn't changed
>-                         1 data member change:
>-                          type of 'filter_node* child' changed:
>-                            pointed to type 'struct filter_node' changed; details are being reported
>+                            type of 'union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u' changed:
>+                              type size hasn't changed
>+                              1 data member change:
>+                                type of 'filter_node* child' changed:
>+                                  pointed to type 'struct filter_node' changed; details are being reported
>
>-                         type changed from:
>-                           union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
>-                         to:
>-                           union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
>-                       type of 'filter_node* prev' changed:
>-                         pointed to type 'struct filter_node' changed; details are being reported
>+                              type changed from:
>+                                union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
>+                              to:
>+                                union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;}
>+                            type of 'filter_node* prev' changed:
>+                              pointed to type 'struct filter_node' changed; details are being reported
>
>-                       type of 'filter_node* next' changed:
>-                         pointed to type 'struct filter_node' changed; details are being reported
>+                            type of 'filter_node* next' changed:
>+                              pointed to type 'struct filter_node' changed; details are being reported
>
>
>-                    type of 'struct {op_type type; filter_node* lchild; filter_node* rchild;} op' changed:
>-                      type size hasn't changed
>-                      3 data member changes:
>-                       type of 'op_type type' changed:
>-                         type size hasn't changed
>-                         5 enumerator deletions:
>-                           'op_type::AST_OP_RSHIFT' value '6'
>-                           'op_type::AST_OP_LSHIFT' value '7'
>-                           'op_type::AST_OP_BIN_AND' value '10'
>-                           'op_type::AST_OP_BIN_OR' value '11'
>-                           'op_type::AST_OP_BIN_XOR' value '12'
>-                         5 enumerator insertions:
>-                           'op_type::AST_OP_BIT_RSHIFT' value '6'
>-                           'op_type::AST_OP_BIT_LSHIFT' value '7'
>-                           'op_type::AST_OP_BIT_AND' value '10'
>-                           'op_type::AST_OP_BIT_OR' value '11'
>-                           'op_type::AST_OP_BIT_XOR' value '12'
>+                        type of 'struct {op_type type; filter_node* lchild; filter_node* rchild;} op' changed:
>+                          type size hasn't changed
>+                          3 data member changes:
>+                            type of 'op_type type' changed:
>+                              type size hasn't changed
>+                              5 enumerator deletions:
>+                                'op_type::AST_OP_RSHIFT' value '6'
>+                                'op_type::AST_OP_LSHIFT' value '7'
>+                                'op_type::AST_OP_BIN_AND' value '10'
>+                                'op_type::AST_OP_BIN_OR' value '11'
>+                                'op_type::AST_OP_BIN_XOR' value '12'
>+                              5 enumerator insertions:
>+                                'op_type::AST_OP_BIT_RSHIFT' value '6'
>+                                'op_type::AST_OP_BIT_LSHIFT' value '7'
>+                                'op_type::AST_OP_BIT_AND' value '10'
>+                                'op_type::AST_OP_BIT_OR' value '11'
>+                                'op_type::AST_OP_BIT_XOR' value '12'
>
>
>-                       type of 'filter_node* lchild' changed:
>-                         pointed to type 'struct filter_node' changed; details are being reported
>+                            type of 'filter_node* lchild' changed:
>+                              pointed to type 'struct filter_node' changed; details are being reported
>
>-                       type of 'filter_node* rchild' changed:
>-                         pointed to type 'struct filter_node' changed; details are being reported
>+                            type of 'filter_node* rchild' changed:
>+                              pointed to type 'struct filter_node' changed; details are being reported
>
>
>-                    type of 'struct {filter_node* child;} root' changed:
>-                      type size hasn't changed
>-                      1 data member change:
>-                       type of 'filter_node* child' changed:
>-                         pointed to type 'struct filter_node' changed; details are being reported
>+                        type of 'struct {filter_node* child;} root' changed:
>+                          type size hasn't changed
>+                          1 data member change:
>+                            type of 'filter_node* child' changed:
>+                              pointed to type 'struct filter_node' changed; details are being reported
>
>
>-                    type of 'struct {unary_op_type type; filter_node* child;} unary_op' changed:
>-                      type size hasn't changed
>-                      2 data member changes:
>-                       type of 'unary_op_type type' changed:
>-                         type size hasn't changed
>-                         1 enumerator deletion:
>-                           'unary_op_type::AST_UNARY_BIN_NOT' value '4'
>-                         1 enumerator insertion:
>-                           'unary_op_type::AST_UNARY_BIT_NOT' value '4'
>+                        type of 'struct {unary_op_type type; filter_node* child;} unary_op' changed:
>+                          type size hasn't changed
>+                          2 data member changes:
>+                            type of 'unary_op_type type' changed:
>+                              type size hasn't changed
>+                              1 enumerator deletion:
>+                                'unary_op_type::AST_UNARY_BIN_NOT' value '4'
>+                              1 enumerator insertion:
>+                                'unary_op_type::AST_UNARY_BIT_NOT' value '4'
>
>
>-                       type of 'filter_node* child' changed:
>-                         pointed to type 'struct filter_node' changed; details are being reported
>+                            type of 'filter_node* child' changed:
>+                              pointed to type 'struct filter_node' changed; details are being reported
>
>
>
>
>-              'cds_list_head filter_ast::allocated_nodes' offset changed from 576 to 640 (in bits) (by +64 bits)
>+                'cds_list_head filter_ast::allocated_nodes' offset changed from 576 to 640 (in bits) (by +64 bits)
>
>
>   [C] 'function YYSTYPE* lttng_yyget_lval(yyscan_t)' has some indirect sub-type changes:
>@@ -334,8 +334,8 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>         underlying type 'union YYSTYPE' changed:
>           type size hasn't changed
>           1 data member change:
>-           type of 'filter_node* YYSTYPE::n' changed:
>-             pointed to type 'struct filter_node' changed, as reported earlier
>+            type of 'filter_node* YYSTYPE::n' changed:
>+              pointed to type 'struct filter_node' changed, as reported earlier
>
>           type changed from:
>             union YYSTYPE{long long int ll; char c; gc_string* gs; filter_node* n;}
>diff --git a/tests/data/test-diff-dwarf/test0-report.txt b/tests/data/test-diff-dwarf/test0-report.txt
>index 24d5e022..cad7ac78 100644
>--- a/tests/data/test-diff-dwarf/test0-report.txt
>+++ b/tests/data/test-diff-dwarf/test0-report.txt
>@@ -18,6 +18,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>               'unsigned int B0S0::m2', at offset 64 (in bits)
>
>         1 data member change:
>-         'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected'
>+          'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected'
>
>
>diff --git a/tests/data/test-diff-dwarf/test1-report.txt b/tests/data/test-diff-dwarf/test1-report.txt
>index 962bfac5..9c7178f3 100644
>--- a/tests/data/test-diff-dwarf/test1-report.txt
>+++ b/tests/data/test-diff-dwarf/test1-report.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'unsigned int S::m01', at offset 32 (in bits)
>         1 data member change:
>-         'int S::m1' offset changed from 32 to 64 (in bits) (by +32 bits)
>+          'int S::m1' offset changed from 32 to 64 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-dwarf/test10-report.txt b/tests/data/test-diff-dwarf/test10-report.txt
>index 84400c29..1745a4fb 100644
>--- a/tests/data/test-diff-dwarf/test10-report.txt
>+++ b/tests/data/test-diff-dwarf/test10-report.txt
>@@ -8,18 +8,18 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct S':
>         type size changed from 1152 to 1280 (in bits)
>         2 data member changes:
>-         type of 'int S::m0[5][3]' changed:
>-           type name changed from 'int[5][3]' to 'int[5][4]'
>-           array type size changed from 256 to 288
>-           array type subrange 2 changed length from 3 to 4
>+          type of 'int S::m0[5][3]' changed:
>+            type name changed from 'int[5][3]' to 'int[5][4]'
>+            array type size changed from 256 to 288
>+            array type subrange 2 changed length from 3 to 4
>
>-         type of 'int* S::m1[10]' changed:
>-           array element type 'int*' changed:
>-             in pointed to type 'int':
>-               type name changed from 'int' to 'char'
>-               type size changed from 32 to 8 (in bits)
>-           type name changed from 'int*[10]' to 'char*[10]'
>-           type size hasn't changed
>-         and offset changed from 512 to 640 (in bits) (by +128 bits)
>+          type of 'int* S::m1[10]' changed:
>+            array element type 'int*' changed:
>+              in pointed to type 'int':
>+                type name changed from 'int' to 'char'
>+                type size changed from 32 to 8 (in bits)
>+            type name changed from 'int*[10]' to 'char*[10]'
>+            type size hasn't changed
>+          and offset changed from 512 to 640 (in bits) (by +128 bits)
>
>
>diff --git a/tests/data/test-diff-dwarf/test11-report.txt b/tests/data/test-diff-dwarf/test11-report.txt
>index 32058bb6..ee5a753d 100644
>--- a/tests/data/test-diff-dwarf/test11-report.txt
>+++ b/tests/data/test-diff-dwarf/test11-report.txt
>@@ -8,15 +8,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct S':
>         type size changed from 1248 to 1536 (in bits)
>         2 data member changes:
>-         type of 'int S::m0[5][3]' changed:
>-           type name changed from 'int[5][3]' to 'int[6][3]'
>-           array type size changed from 256 to 288
>-           array type subrange 1 changed length from 5 to 6
>+          type of 'int S::m0[5][3]' changed:
>+            type name changed from 'int[5][3]' to 'int[6][3]'
>+            array type size changed from 256 to 288
>+            array type subrange 1 changed length from 5 to 6
>
>-         type of 'int S::m1[6][4]' changed:
>-           type name changed from 'int[6][4]' to 'int[6][5]'
>-           array type size changed from 320 to 352
>-           array type subrange 2 changed length from 4 to 5
>-         and offset changed from 480 to 576 (in bits) (by +96 bits)
>+          type of 'int S::m1[6][4]' changed:
>+            type name changed from 'int[6][4]' to 'int[6][5]'
>+            array type size changed from 320 to 352
>+            array type subrange 2 changed length from 4 to 5
>+          and offset changed from 480 to 576 (in bits) (by +96 bits)
>
>
>diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
>index 833879c7..d58b0a8e 100644
>--- a/tests/data/test-diff-dwarf/test13-report.txt
>+++ b/tests/data/test-diff-dwarf/test13-report.txt
>@@ -8,14 +8,14 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct S':
>         type size changed from 128 to 192 (in 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 '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 (in bits)
>+          type of 'unsigned int S::m2' changed:
>+            type name changed from 'unsigned int' to 'long long int'
>+            type size changed from 32 to 64 (in bits)
>
>-         'unsigned char S::m3' offset changed from 96 to 128 (in bits) (by +32 bits)
>+          'unsigned char S::m3' offset changed from 96 to 128 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt b/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
>index 63c7ec8c..3df36134 100644
>--- a/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
>+++ b/tests/data/test-diff-dwarf/test27-local-base-diff-report.txt
>@@ -19,6 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>             details were reported earlier
>
>         1 data member change:
>-         'int S::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
>+          'int S::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt b/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
>index 91b92d20..51b3920b 100644
>--- a/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt
>@@ -30,19 +30,19 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>     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 ()':
>-           parameter 1 of type 'double' was added
>+        type of 'int ()* S::fnptr0' changed:
>+          in pointed to type 'function type int ()':
>+            parameter 1 of type 'double' was added
>
>
>-       type of 'int ()* S::fnptr1' changed:
>-         in pointed to type 'function type int ()':
>-           entity changed from 'function type int ()' to 'void'
>-           type size changed from 64 to 0 (in bits)
>+        type of 'int ()* S::fnptr1' changed:
>+          in pointed to type 'function type int ()':
>+            entity changed from 'function type int ()' to 'void'
>+            type size changed from 64 to 0 (in bits)
>
>-       type of 'int ()* S::fnptr2' changed:
>-         entity changed from 'int ()*' to 'int'
>-         type size changed from 64 to 32 (in bits)
>+        type of 'int ()* S::fnptr2' changed:
>+          entity changed from 'int ()*' to 'int'
>+          type size changed from 64 to 32 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt b/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
>index fcab9120..c8da7868 100644
>--- a/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt
>@@ -31,20 +31,20 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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 ()':
>-             parameter 1 of type 'double' was added
>+          type of 'int ()& S::fnref0' changed:
>+            in referenced type 'function type int ()':
>+              parameter 1 of type 'double' was added
>
>
>-         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::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 ()':
>-             entity changed from 'function type int ()' to 'int'
>-             type size changed from 64 to 32 (in bits)
>+          type of 'int ()& S::fnref2' changed:
>+            in referenced type 'function type int ()':
>+              entity changed from 'function type int ()' to 'int'
>+              type size changed from 64 to 32 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt
>index 3db4c087..0046caae 100644
>--- a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt
>@@ -6,8 +6,8 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
>   [C] 'char buggy_symbol[5]' was changed to 'char buggy_symbol[10]':
>     size of symbol changed from 5 to 10
>     type of variable changed:
>-     type name changed from 'char[5]' to 'char[10]'
>-     array type size changed from 40 to 80
>-     array type subrange 1 changed length from 5 to 10
>+      type name changed from 'char[5]' to 'char[10]'
>+      array type size changed from 40 to 80
>+      array type subrange 1 changed length from 5 to 10
>
>
>diff --git a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt
>index 3db4c087..0046caae 100644
>--- a/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt
>@@ -6,8 +6,8 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
>   [C] 'char buggy_symbol[5]' was changed to 'char buggy_symbol[10]':
>     size of symbol changed from 5 to 10
>     type of variable changed:
>-     type name changed from 'char[5]' to 'char[10]'
>-     array type size changed from 40 to 80
>-     array type subrange 1 changed length from 5 to 10
>+      type name changed from 'char[5]' to 'char[10]'
>+      array type size changed from 40 to 80
>+      array type subrange 1 changed length from 5 to 10
>
>
>diff --git a/tests/data/test-diff-dwarf/test39-union-report-0.txt b/tests/data/test-diff-dwarf/test39-union-report-0.txt
>index 2f70de44..4e98e97d 100644
>--- a/tests/data/test-diff-dwarf/test39-union-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test39-union-report-0.txt
>@@ -8,10 +8,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in pointed to type 'union some_union_type':
>         type size changed from 64 to 96 (in bits)
>         1 data member change:
>-         type of 'S some_union_type::m2' changed:
>-           type size changed from 64 to 96 (in bits)
>-           1 data member insertion:
>-             'char S::S_member2', at offset 64 (in bits)
>+          type of 'S some_union_type::m2' changed:
>+            type size changed from 64 to 96 (in bits)
>+            1 data member insertion:
>+              'char S::S_member2', at offset 64 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-dwarf/test4-report.txt b/tests/data/test-diff-dwarf/test4-report.txt
>index e784dde6..42ea4807 100644
>--- a/tests/data/test-diff-dwarf/test4-report.txt
>+++ b/tests/data/test-diff-dwarf/test4-report.txt
>@@ -8,6 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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'
>+          'int C0::m0' access changed from 'private' to 'public'
>
>
>diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
>index f0f9e1a1..27dd48e4 100644
>--- a/tests/data/test-diff-dwarf/test40-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
>@@ -10,17 +10,17 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         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)
>+          '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
>+          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:
>@@ -30,7 +30,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         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)
>+          'int S1::m0' offset changed from 0 to 64 (in bits) (by +64 bits)
>+          'char S1::m1' offset changed from 32 to 96 (in bits) (by +64 bits)
>
>
>diff --git a/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt b/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt
>index ff0131a4..fd15a239 100644
>--- a/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt
>@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in pointed to type 'struct S0':
>         type size hasn't changed
>         1 data member change:
>-         type of 'union {int d; char c;} S0::m0' changed:
>-           entity changed from 'union {int d; char c;}' to 'int'
>-           type size hasn't changed
>+          type of 'union {int d; char c;} S0::m0' changed:
>+            entity changed from 'union {int d; char c;}' to 'int'
>+            type size hasn't changed
>
>
>
>diff --git a/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt b/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt
>index e43c3a89..4fb2f58e 100644
>--- a/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt
>@@ -10,15 +10,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char S1::m01', at offset 32 (in bits)
>         1 data member change:
>-         'char S1::m1' offset changed from 64 to 40 (in bits) (by -24 bits)
>+          'char S1::m1' offset changed from 64 to 40 (in bits) (by -24 bits)
>         1 data member change:
>-         anonymous data member struct {int m0; char m01;} at offset 0 (in bits) became data member 'int S1::m0'
>+          anonymous data member struct {int m0; char m01;} at offset 0 (in bits) became data member 'int S1::m0'
>
>   [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:
>-         data member int S0::m0 at offset 0 (in bits) became anonymous data member 'union {int m0; char m01;}'
>+          data member int S0::m0 at offset 0 (in bits) became anonymous data member 'union {int m0; char m01;}'
>
>
>diff --git a/tests/data/test-diff-dwarf/test46-rust-report-0.txt b/tests/data/test-diff-dwarf/test46-rust-report-0.txt
>index 66538cdf..109abd65 100644
>--- a/tests/data/test-diff-dwarf/test46-rust-report-0.txt
>+++ b/tests/data/test-diff-dwarf/test46-rust-report-0.txt
>@@ -11,7 +11,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       1 data member insertion:
>         'u32 two::Foo::b', at offset 32 (in bits)
>       1 data member change:
>-       name of 'one::Foo::a' changed to 'two::Foo::a'
>+        name of 'one::Foo::a' changed to 'two::Foo::a'
>     parameter 2 of type 'u32' was added
>
>
>diff --git a/tests/data/test-diff-dwarf/test5-report.txt b/tests/data/test-diff-dwarf/test5-report.txt
>index 74c9e3bf..81a4aa38 100644
>--- a/tests/data/test-diff-dwarf/test5-report.txt
>+++ b/tests/data/test-diff-dwarf/test5-report.txt
>@@ -8,6 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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'
>+          'int C0::m0' access changed from 'private' to 'public'
>
>
>diff --git a/tests/data/test-diff-dwarf/test6-report.txt b/tests/data/test-diff-dwarf/test6-report.txt
>index 755d37f8..cb7b00b6 100644
>--- a/tests/data/test-diff-dwarf/test6-report.txt
>+++ b/tests/data/test-diff-dwarf/test6-report.txt
>@@ -8,6 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct S0':
>         type size hasn't changed
>         1 data member change:
>-         name of 'S0::m2' changed to 'S0::m12'
>+          name of 'S0::m2' changed to 'S0::m12'
>
>
>diff --git a/tests/data/test-diff-dwarf/test8-report.txt b/tests/data/test-diff-dwarf/test8-report.txt
>index 5adaea5f..8ee5a975 100644
>--- a/tests/data/test-diff-dwarf/test8-report.txt
>+++ b/tests/data/test-diff-dwarf/test8-report.txt
>@@ -15,14 +15,14 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           'struct B0' changed:
>             type size hasn't changed
>             1 data member change:
>-             'char B0::m0' access changed from 'public' to 'private'
>+              'char B0::m0' access changed from 'public' to 'private'
>
>         1 base class insertion:
>           class B1
>         1 data member change:
>-         type of 'int S::m0' changed:
>-           type name changed from 'int' to 'char'
>-           type size changed from 32 to 8 (in bits)
>-         and offset changed from 32 to 64 (in bits) (by +32 bits), 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 (in bits)
>+          and offset changed from 32 to 64 (in bits) (by +32 bits), access changed from 'public' to 'private'
>
>
>diff --git a/tests/data/test-diff-dwarf/test9-report.txt b/tests/data/test-diff-dwarf/test9-report.txt
>index 914841bd..01814b45 100644
>--- a/tests/data/test-diff-dwarf/test9-report.txt
>+++ b/tests/data/test-diff-dwarf/test9-report.txt
>@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 1 Changed, 1 Added variables
>   [C] 'int global_var0' was changed to 'char global_var0':
>     size of symbol changed from 4 to 1
>     type of variable changed:
>-     type name changed from 'int' to 'char'
>-     type size changed from 32 to 8 (in bits)
>+      type name changed from 'int' to 'char'
>+      type size changed from 32 to 8 (in bits)
>
>
>diff --git a/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt b/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt
>index 78be7f06..45424dc2 100644
>--- a/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt
>+++ b/tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt
>@@ -12,10 +12,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct S0' at test45-basic-type-change-v1.cc:8:1:
>         type size hasn't changed
>         1 data member change:
>-         type of 'int* S0::m0' changed:
>-           in pointed to type 'int':
>-             type name changed from 'int' to 'char'
>-             type size changed from 32 to 8 (in bits)
>+          type of 'int* S0::m0' changed:
>+            in pointed to type 'int':
>+              type name changed from 'int' to 'char'
>+              type size changed from 32 to 8 (in bits)
>
>
>   [C] 'function int* foo1(S1&)' at test45-basic-type-change-v1.cc:28:1 has some indirect sub-type changes:
>@@ -27,10 +27,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct S1' at test45-basic-type-change-v1.cc:13:1:
>         type size hasn't changed
>         1 data member change:
>-         type of 'int* S1::m0' changed:
>-           in pointed to type 'int':
>-             type name changed from 'int' to 'char'
>-             type size changed from 32 to 8 (in bits)
>+          type of 'int* S1::m0' changed:
>+            in pointed to type 'int':
>+              type name changed from 'int' to 'char'
>+              type size changed from 32 to 8 (in bits)
>
>
>   [C] 'function const int foo2(S2&)' at test45-basic-type-change-v1.cc:32:1 has some indirect sub-type changes:
>@@ -40,10 +40,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct S2' at test45-basic-type-change-v1.cc:18:1:
>         type size hasn't changed
>         1 data member change:
>-         type of 'int* S2::m0' changed:
>-           in pointed to type 'int':
>-             type name changed from 'int' to 'char'
>-             type size changed from 32 to 8 (in bits)
>+          type of 'int* S2::m0' changed:
>+            in pointed to type 'int':
>+              type name changed from 'int' to 'char'
>+              type size changed from 32 to 8 (in bits)
>
>
>   [C] 'function int foo3(S2&)' at test45-basic-type-change-v1.cc:36:1 has some indirect sub-type changes:
>diff --git a/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt b/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt
>index e5e4bd30..f442f4d8 100644
>--- a/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt
>+++ b/tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt
>@@ -26,8 +26,8 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> 'struct S0 at test45-basic-type-change-v0.cc:8:1' changed:
>   type size hasn't changed
>   there are data member changes:
>-   type 'int*' of 'S0::m0' changed:
>-     pointer type changed from: 'int*' to: 'char*'
>+    type 'int*' of 'S0::m0' changed:
>+      pointer type changed from: 'int*' to: 'char*'
>
>
>
>@@ -35,8 +35,8 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> 'struct S1 at test45-basic-type-change-v0.cc:13:1' changed:
>   type size hasn't changed
>   there are data member changes:
>-   type 'int*' of 'S1::m0' changed:
>-     pointer type changed from: 'int*' to: 'char*'
>+    type 'int*' of 'S1::m0' changed:
>+      pointer type changed from: 'int*' to: 'char*'
>
>
>
>@@ -44,7 +44,7 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> 'struct S2 at test45-basic-type-change-v0.cc:18:1' changed:
>   type size hasn't changed
>   there are data member changes:
>-   type 'int*' of 'S2::m0' changed:
>-     pointer type changed from: 'int*' to: 'char*'
>+    type 'int*' of 'S2::m0' changed:
>+      pointer type changed from: 'int*' to: 'char*'
>
>
>diff --git a/tests/data/test-diff-filter/test0-report.txt b/tests/data/test-diff-filter/test0-report.txt
>index 0d5d2e52..6967ee31 100644
>--- a/tests/data/test-diff-filter/test0-report.txt
>+++ b/tests/data/test-diff-filter/test0-report.txt
>@@ -17,9 +17,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>             1 data member insertion:
>               'unsigned int B0S0::m2', at offset 32 (in bits)
>             1 data member change:
>-             'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 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) (by +32 bits)
>+          'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test01-report.txt b/tests/data/test-diff-filter/test01-report.txt
>index 0407bd46..ff759af7 100644
>--- a/tests/data/test-diff-filter/test01-report.txt
>+++ b/tests/data/test-diff-filter/test01-report.txt
>@@ -17,9 +17,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>             1 data member insertion:
>               'unsigned int B0S0::m2', at offset 32 (in bits)
>             1 data member change:
>-             'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 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) (by +32 bits), access changed from 'private' to 'protected'
>+          'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected'
>
>
>diff --git a/tests/data/test-diff-filter/test1-report.txt b/tests/data/test-diff-filter/test1-report.txt
>index 0c1d1911..064b41ec 100644
>--- a/tests/data/test-diff-filter/test1-report.txt
>+++ b/tests/data/test-diff-filter/test1-report.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char C1::m0', at offset 0 (in bits)
>         1 data member change:
>-         'int C1::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int C1::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test13-report.txt b/tests/data/test-diff-filter/test13-report.txt
>index 169771ec..6a0f152a 100644
>--- a/tests/data/test-diff-filter/test13-report.txt
>+++ b/tests/data/test-diff-filter/test13-report.txt
>@@ -15,9 +15,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 base class insertion:
>           class B1
>         1 data member change:
>-         type of 'int S::m0' changed:
>-           type name changed from 'int' to 'char'
>-           type size changed from 32 to 8 (in bits)
>-         and offset changed from 32 to 64 (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 (in bits)
>+          and offset changed from 32 to 64 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test15-0-report.txt b/tests/data/test-diff-filter/test15-0-report.txt
>index 2c162d55..f2d37cb2 100644
>--- a/tests/data/test-diff-filter/test15-0-report.txt
>+++ b/tests/data/test-diff-filter/test15-0-report.txt
>@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
>
>   [C] 'S* var1' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 64 to 96 (in bits)
>-       1 data member insertion:
>-         'unsigned int S::m2', at offset 64 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 64 to 96 (in bits)
>+        1 data member insertion:
>+          'unsigned int S::m2', at offset 64 (in bits)
>
>
>diff --git a/tests/data/test-diff-filter/test15-1-report.txt b/tests/data/test-diff-filter/test15-1-report.txt
>index 82c6575c..ed4825ca 100644
>--- a/tests/data/test-diff-filter/test15-1-report.txt
>+++ b/tests/data/test-diff-filter/test15-1-report.txt
>@@ -5,13 +5,13 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables
>
>   [C] 'S* var1' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 64 to 96 (in bits)
>-       1 data member insertion:
>-         'unsigned int S::m2', at offset 64 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 64 to 96 (in bits)
>+        1 data member insertion:
>+          'unsigned int S::m2', at offset 64 (in bits)
>
>   [C] 'S* var2' was changed:
>     type of variable changed:
>-     pointed to type 'struct S' changed, as reported earlier
>+      pointed to type 'struct S' changed, as reported earlier
>
>
>diff --git a/tests/data/test-diff-filter/test16-report-2.txt b/tests/data/test-diff-filter/test16-report-2.txt
>index 744bdced..c85d1a84 100644
>--- a/tests/data/test-diff-filter/test16-report-2.txt
>+++ b/tests/data/test-diff-filter/test16-report-2.txt
>@@ -10,8 +10,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'int S::m0', at offset 0 (in bits)
>         1 data member change:
>-         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) (by +64 bits)
>+          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) (by +64 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test16-report.txt b/tests/data/test-diff-filter/test16-report.txt
>index cf2bd81c..80c3f1ec 100644
>--- a/tests/data/test-diff-filter/test16-report.txt
>+++ b/tests/data/test-diff-filter/test16-report.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'int S::m0', at offset 0 (in bits)
>         1 data member change:
>-         'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
>+          'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test17-0-report.txt b/tests/data/test-diff-filter/test17-0-report.txt
>index 2d2f8650..a90cab1e 100644
>--- a/tests/data/test-diff-filter/test17-0-report.txt
>+++ b/tests/data/test-diff-filter/test17-0-report.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'int S::m0', at offset 0 (in bits)
>         1 data member change:
>-         'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
>+          'S* S::m2' offset changed from 0 to 64 (in bits) (by +64 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test17-1-report.txt b/tests/data/test-diff-filter/test17-1-report.txt
>index 1c75796c..83a8945c 100644
>--- a/tests/data/test-diff-filter/test17-1-report.txt
>+++ b/tests/data/test-diff-filter/test17-1-report.txt
>@@ -10,9 +10,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'int S::m0', at offset 0 (in bits)
>         1 data member change:
>-         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) (by +64 bits)
>+          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) (by +64 bits)
>
>   [C] 'function void foo(S&)' has some indirect sub-type changes:
>     parameter 1 of type 'S&' has sub-type changes:
>diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
>index 6ade5bdf..2535b4e9 100644
>--- a/tests/data/test-diff-filter/test18-report.txt
>+++ b/tests/data/test-diff-filter/test18-report.txt
>@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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
>+          type of 'int S::m0' changed:
>+            type name changed from 'int' to 'unsigned int'
>+            type size hasn't changed
>
>
>
>diff --git a/tests/data/test-diff-filter/test2-report.txt b/tests/data/test-diff-filter/test2-report.txt
>index 87ef1a4d..78a3c9d3 100644
>--- a/tests/data/test-diff-filter/test2-report.txt
>+++ b/tests/data/test-diff-filter/test2-report.txt
>@@ -21,7 +21,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char C0::m2', at offset 0 (in bits)
>         2 data member changes:
>-         'E0 C0::m0' offset changed from 0 to 8 (in bits) (by +8 bits)
>-         'E1 C0::m1' offset changed from 8 to 16 (in bits) (by +8 bits)
>+          'E0 C0::m0' offset changed from 0 to 8 (in bits) (by +8 bits)
>+          'E1 C0::m1' offset changed from 8 to 16 (in bits) (by +8 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt b/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt
>index 606c619d..622f6cd4 100644
>--- a/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt
>+++ b/tests/data/test-diff-filter/test21-compatible-vars-report-0.txt
>@@ -5,7 +5,7 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
>
>   [C] 'const volatile S* const* const* var0' was changed to 'const volatile typedef_of_S* const* const* var0':
>     type of variable changed:
>-     in pointed to type 'const volatile S* const* const':
>-       'const volatile S* const* const' changed to 'const volatile typedef_of_S* const* const'
>+      in pointed to type 'const volatile S* const* const':
>+        'const volatile S* const* const' changed to 'const volatile typedef_of_S* const* const'
>
>
>diff --git a/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt b/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
>index 85125410..08554b4b 100644
>--- a/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
>+++ b/tests/data/test-diff-filter/test24-compatible-vars-report-1.txt
>@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
>
>   [C] 'S a[2]' was changed to 'typedef_of_S a[2]':
>     type of variable 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
>+      array element type 'struct S' changed:
>+        entity changed from 'struct S' to compatible type 'typedef typedef_of_S'
>+      type name changed from 'S[2]' to 'typedef_of_S[2]'
>+      type size hasn't changed
>
>
>diff --git a/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt b/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
>index dba30227..55249d4f 100644
>--- a/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
>+++ b/tests/data/test-diff-filter/test25-cyclic-type-report-1.txt
>@@ -10,8 +10,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char S::m1', at offset 32 (in bits)
>         1 data member change:
>-         type of 'S* S::m2' changed:
>-           pointed to type 'struct S' changed; details are being reported
>+          type of 'S* S::m2' changed:
>+            pointed to type 'struct S' changed; details are being reported
>
>
>
>diff --git a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
>index a226b6c5..fbfae8d4 100644
>--- a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
>+++ b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt
>@@ -11,11 +11,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>             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)
>+                type of 'FooStruct::Embedded* S::m1' changed:
>+                  in pointed to type 'struct FooStruct::Embedded':
>+                    type size hasn't changed
>+                    1 data member insertion:
>+                      'char FooStruct::Embedded::m1', at offset 32 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
>index 0f032cbd..760576ff 100644
>--- a/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
>+++ b/tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt
>@@ -11,15 +11,15 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>             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)
>+                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)
>
>-               type of 'FooStruct::Embedded** S::m2' changed:
>-                 in pointed to type 'FooStruct::Embedded*':
>-                   pointed to type 'struct FooStruct::Embedded' changed, as reported earlier
>+                type of 'FooStruct::Embedded** S::m2' changed:
>+                  in pointed to type 'FooStruct::Embedded*':
>+                    pointed to type 'struct FooStruct::Embedded' changed, as reported earlier
>
>
>
>diff --git a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
>index cfbc7918..b9bdb216 100644
>--- a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
>+++ b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt
>@@ -15,8 +15,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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
>+          type of 'S0* S::m0' changed:
>+            pointed to type 'struct S0' changed, as reported earlier
>
>
>
>diff --git a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
>index eba592a2..dd5afb5f 100644
>--- a/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
>+++ b/tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt
>@@ -21,16 +21,16 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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
>+          type of 'S0* S::m0' changed:
>+            pointed to type 'struct S0' changed, as reported earlier
>
>-         type of 'S1* S::m1' changed:
>-           in pointed to type 'struct S1':
>-             entity changed from 'struct S1' to compatible type 'typedef S1Renamed'
>+          type of 'S1* S::m1' changed:
>+            in pointed to type 'struct S1':
>+              entity changed from 'struct S1' to compatible type 'typedef S1Renamed'
>
>-         type of 'S2* S::m2' changed:
>-           in pointed to type 'struct S2':
>-             entity changed from 'struct S2' to compatible type 'typedef S2Renamed'
>+          type of 'S2* S::m2' changed:
>+            in pointed to type 'struct S2':
>+              entity changed from 'struct S2' to compatible type 'typedef S2Renamed'
>
>
>
>diff --git a/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt b/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
>index a7ee9d55..5a84c530 100644
>--- a/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
>+++ b/tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt
>@@ -23,6 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>             details were reported earlier
>
>         1 data member change:
>-         'int inherited::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
>+          'int inherited::m0' offset changed from 32 to 64 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test3-report.txt b/tests/data/test-diff-filter/test3-report.txt
>index ef48956a..ff099fd9 100644
>--- a/tests/data/test-diff-filter/test3-report.txt
>+++ b/tests/data/test-diff-filter/test3-report.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'int S::m0', at offset 0 (in bits)
>         1 data member change:
>-         'char S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'char S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>index 5def3a08..678c9f61 100644
>--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>@@ -1300,14 +1300,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>       in pointed to type 'struct VarDesc':
>         type size hasn't changed
>         1 data member changes (1 filtered):
>-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>-           type size hasn't changed
>-           1 data member changes (1 filtered):
>-            anonymous data member at offset 0 (in bits) changed from:
>-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>-            to:
>-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
>+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>+            type size hasn't changed
>+            1 data member changes (1 filtered):
>+              anonymous data member at offset 0 (in bits) changed from:
>+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>+              to:
>+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
>
>
>
>@@ -1318,11 +1318,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>           type size hasn't changed
>           1 data member change:
>-           type of 'void ()* InitTableEntry::func' changed:
>-             in pointed to type 'function type void ()':
>-               parameter 1 of type 'typedef MyoArena' was added
>+            type of 'void ()* InitTableEntry::func' changed:
>+              in pointed to type 'function type void ()':
>+                parameter 1 of type 'typedef MyoArena' was added
>
>-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
>+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
>
>   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' has some indirect sub-type changes:
>     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
>@@ -1340,97 +1340,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>             'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits)
>             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits)
>           8 data member changes (2 filtered):
>-           type of 'Engine& OffloadDescriptor::m_device' changed:
>-             in referenced type 'struct Engine':
>-               type size changed from 2752 to 5504 (in bits)
>-               1 data member deletion:
>-                 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>-               7 data member insertions:
>-                 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>-                 'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>-                 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
>-                 'int Engine::m_num_cores', at offset 3776 (in bits)
>-                 'int Engine::m_num_threads', at offset 3808 (in bits)
>-                 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
>-                 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
>-               4 data member changes:
>-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
>-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
>-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
>-                    type size changed from 384 to 704 (in bits)
>-                    1 data member insertion:
>-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
>-                    1 data member change:
>-                     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:
>-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
>-                       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> >
>-                              2 data member deletions:
>-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>-                              1 data member change:
>-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>-                                 type size changed from 8 to 384 (in bits)
>-                                 1 base class deletion:
>-                                   struct std::binary_function<PtrData, PtrData, bool>
>-                                 1 base class insertion:
>-                                   class std::allocator<std::_Rb_tree_node<PtrData> >
>-                                 3 data member insertions:
>-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
>-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
>-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
>-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
>+            type of 'Engine& OffloadDescriptor::m_device' changed:
>+              in referenced type 'struct Engine':
>+                type size changed from 2752 to 5504 (in bits)
>+                1 data member deletion:
>+                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>+                7 data member insertions:
>+                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>+                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>+                  'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
>+                  'int Engine::m_num_cores', at offset 3776 (in bits)
>+                  'int Engine::m_num_threads', at offset 3808 (in bits)
>+                  'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
>+                  'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
>+                4 data member changes:
>+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
>+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
>+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
>+                      type size changed from 384 to 704 (in bits)
>+                      1 data member insertion:
>+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
>+                      1 data member change:
>+                        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:
>+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
>+                          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> >
>+                                  2 data member deletions:
>+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>+                                  1 data member change:
>+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>+                                      type size changed from 8 to 384 (in bits)
>+                                      1 base class deletion:
>+                                        struct std::binary_function<PtrData, PtrData, bool>
>+                                      1 base class insertion:
>+                                        class std::allocator<std::_Rb_tree_node<PtrData> >
>+                                      3 data member insertions:
>+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
>+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
>+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
>+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
>
>-                '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
>-                  array type subrange 1 changed length from 6 to 7
>-                and offset changed from 2368 to 5056 (in bits) (by +2688 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
>+                    array type subrange 1 changed length from 6 to 7
>+                  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) (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 (in bits)
>-               2 data member insertions:
>-                 '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) (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 (in 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) (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)
>+            '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 (in bits)
>+                2 data member insertions:
>+                  '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) (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 (in 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) (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) (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)
>+            '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:
>@@ -1513,9 +1513,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]':
>     size of symbol changed from 48 to 56
>     type of variable changed:
>-     type name changed from 'const char*[6]' to 'const char*[7]'
>-     array type size changed from 384 to 448
>-     array type subrange 1 changed length from 6 to 7
>+      type name changed from 'const char*[6]' to 'const char*[7]'
>+      array type size changed from 384 to 448
>+      array type subrange 1 changed length from 6 to 7
>
>
> 7 Removed function symbols not referenced by debug info:
>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 3bc8f6d7..318d0bc2 100644
>--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
>+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
>@@ -1300,14 +1300,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>       in pointed to type 'struct VarDesc' at offload_common.h:254:1:
>         type size hasn't changed
>         1 data member changes (1 filtered):
>-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>-           type size hasn't changed
>-           1 data member changes (1 filtered):
>-            anonymous data member at offset 0 (in bits) changed from:
>-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>-            to:
>-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
>+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>+            type size hasn't changed
>+            1 data member changes (1 filtered):
>+              anonymous data member at offset 0 (in bits) changed from:
>+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>+              to:
>+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
>
>
>
>@@ -1318,11 +1318,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>           type size hasn't changed
>           1 data member change:
>-           type of 'void ()* InitTableEntry::func' changed:
>-             in pointed to type 'function type void ()':
>-               parameter 1 of type 'typedef MyoArena' was added
>+            type of 'void ()* InitTableEntry::func' changed:
>+              in pointed to type 'function type void ()':
>+                parameter 1 of type 'typedef MyoArena' was added
>
>-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
>+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
>
>   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' at compiler_if_host.cpp:456:1 has some indirect sub-type changes:
>     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
>@@ -1340,97 +1340,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>             'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits) at offload_host.h:360:1
>             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits) at offload_host.h:362:1
>           8 data member changes (2 filtered):
>-           type of 'Engine& OffloadDescriptor::m_device' changed:
>-             in referenced type 'struct Engine' at offload_engine.h:395:1:
>-               type size changed from 2752 to 5504 (in bits)
>-               1 data member deletion:
>-                 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
>-               7 data member insertions:
>-                 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
>-                 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
>-                 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) at offload_engine.h:638:1
>-                 'int Engine::m_num_cores', at offset 3776 (in bits) at offload_engine.h:639:1
>-                 'int Engine::m_num_threads', at offset 3808 (in bits) at offload_engine.h:640:1
>-                 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) at offload_engine.h:641:1
>-                 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) at offload_engine.h:644:1
>-               4 data member changes:
>-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
>-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
>-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
>-                    type size changed from 384 to 704 (in bits)
>-                    1 data member insertion:
>-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) at offload_engine.h:204:1
>-                    1 data member change:
>-                     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:
>-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
>-                       underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>-                              2 data member deletions:
>-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
>-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
>-                              1 data member change:
>-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>-                                 type size changed from 8 to 384 (in bits)
>-                                 1 base class deletion:
>-                                   struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
>-                                 1 base class insertion:
>-                                   class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
>-                                 3 data member insertions:
>-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits) at stl_tree.h:592:1
>-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
>-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
>-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
>-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
>-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
>+            type of 'Engine& OffloadDescriptor::m_device' changed:
>+              in referenced type 'struct Engine' at offload_engine.h:395:1:
>+                type size changed from 2752 to 5504 (in bits)
>+                1 data member deletion:
>+                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
>+                7 data member insertions:
>+                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
>+                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
>+                  'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) at offload_engine.h:638:1
>+                  'int Engine::m_num_cores', at offset 3776 (in bits) at offload_engine.h:639:1
>+                  'int Engine::m_num_threads', at offset 3808 (in bits) at offload_engine.h:640:1
>+                  'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) at offload_engine.h:641:1
>+                  'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) at offload_engine.h:644:1
>+                4 data member changes:
>+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
>+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
>+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
>+                      type size changed from 384 to 704 (in bits)
>+                      1 data member insertion:
>+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) at offload_engine.h:204:1
>+                      1 data member change:
>+                        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:
>+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
>+                          underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>+                                  2 data member deletions:
>+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
>+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
>+                                  1 data member change:
>+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>+                                      type size changed from 8 to 384 (in bits)
>+                                      1 base class deletion:
>+                                        struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
>+                                      1 base class insertion:
>+                                        class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
>+                                      3 data member insertions:
>+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits) at stl_tree.h:592:1
>+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
>+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
>+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
>+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
>+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
>
>-                '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
>-                  array type subrange 1 changed length from 6 to 7
>-                and offset changed from 2368 to 5056 (in bits) (by +2688 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
>+                    array type subrange 1 changed length from 6 to 7
>+                  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) (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 (in bits)
>-               2 data member insertions:
>-                 '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) (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 (in 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) (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)
>+            '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 (in bits)
>+                2 data member insertions:
>+                  '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) (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 (in 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) (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) (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)
>+            '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:
>@@ -1513,9 +1513,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]' at offload_engine.h:659:1:
>     size of symbol changed from 48 to 56
>     type of variable changed:
>-     type name changed from 'const char*[6]' to 'const char*[7]'
>-     array type size changed from 384 to 448
>-     array type subrange 1 changed length from 6 to 7
>+      type name changed from 'const char*[6]' to 'const char*[7]'
>+      array type size changed from 384 to 448
>+      array type subrange 1 changed length from 6 to 7
>
>
> 7 Removed function symbols not referenced by debug info:
>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 d91de66b..9021bd9d 100644
>--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
>+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
>@@ -1300,14 +1300,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>       in pointed to type 'struct VarDesc' at offload_common.h:254:1:
>         type size hasn't changed
>         1 data member changes (1 filtered):
>-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>-           type size hasn't changed
>-           1 data member changes (1 filtered):
>-            anonymous data member at offset 0 (in bytes) changed from:
>-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>-            to:
>-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
>+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>+            type size hasn't changed
>+            1 data member changes (1 filtered):
>+              anonymous data member at offset 0 (in bytes) changed from:
>+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>+              to:
>+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
>
>
>
>@@ -1318,11 +1318,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>           type size hasn't changed
>           1 data member change:
>-           type of 'void ()* InitTableEntry::func' changed:
>-             in pointed to type 'function type void ()':
>-               parameter 1 of type 'typedef MyoArena' was added
>+            type of 'void ()* InitTableEntry::func' changed:
>+              in pointed to type 'function type void ()':
>+                parameter 1 of type 'typedef MyoArena' was added
>
>-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
>+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1
>
>   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' at compiler_if_host.cpp:456:1 has some indirect sub-type changes:
>     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
>@@ -1340,97 +1340,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>             'bool OffloadDescriptor::m_traceback_called', at offset 0x11c (in bytes) at offload_host.h:360:1
>             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 0x120 (in bytes) at offload_host.h:362:1
>           8 data member changes (2 filtered):
>-           type of 'Engine& OffloadDescriptor::m_device' changed:
>-             in referenced type 'struct Engine' at offload_engine.h:395:1:
>-               type size changed from 0x158 to 0x2b0 (in bytes)
>-               1 data member deletion:
>-                 'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
>-               7 data member insertions:
>-                 'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
>-                 'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
>-                 'mutex_t Engine::m_stream_lock', at offset 0x1b0 (in bytes) at offload_engine.h:638:1
>-                 'int Engine::m_num_cores', at offset 0x1d8 (in bytes) at offload_engine.h:639:1
>-                 'int Engine::m_num_threads', at offset 0x1dc (in bytes) at offload_engine.h:640:1
>-                 'std::bitset<1024ul> Engine::m_cpus', at offset 0x1e0 (in bytes) at offload_engine.h:641:1
>-                 'DynLibList Engine::m_dyn_libs', at offset 0x260 (in bytes) at offload_engine.h:644:1
>-               4 data member changes:
>-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
>-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
>-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
>-                    type size changed from 0x30 to 0x58 (in bytes)
>-                    1 data member insertion:
>-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 0x30 (in bytes) at offload_engine.h:204:1
>-                    1 data member change:
>-                     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:
>-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
>-                       underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>-                              2 data member deletions:
>-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
>-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
>-                              1 data member change:
>-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>-                                 type size changed from 0x1 to 0x30 (in bytes)
>-                                 1 base class deletion:
>-                                   struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
>-                                 1 base class insertion:
>-                                   class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
>-                                 3 data member insertions:
>-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bytes) at stl_tree.h:592:1
>-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
>-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
>-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
>-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
>-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
>+            type of 'Engine& OffloadDescriptor::m_device' changed:
>+              in referenced type 'struct Engine' at offload_engine.h:395:1:
>+                type size changed from 0x158 to 0x2b0 (in bytes)
>+                1 data member deletion:
>+                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
>+                7 data member insertions:
>+                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
>+                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
>+                  'mutex_t Engine::m_stream_lock', at offset 0x1b0 (in bytes) at offload_engine.h:638:1
>+                  'int Engine::m_num_cores', at offset 0x1d8 (in bytes) at offload_engine.h:639:1
>+                  'int Engine::m_num_threads', at offset 0x1dc (in bytes) at offload_engine.h:640:1
>+                  'std::bitset<1024ul> Engine::m_cpus', at offset 0x1e0 (in bytes) at offload_engine.h:641:1
>+                  'DynLibList Engine::m_dyn_libs', at offset 0x260 (in bytes) at offload_engine.h:644:1
>+                4 data member changes:
>+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
>+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1
>+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
>+                      type size changed from 0x30 to 0x58 (in bytes)
>+                      1 data member insertion:
>+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 0x30 (in bytes) at offload_engine.h:204:1
>+                      1 data member change:
>+                        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:
>+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1
>+                          underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>+                                  2 data member deletions:
>+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
>+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
>+                                  1 data member change:
>+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>+                                      type size changed from 0x1 to 0x30 (in bytes)
>+                                      1 base class deletion:
>+                                        struct std::binary_function<PtrData, PtrData, bool> at stl_function.h:118:1
>+                                      1 base class insertion:
>+                                        class std::allocator<std::_Rb_tree_node<PtrData> > at allocator.h:95:1
>+                                      3 data member insertions:
>+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bytes) at stl_tree.h:592:1
>+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
>+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
>+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' at stl_tree.h:633:1
>+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' at stl_set.h:116:1
>+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1
>
>-                'Engine::SignalMap Engine::m_signal_map' offset changed from 0xd0 to 0x128 (in bytes) (by +0x58 bytes)
>-                'mutex_t Engine::m_signal_lock' offset changed from 0x100 to 0x158 (in bytes) (by +0x58 bytes)
>-                type of 'coifunction* Engine::m_funcs[6]' changed:
>-                  type name changed from 'coifunction*[6]' to 'coifunction*[7]'
>-                  array type size changed from 0x180 to 0x1c0
>-                  array type subrange 1 changed length from 6 to 7
>-                and offset changed from 0x128 to 0x278 (in bytes) (by +0x150 bytes)
>+                  'Engine::SignalMap Engine::m_signal_map' offset changed from 0xd0 to 0x128 (in bytes) (by +0x58 bytes)
>+                  'mutex_t Engine::m_signal_lock' offset changed from 0x100 to 0x158 (in bytes) (by +0x58 bytes)
>+                  type of 'coifunction* Engine::m_funcs[6]' changed:
>+                    type name changed from 'coifunction*[6]' to 'coifunction*[7]'
>+                    array type size changed from 0x180 to 0x1c0
>+                    array type subrange 1 changed length from 6 to 7
>+                  and offset changed from 0x128 to 0x278 (in bytes) (by +0x150 bytes)
>
>-           'bool OffloadDescriptor::m_is_mandatory' offset changed from 0x28 to 0x29 (in bytes) (by +0x1 bytes)
>-           'const bool OffloadDescriptor::m_is_openmp' offset changed from 0x29 to 0x2a (in bytes) (by +0x1 bytes)
>-           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 0x48 to 0x50 (in bytes)
>-               2 data member insertions:
>-                 'void* OffloadDescriptor::VarExtra::alloc', at offset 0x28 (in bytes) at offload_host.h:222:1
>-                 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1
>-               4 data member changes (3 filtered):
>-                'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
>-                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 0x40 to 0x48 (in bytes)
>-                    1 data member insertion:
>-                      'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bytes) at cean_util.h:59:1
>-                    7 data member changes:
>-                     'void* CeanReadRanges::ptr' offset changed from 0 to 0x8 (in bytes) (by +0x8 bytes)
>-                     'int64_t CeanReadRanges::current_number' offset changed from 0x8 to 0x10 (in bytes) (by +0x8 bytes)
>-                     'int64_t CeanReadRanges::range_max_number' offset changed from 0x10 to 0x18 (in bytes) (by +0x8 bytes)
>-                     'int64_t CeanReadRanges::range_size' offset changed from 0x18 to 0x20 (in bytes) (by +0x8 bytes)
>-                     'int CeanReadRanges::last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes)
>-                     'int64_t CeanReadRanges::init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
>-                     'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
>-                and offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
>-                'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes)
>-                'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes)
>+            'bool OffloadDescriptor::m_is_mandatory' offset changed from 0x28 to 0x29 (in bytes) (by +0x1 bytes)
>+            'const bool OffloadDescriptor::m_is_openmp' offset changed from 0x29 to 0x2a (in bytes) (by +0x1 bytes)
>+            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 0x48 to 0x50 (in bytes)
>+                2 data member insertions:
>+                  'void* OffloadDescriptor::VarExtra::alloc', at offset 0x28 (in bytes) at offload_host.h:222:1
>+                  'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1
>+                4 data member changes (3 filtered):
>+                  'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
>+                  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 0x40 to 0x48 (in bytes)
>+                      1 data member insertion:
>+                        'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bytes) at cean_util.h:59:1
>+                      7 data member changes:
>+                        'void* CeanReadRanges::ptr' offset changed from 0 to 0x8 (in bytes) (by +0x8 bytes)
>+                        'int64_t CeanReadRanges::current_number' offset changed from 0x8 to 0x10 (in bytes) (by +0x8 bytes)
>+                        'int64_t CeanReadRanges::range_max_number' offset changed from 0x10 to 0x18 (in bytes) (by +0x8 bytes)
>+                        'int64_t CeanReadRanges::range_size' offset changed from 0x18 to 0x20 (in bytes) (by +0x8 bytes)
>+                        'int CeanReadRanges::last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes)
>+                        'int64_t CeanReadRanges::init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes)
>+                        'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
>+                  and offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes)
>+                  'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes)
>+                  'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes)
>
>-           'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes)
>-           'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 0x100 to 0x108 (in bytes) (by +0x8 bytes)
>-           'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 0x108 to 0x110 (in bytes) (by +0x8 bytes)
>-           'bool OffloadDescriptor::m_need_runfunction' offset changed from 0x110 to 0x118 (in bytes) (by +0x8 bytes)
>+            'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes)
>+            'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 0x100 to 0x108 (in bytes) (by +0x8 bytes)
>+            'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 0x108 to 0x110 (in bytes) (by +0x8 bytes)
>+            'bool OffloadDescriptor::m_need_runfunction' offset changed from 0x110 to 0x118 (in bytes) (by +0x8 bytes)
>
>   [C] 'function void __offload_register_image(void*)' at offload_host.cpp:5531:1 has some indirect sub-type changes:
>     return type changed:
>@@ -1513,9 +1513,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]' at offload_engine.h:659:1:
>     size of symbol changed from 0x6 to 0x7
>     type of variable changed:
>-     type name changed from 'const char*[6]' to 'const char*[7]'
>-     array type size changed from 0x180 to 0x1c0
>-     array type subrange 1 changed length from 6 to 7
>+      type name changed from 'const char*[6]' to 'const char*[7]'
>+      array type size changed from 0x180 to 0x1c0
>+      array type subrange 1 changed length from 6 to 7
>
>
> 7 Removed function symbols not referenced by debug info:
>diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
>index 795410dc..df13b950 100644
>--- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
>+++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt
>@@ -34,12 +34,12 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere
>         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) (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)
>+          '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:
>diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
>index 4ec08fea..6a165d55 100644
>--- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
>+++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt
>@@ -34,12 +34,12 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere
>         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) (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)
>+          '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:
>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 306a9863..828e473a 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
>@@ -216,14 +216,14 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>       in pointed to type 'struct VarDesc':
>         type size hasn't changed
>         1 data member changes (1 filtered):
>-         type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>-           type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>-           type size hasn't changed
>-           1 data member changes (1 filtered):
>-            anonymous data member at offset 0 (in bits) changed from:
>-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>-            to:
>-              struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
>+          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>+            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>+            type size hasn't changed
>+            1 data member changes (1 filtered):
>+              anonymous data member at offset 0 (in bits) changed from:
>+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>+              to:
>+                struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;}
>
>
>
>@@ -234,11 +234,11 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>           type size hasn't changed
>           1 data member change:
>-           type of 'void ()* InitTableEntry::func' changed:
>-             in pointed to type 'function type void ()':
>-               parameter 1 of type 'typedef MyoArena' was added
>+            type of 'void ()* InitTableEntry::func' changed:
>+              in pointed to type 'function type void ()':
>+                parameter 1 of type 'typedef MyoArena' was added
>
>-           and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
>+            and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func'
>
>   [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' has some indirect sub-type changes:
>     parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
>@@ -256,97 +256,97 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>             'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits)
>             'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits)
>           8 data member changes (2 filtered):
>-           type of 'Engine& OffloadDescriptor::m_device' changed:
>-             in referenced type 'struct Engine':
>-               type size changed from 2752 to 5504 (in bits)
>-               1 data member deletion:
>-                 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>-               7 data member insertions:
>-                 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>-                 'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>-                 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
>-                 'int Engine::m_num_cores', at offset 3776 (in bits)
>-                 'int Engine::m_num_threads', at offset 3808 (in bits)
>-                 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
>-                 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
>-               4 data member changes:
>-                type of 'Engine::PtrSet Engine::m_ptr_set' changed:
>-                  entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
>-                    type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
>-                    type size changed from 384 to 704 (in bits)
>-                    1 data member insertion:
>-                      'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
>-                    1 data member change:
>-                     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:
>-                       typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
>-                       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> >
>-                              2 data member deletions:
>-                                'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>-                                'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>-                              1 data member change:
>-                               type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>-                                 type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>-                                 type size changed from 8 to 384 (in bits)
>-                                 1 base class deletion:
>-                                   struct std::binary_function<PtrData, PtrData, bool>
>-                                 1 base class insertion:
>-                                   class std::allocator<std::_Rb_tree_node<PtrData> >
>-                                 3 data member insertions:
>-                                   'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
>-                                   'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>-                                   'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>-                               and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
>-                          and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
>-                     and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
>+            type of 'Engine& OffloadDescriptor::m_device' changed:
>+              in referenced type 'struct Engine':
>+                type size changed from 2752 to 5504 (in bits)
>+                1 data member deletion:
>+                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>+                7 data member insertions:
>+                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>+                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>+                  'mutex_t Engine::m_stream_lock', at offset 3456 (in bits)
>+                  'int Engine::m_num_cores', at offset 3776 (in bits)
>+                  'int Engine::m_num_threads', at offset 3808 (in bits)
>+                  'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits)
>+                  'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits)
>+                4 data member changes:
>+                  type of 'Engine::PtrSet Engine::m_ptr_set' changed:
>+                    entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable'
>+                      type name changed from 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >' to 'PtrDataTable'
>+                      type size changed from 384 to 704 (in bits)
>+                      1 data member insertion:
>+                        'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits)
>+                      1 data member change:
>+                        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:
>+                          typedef name changed from std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_Rep_type to PtrDataTable::PtrSet
>+                          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> >
>+                                  2 data member deletions:
>+                                    'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>+                                    'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>+                                  1 data member change:
>+                                    type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>+                                      type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>+                                      type size changed from 8 to 384 (in bits)
>+                                      1 base class deletion:
>+                                        struct std::binary_function<PtrData, PtrData, bool>
>+                                      1 base class insertion:
>+                                        class std::allocator<std::_Rb_tree_node<PtrData> >
>+                                      3 data member insertions:
>+                                        'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare', at offset 0 (in bits)
>+                                        'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>+                                        'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>+                                    and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl'
>+                              and name of 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_M_impl' changed to 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t'
>+                        and name of 'std::set<PtrData, std::less<PtrData>, std::allocator<PtrData> >::_M_t' changed to 'PtrDataTable::list'
>
>-                '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
>-                  array type subrange 1 changed length from 6 to 7
>-                and offset changed from 2368 to 5056 (in bits) (by +2688 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
>+                    array type subrange 1 changed length from 6 to 7
>+                  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) (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 (in bits)
>-               2 data member insertions:
>-                 '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) (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 (in 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) (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)
>+            '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 (in bits)
>+                2 data member insertions:
>+                  '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) (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 (in 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) (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) (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)
>+            '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:
>@@ -415,9 +415,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]':
>     size of symbol changed from 48 to 56
>     type of variable changed:
>-     type name changed from 'const char*[6]' to 'const char*[7]'
>-     array type size changed from 384 to 448
>-     array type subrange 1 changed length from 6 to 7
>+      type name changed from 'const char*[6]' to 'const char*[7]'
>+      array type size changed from 384 to 448
>+      array type subrange 1 changed length from 6 to 7
>
>
> 7 Removed function symbols not referenced by debug info:
>diff --git a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt
>index 2f07f1a6..6ae2e3b0 100644
>--- a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt
>+++ b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt
>@@ -93,9 +93,9 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>   [C] 'static const char* Engine::m_func_names[6]' was changed to 'static const char* Engine::m_func_names[7]':
>     size of symbol changed from 48 to 56
>     type of variable changed:
>-     type name changed from 'const char*[6]' to 'const char*[7]'
>-     array type size changed from 384 to 448
>-     array type subrange 1 changed length from 6 to 7
>+      type name changed from 'const char*[6]' to 'const char*[7]'
>+      array type size changed from 384 to 448
>+      array type subrange 1 changed length from 6 to 7
>
>
> 7 Removed function symbols not referenced by debug info:
>diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
>index 22e614d8..4b6b634d 100644
>--- a/tests/data/test-diff-filter/test36-report-0.txt
>+++ b/tests/data/test-diff-filter/test36-report-0.txt
>@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in pointed to type 'struct S' at test36-1-v1.c:6:1:
>         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
>+          type of 'int S::m0' changed:
>+            type name changed from 'int' to 'unsigned int'
>+            type size hasn't changed
>
>
>   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
>@@ -18,13 +18,13 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in pointed to type 'struct S' at test36-2-v1.c:6:1:
>         type size hasn't changed
>         2 data member changes:
>-         type of 'int S::m0' changed:
>-           type name changed from 'int' to 'unsigned int'
>-           type size hasn't changed
>+          type of 'int S::m0' changed:
>+            type name changed from 'int' to 'unsigned int'
>+            type size hasn't changed
>
>-         type of 'int S::m1' changed:
>-           type name changed from 'int' to 'unsigned int'
>-           type size hasn't changed
>+          type of 'int S::m1' changed:
>+            type name changed from 'int' to 'unsigned int'
>+            type size hasn't changed
>
>
>
>diff --git a/tests/data/test-diff-filter/test37-report-0.txt b/tests/data/test-diff-filter/test37-report-0.txt
>index 4617a505..9680f32c 100644
>--- a/tests/data/test-diff-filter/test37-report-0.txt
>+++ b/tests/data/test-diff-filter/test37-report-0.txt
>@@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct A' at test37-v1.cc:3:1:
>         type size changed from 32 to 8 (in bits)
>         1 data member change:
>-         type of 'int A::m0' changed:
>-           type name changed from 'int' to 'char'
>-           type size changed from 32 to 8 (in bits)
>+          type of 'int A::m0' changed:
>+            type name changed from 'int' to 'char'
>+            type size changed from 32 to 8 (in bits)
>
>
>   [C] 'function void f2(B&)' at test37-v1.cc:23:1 has some indirect sub-type changes:
>@@ -18,9 +18,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct B' at test37-v1.cc:8:1:
>         type size changed from 32 to 8 (in bits)
>         1 data member change:
>-         type of 'int B::m0' changed:
>-           type name changed from 'int' to 'char'
>-           type size changed from 32 to 8 (in bits)
>+          type of 'int B::m0' changed:
>+            type name changed from 'int' to 'char'
>+            type size changed from 32 to 8 (in bits)
>
>
>   [C] 'function void f3(C&)' at test37-v1.cc:27:1 has some indirect sub-type changes:
>@@ -28,9 +28,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in referenced type 'struct C' at test37-v1.cc:13:1:
>         type size changed from 32 to 8 (in bits)
>         1 data member change:
>-         type of 'int C::m0' changed:
>-           type name changed from 'int' to 'char'
>-           type size changed from 32 to 8 (in bits)
>+          type of 'int C::m0' changed:
>+            type name changed from 'int' to 'char'
>+            type size changed from 32 to 8 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-filter/test39/test39-report-0.txt b/tests/data/test-diff-filter/test39/test39-report-0.txt
>index c6bfa2b1..43de553f 100644
>--- a/tests/data/test-diff-filter/test39/test39-report-0.txt
>+++ b/tests/data/test-diff-filter/test39/test39-report-0.txt
>@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in pointed to type 'struct container_type' at test39.h:3:1:
>         type size hasn't changed
>         1 data member change:
>-         type of 'opaque_type* container_type::s' changed:
>-           in pointed to type 'struct opaque_type' at test39-b-v1.c:3:1:
>-             type size changed from 32 to 64 (in bits)
>-             1 data member insertion:
>-               'char opaque_type::m1', at offset 32 (in bits) at test39-b-v1.c:6:1
>+          type of 'opaque_type* container_type::s' changed:
>+            in pointed to type 'struct opaque_type' at test39-b-v1.c:3:1:
>+              type size changed from 32 to 64 (in bits)
>+              1 data member insertion:
>+                'char opaque_type::m1', at offset 32 (in bits) at test39-b-v1.c:6:1
>
>
>   [C] 'function long long int foo2(container_type*)' at test39-c-v1.c:10:1 has some indirect sub-type changes:
>@@ -20,11 +20,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in pointed to type 'struct container_type' at test39.h:3:1:
>         type size hasn't changed
>         1 data member change:
>-         type of 'opaque_type* container_type::s' changed:
>-           in pointed to type 'struct opaque_type' at test39-c-v1.c:3:1:
>-             type size changed from 32 to 64 (in bits)
>-             1 data member insertion:
>-               'unsigned char opaque_type::m1', at offset 32 (in bits) at test39-c-v1.c:6:1
>+          type of 'opaque_type* container_type::s' changed:
>+            in pointed to type 'struct opaque_type' at test39-c-v1.c:3:1:
>+              type size changed from 32 to 64 (in bits)
>+              1 data member insertion:
>+                'unsigned char opaque_type::m1', at offset 32 (in bits) at test39-c-v1.c:6:1
>
>
>
>diff --git a/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt b/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt
>index a660fd3e..ed10b78a 100644
>--- a/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt
>+++ b/tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt
>@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       in pointed to type 'struct S2' at test44-anonymous-data-member-v1.c:11:1:
>         type size changed from 128 to 160 (in bits)
>         2 data member changes:
>-         anonymous data member at offset 32 (in bits) changed from:
>-           struct {int b; float c;}
>-         to:
>-           struct {int b; float c; char e;}
>+          anonymous data member at offset 32 (in bits) changed from:
>+            struct {int b; float c;}
>+          to:
>+            struct {int b; float c; char e;}
>
>-         'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
>+          'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt b/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt
>index c866a9d4..4ac353fb 100644
>--- a/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt
>+++ b/tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt
>@@ -6,10 +6,10 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> 'struct S2 at test-44-anonymous-data-member-v0.c:10:1' changed:
>   type size changed from 128 to 160 (in bits)
>   there are data member changes:
>-   anonymous data member at offset 32 (in bits) changed from:
>-     struct {int b; float c;}
>-   to:
>-     struct {int b; float c; char e;}
>-   size changed from 64 to 96 (in bits) (by +32 bits)
>-   'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
>+    anonymous data member at offset 32 (in bits) changed from:
>+      struct {int b; float c;}
>+    to:
>+      struct {int b; float c; char e;}
>+    size changed from 64 to 96 (in bits) (by +32 bits)
>+    'int S2::d' offset changed from 96 to 128 (in bits) (by +32 bits)
>
>diff --git a/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt b/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt
>index fb67e43a..f65e09e0 100644
>--- a/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt
>+++ b/tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt
>@@ -11,17 +11,17 @@
>         in unqualified underlying type 'struct gl_h__gluint_vec___XUP' at gl_h.ads:57:1:
>           type size hasn't changed
>           1 data member change:
>-           type of 'gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB* gl_h__gluint_vec___XUP::P_BOUNDS' changed:
>-             in pointed to type 'struct gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB' at gl_h.ads:57:1:
>-               type size hasn't changed
>-               2 data member changes:
>-                type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::LB0' changed:
>-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
>-                  type size changed from 32 to 2147483647 (in bits)
>+            type of 'gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB* gl_h__gluint_vec___XUP::P_BOUNDS' changed:
>+              in pointed to type 'struct gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB' at gl_h.ads:57:1:
>+                type size hasn't changed
>+                2 data member changes:
>+                  type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::LB0' changed:
>+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
>+                    type size changed from 32 to 2147483647 (in bits)
>
>-                type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::UB0' changed:
>-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
>-                  type size changed from 32 to 2147483647 (in bits)
>+                  type of 'integer gl_h__gluint_vec___XUP::gl_h__gluint_vec___XUB::UB0' changed:
>+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
>+                    type size changed from 32 to 2147483647 (in bits)
>
>
>
>@@ -30,17 +30,17 @@
>         in unqualified underlying type 'struct gtk__glarea__attributes_array___XUP' at gtk-glarea.ads:48:1:
>           type size hasn't changed
>           1 data member change:
>-           type of 'gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB* gtk__glarea__attributes_array___XUP::P_BOUNDS' changed:
>-             in pointed to type 'struct gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB':
>-               type size hasn't changed
>-               2 data member changes:
>-                type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::LB0' changed:
>-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
>-                  type size changed from 32 to 2147483647 (in bits)
>-
>-                type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::UB0' changed:
>-                  entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
>-                  type size changed from 32 to 2147483647 (in bits)
>+            type of 'gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB* gtk__glarea__attributes_array___XUP::P_BOUNDS' changed:
>+              in pointed to type 'struct gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB':
>+                type size hasn't changed
>+                2 data member changes:
>+                  type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::LB0' changed:
>+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
>+                    type size changed from 32 to 2147483647 (in bits)
>+
>+                  type of 'integer gtk__glarea__attributes_array___XUP::gtk__glarea__attributes_array___XUB::UB0' changed:
>+                    entity changed from 'integer' to '<range natural___XDLU_0__2147483647>[2147483648]'
>+                    type size changed from 32 to 2147483647 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt b/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt
>index d106bf9b..2dad2619 100644
>--- a/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt
>+++ b/tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt
>@@ -35,10 +35,10 @@
>       1 data member insertion:
>         'typedef gboolean (FlatpakTransaction*, const char*, const char*, const char*, const char*, const char**)* _FlatpakTransactionClass::end_of_lifed_with_rebase', at offset 1408 (in bits) at flatpak-transaction.h:117:1
>       4 data member changes (3 filtered):
>-       'typedef gboolean (FlatpakTransaction*)* _FlatpakTransactionClass::ready' offset changed from 1408 to 1472 (in bits) (by +64 bits)
>-       'typedef gboolean (FlatpakTransaction*, typedef FlatpakTransactionRemoteReason, const char*, const char*, const char*)* _FlatpakTransactionClass::add_new_remote' offset changed from 1472 to 1536 (in bits) (by +64 bits)
>-       'typedef gboolean (FlatpakTransaction*, GCancellable*, GError**)* _FlatpakTransactionClass::run' offset changed from 1536 to 1600 (in bits) (by +64 bits)
>-       'gpointer _FlatpakTransactionClass::padding[9]' offset changed from 1600 to 1664 (in bits) (by +64 bits)
>+        'typedef gboolean (FlatpakTransaction*)* _FlatpakTransactionClass::ready' offset changed from 1408 to 1472 (in bits) (by +64 bits)
>+        'typedef gboolean (FlatpakTransaction*, typedef FlatpakTransactionRemoteReason, const char*, const char*, const char*)* _FlatpakTransactionClass::add_new_remote' offset changed from 1472 to 1536 (in bits) (by +64 bits)
>+        'typedef gboolean (FlatpakTransaction*, GCancellable*, GError**)* _FlatpakTransactionClass::run' offset changed from 1536 to 1600 (in bits) (by +64 bits)
>+        'gpointer _FlatpakTransactionClass::padding[9]' offset changed from 1600 to 1664 (in bits) (by +64 bits)
>
>
>   3 added types unreachable from any public interface:
>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 0c097b6b..f6f4cd98 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,73 +16,73 @@
>           in pointed to type 'struct _IceConn' at ICEconn.h:131:1:
>             type size hasn't changed
>             2 data member changes (3 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:
>-                        type size changed from 640 to 768 (in bits)
>-                        2 data member insertions:
>-                          '_XtransConnFd* _XtransConnInfo::recv_fds', at offset 640 (in bits) at Xtransint.h:148:1
>-                          '_XtransConnFd* _XtransConnInfo::send_fds', at offset 704 (in bits) at Xtransint.h:149: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
>-                             3 data member changes (16 filtered):
>-                              type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSClient' changed:
>-                                in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
>-                                  parameter 3 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':
>-                                      entity changed from 'char' to 'const char'
>-                                      type size hasn't changed
>-
>-                              type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSServer' changed:
>-                                in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
>-                                  parameter 3 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':
>-                                      entity changed from 'char' to 'const char'
>-                                      type size hasn't changed
>-
>-                              type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCLTSServer' changed:
>-                                in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
>-                                  parameter 3 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':
>-                                      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:48:1:
>-                 entity changed from 'struct _IcePingWait' to compatible type 'typedef _IcePingWait' at ICEconn.h:48:1
>+              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:
>+                          type size changed from 640 to 768 (in bits)
>+                          2 data member insertions:
>+                            '_XtransConnFd* _XtransConnInfo::recv_fds', at offset 640 (in bits) at Xtransint.h:148:1
>+                            '_XtransConnFd* _XtransConnInfo::send_fds', at offset 704 (in bits) at Xtransint.h:149: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
>+                                3 data member changes (16 filtered):
>+                                  type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSClient' changed:
>+                                    in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
>+                                      parameter 3 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':
>+                                          entity changed from 'char' to 'const char'
>+                                          type size hasn't changed
>+
>+                                  type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSServer' changed:
>+                                    in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
>+                                      parameter 3 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':
>+                                          entity changed from 'char' to 'const char'
>+                                          type size hasn't changed
>+
>+                                  type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCLTSServer' changed:
>+                                    in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, 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
>+                                      parameter 3 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':
>+                                          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:48:1:
>+                  entity changed from 'struct _IcePingWait' to compatible type 'typedef _IcePingWait' at ICEconn.h:48:1
>
>
>
>@@ -94,22 +94,22 @@
>
>     [C] 'char* _IceAuthNames[1]' was changed to 'const char* _IceAuthNames[1]' at globals.h:37:1:
>       type of variable changed:
>-       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
>+        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
>
>     [C] '_IceWatchProc* _IceWatchProcs' was changed at globals.h:39:1:
>       type of variable changed:
>-       in pointed to type 'struct _IceWatchProc' at ICElibint.h:322:1:
>-         entity changed from 'struct _IceWatchProc' to compatible type 'typedef _IceWatchProc' at ICElibint.h:322:1
>-           type size hasn't changed
>-           1 data member changes (2 filtered):
>-            type of '_IceWatchedConnection* _IceWatchProc::watched_connections' changed:
>-              in pointed to type 'struct _IceWatchedConnection' at ICElibint.h:315:1:
>-                entity changed from 'struct _IceWatchedConnection' to compatible type 'typedef _IceWatchedConnection' at ICElibint.h:315:1
>+        in pointed to type 'struct _IceWatchProc' at ICElibint.h:322:1:
>+          entity changed from 'struct _IceWatchProc' to compatible type 'typedef _IceWatchProc' at ICElibint.h:322:1
>+            type size hasn't changed
>+            1 data member changes (2 filtered):
>+              type of '_IceWatchedConnection* _IceWatchProc::watched_connections' changed:
>+                in pointed to type 'struct _IceWatchedConnection' at ICElibint.h:315:1:
>+                  entity changed from 'struct _IceWatchedConnection' to compatible type 'typedef _IceWatchedConnection' at ICElibint.h:315:1
>
>
>
>diff --git a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
>index 23b12adf..c4f420fa 100644
>--- a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
>+++ b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt
>@@ -10,30 +10,30 @@
>           underlying type 'union {uint8_t type; cdio_dvd_physical_t physical; cdio_dvd_copyright_t copyright; cdio_dvd_disckey_t disckey; cdio_dvd_bca_t bca; cdio_dvd_manufact_t manufact;}' at dvd.h:122:1 changed:
>             type size hasn't changed
>             2 data member changes:
>-             type of 'cdio_dvd_disckey_t disckey' changed:
>-               underlying type 'struct cdio_dvd_disckey' at dvd.h:100:1 changed:
>-                 type size hasn't changed
>-                 1 data member change:
>-                  'unsigned int cdio_dvd_disckey::agid' offset changed from 30 to 22 (in bits) (by -8 bits)
>-
>-             type of 'cdio_dvd_physical_t physical' changed:
>-               underlying type 'struct cdio_dvd_physical' at dvd.h:86:1 changed:
>-                 type size hasn't changed
>-                 1 data member change:
>-                  type of 'cdio_dvd_layer_t cdio_dvd_physical::layer[4]' changed:
>-                    array element type 'typedef cdio_dvd_layer_t' changed:
>-                      underlying type 'struct cdio_dvd_layer' at dvd.h:65:1 changed:
>-                        type size hasn't changed
>-                        8 data member changes:
>-                         'unsigned int cdio_dvd_layer::track_density' offset changed from 21 to 5 (in bits) (by -16 bits)
>-                         'unsigned int cdio_dvd_layer::bca' offset changed from 24 to 0 (in bits) (by -24 bits)
>-                         'unsigned int cdio_dvd_layer::disc_size' offset changed from 24 to 16 (in bits) (by -8 bits)
>-                         'unsigned int cdio_dvd_layer::linear_density' offset changed from 25 to 1 (in bits) (by -24 bits)
>-                         'unsigned int cdio_dvd_layer::nlayers' offset changed from 25 to 9 (in bits) (by -16 bits)
>-                         'unsigned int cdio_dvd_layer::track_path' offset changed from 27 to 11 (in bits) (by -16 bits)
>-                         'unsigned int cdio_dvd_layer::layer_type' offset changed from 28 to 12 (in bits) (by -16 bits)
>-                         'unsigned int cdio_dvd_layer::min_rate' offset changed from 28 to 20 (in bits) (by -8 bits)
>-                    type size hasn't changed
>+              type of 'cdio_dvd_disckey_t disckey' changed:
>+                underlying type 'struct cdio_dvd_disckey' at dvd.h:100:1 changed:
>+                  type size hasn't changed
>+                  1 data member change:
>+                    'unsigned int cdio_dvd_disckey::agid' offset changed from 30 to 22 (in bits) (by -8 bits)
>+
>+              type of 'cdio_dvd_physical_t physical' changed:
>+                underlying type 'struct cdio_dvd_physical' at dvd.h:86:1 changed:
>+                  type size hasn't changed
>+                  1 data member change:
>+                    type of 'cdio_dvd_layer_t cdio_dvd_physical::layer[4]' changed:
>+                      array element type 'typedef cdio_dvd_layer_t' changed:
>+                        underlying type 'struct cdio_dvd_layer' at dvd.h:65:1 changed:
>+                          type size hasn't changed
>+                          8 data member changes:
>+                            'unsigned int cdio_dvd_layer::track_density' offset changed from 21 to 5 (in bits) (by -16 bits)
>+                            'unsigned int cdio_dvd_layer::bca' offset changed from 24 to 0 (in bits) (by -24 bits)
>+                            'unsigned int cdio_dvd_layer::disc_size' offset changed from 24 to 16 (in bits) (by -8 bits)
>+                            'unsigned int cdio_dvd_layer::linear_density' offset changed from 25 to 1 (in bits) (by -24 bits)
>+                            'unsigned int cdio_dvd_layer::nlayers' offset changed from 25 to 9 (in bits) (by -16 bits)
>+                            'unsigned int cdio_dvd_layer::track_path' offset changed from 27 to 11 (in bits) (by -16 bits)
>+                            'unsigned int cdio_dvd_layer::layer_type' offset changed from 28 to 12 (in bits) (by -16 bits)
>+                            'unsigned int cdio_dvd_layer::min_rate' offset changed from 28 to 20 (in bits) (by -8 bits)
>+                      type size hasn't changed
>
>
>
>diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>index 873a84cd..1cd20374 100644
>--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>@@ -18,50 +18,50 @@
>           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':
>-                                 type size changed from 192 to 256 (in bits)
>-                                 2 data member changes:
>-                                  type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
>-                                    underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
>-                                      type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
>-                                      type size changed from 128 to 192 (in bits)
>-                                      1 base class change:
>-                                        'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
>-                                          type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
>+              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':
>+                                    type size changed from 192 to 256 (in bits)
>+                                    2 data member changes:
>+                                      type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed:
>+                                        underlying type 'class std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
>+                                          type name changed from 'std::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::list<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
>                                           type size changed from 128 to 192 (in bits)
>-                                          1 data member change:
>-                                           type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
>-                                             type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
>-                                             type size changed from 128 to 192 (in bits)
>-                                             1 data member change:
>-                                              type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
>-                                                type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
>-                                                type size changed from 128 to 192 (in bits)
>-                                                1 base class insertion:
>-                                                  struct std::__detail::_List_node_base
>-                                                2 data member deletions:
>-                                                  'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>-                                                  'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>-                                                1 data member insertion:
>-                                                  'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>-                                              and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>-                                           and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
>+                                          1 base class change:
>+                                            'class std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' changed:
>+                                              type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >'
>+                                              type size changed from 128 to 192 (in bits)
>+                                              1 data member change:
>+                                                type of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed:
>+                                                  type name changed from 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl' to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl'
>+                                                  type size changed from 128 to 192 (in bits)
>+                                                  1 data member change:
>+                                                    type of 'std::__detail::_List_node_base std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed:
>+                                                      type name changed from 'std::__detail::_List_node_base' to 'std::_List_node<long unsigned int>'
>+                                                      type size changed from 128 to 192 (in bits)
>+                                                      1 base class insertion:
>+                                                        struct std::__detail::_List_node_base
>+                                                      2 data member deletions:
>+                                                        'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>+                                                        'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>+                                                      1 data member insertion:
>+                                                        'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>+                                                    and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>+                                                and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_M_impl'
>
>
>-                                  'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
>+                                      'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits)
>
>
>
>@@ -72,20 +72,20 @@
>         in pointed to type 'struct sigc::internal::signal_impl':
>           type size changed from 192 to 256 (in bits)
>           1 data member change:
>-           type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
>-             type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
>-             type size changed from 128 to 192 (in bits)
>-             1 base class change:
>-               'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
>-                 type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
>-                 type size changed from 128 to 192 (in bits)
>-                 1 data member change:
>-                  type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
>-                    type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
>-                    type size changed from 128 to 192 (in bits)
>-                    1 data member change:
>-                     name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
>-                  and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
>+            type of 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> > sigc::internal::signal_impl::slots_' changed:
>+              type name changed from 'std::list<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::list<sigc::slot_base, std::allocator<sigc::slot_base> >'
>+              type size changed from 128 to 192 (in bits)
>+              1 base class change:
>+                'class std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' changed:
>+                  type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >'
>+                  type size changed from 128 to 192 (in bits)
>+                  1 data member change:
>+                    type of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed:
>+                      type name changed from 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl' to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl'
>+                      type size changed from 128 to 192 (in bits)
>+                      1 data member change:
>+                        name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_List_impl::_M_node'
>+                    and name of 'std::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl' changed to 'std::__cxx11::_List_base<sigc::slot_base, std::allocator<sigc::slot_base> >::_M_impl'
>
>
>
>diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>index a0cc67c2..b23de5ae 100644
>--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>@@ -45,19 +45,19 @@
>             1 data member insertion:
>               'SSLAuthType SSLCipherSuiteInfoStr::authType', at offset 736 (in bits) at sslt.h:250:1
>             1 data member changes (3 filtered):
>-             type of 'SSLAuthType SSLCipherSuiteInfoStr::authAlgorithm' changed:
>-               underlying type 'enum __anonymous_enum__' at sslt.h:87:1 changed:
>-                 type size hasn't changed
>-                 1 enumerator deletion:
>-                   '__anonymous_enum__::ssl_auth_rsa' value '1'
>-                 7 enumerator insertions:
>-                   '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
>-                   '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
>-                   '__anonymous_enum__::ssl_auth_ecdh_ecdsa' value '6'
>-                   '__anonymous_enum__::ssl_auth_rsa_sign' value '7'
>-                   '__anonymous_enum__::ssl_auth_rsa_pss' value '8'
>-                   '__anonymous_enum__::ssl_auth_psk' value '9'
>-                   '__anonymous_enum__::ssl_auth_size' value '10'
>+              type of 'SSLAuthType SSLCipherSuiteInfoStr::authAlgorithm' changed:
>+                underlying type 'enum __anonymous_enum__' at sslt.h:87:1 changed:
>+                  type size hasn't changed
>+                  1 enumerator deletion:
>+                    '__anonymous_enum__::ssl_auth_rsa' value '1'
>+                  7 enumerator insertions:
>+                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
>+                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
>+                    '__anonymous_enum__::ssl_auth_ecdh_ecdsa' value '6'
>+                    '__anonymous_enum__::ssl_auth_rsa_sign' value '7'
>+                    '__anonymous_enum__::ssl_auth_rsa_pss' value '8'
>+                    '__anonymous_enum__::ssl_auth_psk' value '9'
>+                    '__anonymous_enum__::ssl_auth_size' value '10'
>
>
>
>@@ -67,9 +67,9 @@
>     [C] 'const PRUint16 SSL_ImplementedCiphers[74]' was changed to 'const PRUint16 SSL_ImplementedCiphers[69]' at sslenum.c:51:1:
>       size of symbol changed from 148 to 138
>       type of variable changed:
>-       type name changed from 'PRUint16[74]' to 'const PRUint16[69]'
>-       array type size changed from 1184 to 1104
>-       array type subrange 1 changed length from 74 to 69
>+        type name changed from 'PRUint16[74]' to 'const PRUint16[69]'
>+        array type size changed from 1184 to 1104
>+        array type subrange 1 changed length from 74 to 69
>
>
> ================ end of changes of 'libssl3.so'===============
>@@ -86,33 +86,33 @@
>           underlying type 'struct NSSCMSContentInfoStr' at cmst.h:131:1 changed:
>             type size hasn't changed
>             1 data member changes (2 filtered):
>-             type of 'NSSCMSContent NSSCMSContentInfoStr::content' changed:
>-               underlying type 'union NSSCMSContentUnion' at cmst.h:118:1 changed:
>-                 type size hasn't changed
>-                 1 data member changes (3 filtered):
>-                  type of 'NSSCMSEncryptedData* NSSCMSContentUnion::encryptedData' changed:
>-                    in pointed to type 'typedef NSSCMSEncryptedData' at cmst.h:65:1:
>-                      underlying type 'struct NSSCMSEncryptedDataStr' at cmst.h:468:1 changed:
>-                        type size hasn't changed
>-                        1 data member changes (1 filtered):
>-                         type of 'NSSCMSAttribute** NSSCMSEncryptedDataStr::unprotectedAttr' changed:
>-                           in pointed to type 'NSSCMSAttribute*':
>-                             in pointed to type 'typedef NSSCMSAttribute' at cmst.h:69:1:
>-                               underlying type 'struct NSSCMSAttributeStr' at cmst.h:487:1 changed:
>-                                 type size hasn't changed
>-                                 1 data member change:
>-                                  type of 'SECOidData* NSSCMSAttributeStr::typeTag' changed:
>-                                    in pointed to type 'typedef SECOidData' at secoidt.h:16:1:
>-                                      underlying type 'struct SECOidDataStr' at secoidt.h:500:1 changed:
>-                                        type size hasn't changed
>-                                        1 data member change:
>-                                         type of 'SECOidTag SECOidDataStr::offset' changed:
>-                                           underlying type 'enum __anonymous_enum__1' at secoidt.h:34:1 changed:
>-                                             type size hasn't changed
>-                                             1 enumerator insertion:
>-                                               '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
>-                                             1 enumerator change:
>-                                               '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
>+              type of 'NSSCMSContent NSSCMSContentInfoStr::content' changed:
>+                underlying type 'union NSSCMSContentUnion' at cmst.h:118:1 changed:
>+                  type size hasn't changed
>+                  1 data member changes (3 filtered):
>+                    type of 'NSSCMSEncryptedData* NSSCMSContentUnion::encryptedData' changed:
>+                      in pointed to type 'typedef NSSCMSEncryptedData' at cmst.h:65:1:
>+                        underlying type 'struct NSSCMSEncryptedDataStr' at cmst.h:468:1 changed:
>+                          type size hasn't changed
>+                          1 data member changes (1 filtered):
>+                            type of 'NSSCMSAttribute** NSSCMSEncryptedDataStr::unprotectedAttr' changed:
>+                              in pointed to type 'NSSCMSAttribute*':
>+                                in pointed to type 'typedef NSSCMSAttribute' at cmst.h:69:1:
>+                                  underlying type 'struct NSSCMSAttributeStr' at cmst.h:487:1 changed:
>+                                    type size hasn't changed
>+                                    1 data member change:
>+                                      type of 'SECOidData* NSSCMSAttributeStr::typeTag' changed:
>+                                        in pointed to type 'typedef SECOidData' at secoidt.h:16:1:
>+                                          underlying type 'struct SECOidDataStr' at secoidt.h:500:1 changed:
>+                                            type size hasn't changed
>+                                            1 data member change:
>+                                              type of 'SECOidTag SECOidDataStr::offset' changed:
>+                                                underlying type 'enum __anonymous_enum__1' at secoidt.h:34:1 changed:
>+                                                  type size hasn't changed
>+                                                  1 enumerator insertion:
>+                                                    '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
>+                                                  1 enumerator change:
>+                                                    '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
>
>
>
>diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>index c247ef95..163c176c 100644
>--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>@@ -25,40 +25,40 @@
>           underlying type 'struct QXLInstance' at spice.h:259:1 changed:
>             type size hasn't changed
>             1 data member change:
>-             type of 'QXLState* QXLInstance::st' changed:
>-               in pointed to type 'typedef QXLState' at spice-qxl.h:35:1:
>-                 underlying type 'struct QXLState' at reds.h:93:1 changed:
>-                   type size hasn't changed
>-                   1 data member change:
>-                    type of 'RedDispatcher* QXLState::dispatcher' changed:
>-                      in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
>-                        underlying type 'struct RedDispatcher' at red_dispatcher.c:53:1 changed:
>-                          type size changed from 3264 to 3328 (in bits)
>-                          13 data member changes:
>-                           type of 'QXLInstance* RedDispatcher::qxl' changed:
>-                             in pointed to type 'typedef QXLInstance' at spice-qxl.h:34:1:
>-                               underlying type 'struct QXLInstance' changed; details are being reported
>-
>-                           type of 'Dispatcher RedDispatcher::dispatcher' changed:
>-                             underlying type 'struct Dispatcher' at dispatcher.h:22:1 changed:
>-                               type size changed from 960 to 1024 (in bits)
>-                               1 data member insertion:
>-                                 'dispatcher_handle_any_message Dispatcher::any_handler', at offset 960 (in bits) at dispatcher.h:56:1
>-
>-                           'pthread_t RedDispatcher::worker_thread' offset changed from 2048 to 2112 (in bits) (by +64 bits)
>-                           'uint32_t RedDispatcher::pending' offset changed from 2112 to 2176 (in bits) (by +64 bits)
>-                           'int RedDispatcher::primary_active' offset changed from 2144 to 2208 (in bits) (by +64 bits)
>-                           'int RedDispatcher::x_res' offset changed from 2176 to 2240 (in bits) (by +64 bits)
>-                           'int RedDispatcher::y_res' offset changed from 2208 to 2272 (in bits) (by +64 bits)
>-                           'int RedDispatcher::use_hardware_cursor' offset changed from 2240 to 2304 (in bits) (by +64 bits)
>-                           type of 'RedDispatcher* RedDispatcher::next' changed:
>-                             in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
>-                               underlying type 'struct RedDispatcher' changed; details are being reported
>-                           and offset changed from 2304 to 2368 (in bits) (by +64 bits)
>-                           'Ring RedDispatcher::async_commands' offset changed from 2368 to 2432 (in bits) (by +64 bits)
>-                           'pthread_mutex_t RedDispatcher::async_lock' offset changed from 2496 to 2560 (in bits) (by +64 bits)
>-                           'QXLDevSurfaceCreate RedDispatcher::surface_create' offset changed from 2816 to 2880 (in bits) (by +64 bits)
>-                           'unsigned int RedDispatcher::max_monitors' offset changed from 3200 to 3264 (in bits) (by +64 bits)
>+              type of 'QXLState* QXLInstance::st' changed:
>+                in pointed to type 'typedef QXLState' at spice-qxl.h:35:1:
>+                  underlying type 'struct QXLState' at reds.h:93:1 changed:
>+                    type size hasn't changed
>+                    1 data member change:
>+                      type of 'RedDispatcher* QXLState::dispatcher' changed:
>+                        in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
>+                          underlying type 'struct RedDispatcher' at red_dispatcher.c:53:1 changed:
>+                            type size changed from 3264 to 3328 (in bits)
>+                            13 data member changes:
>+                              type of 'QXLInstance* RedDispatcher::qxl' changed:
>+                                in pointed to type 'typedef QXLInstance' at spice-qxl.h:34:1:
>+                                  underlying type 'struct QXLInstance' changed; details are being reported
>+
>+                              type of 'Dispatcher RedDispatcher::dispatcher' changed:
>+                                underlying type 'struct Dispatcher' at dispatcher.h:22:1 changed:
>+                                  type size changed from 960 to 1024 (in bits)
>+                                  1 data member insertion:
>+                                    'dispatcher_handle_any_message Dispatcher::any_handler', at offset 960 (in bits) at dispatcher.h:56:1
>+
>+                              'pthread_t RedDispatcher::worker_thread' offset changed from 2048 to 2112 (in bits) (by +64 bits)
>+                              'uint32_t RedDispatcher::pending' offset changed from 2112 to 2176 (in bits) (by +64 bits)
>+                              'int RedDispatcher::primary_active' offset changed from 2144 to 2208 (in bits) (by +64 bits)
>+                              'int RedDispatcher::x_res' offset changed from 2176 to 2240 (in bits) (by +64 bits)
>+                              'int RedDispatcher::y_res' offset changed from 2208 to 2272 (in bits) (by +64 bits)
>+                              'int RedDispatcher::use_hardware_cursor' offset changed from 2240 to 2304 (in bits) (by +64 bits)
>+                              type of 'RedDispatcher* RedDispatcher::next' changed:
>+                                in pointed to type 'typedef RedDispatcher' at red_worker.h:87:1:
>+                                  underlying type 'struct RedDispatcher' changed; details are being reported
>+                              and offset changed from 2304 to 2368 (in bits) (by +64 bits)
>+                              'Ring RedDispatcher::async_commands' offset changed from 2368 to 2432 (in bits) (by +64 bits)
>+                              'pthread_mutex_t RedDispatcher::async_lock' offset changed from 2496 to 2560 (in bits) (by +64 bits)
>+                              'QXLDevSurfaceCreate RedDispatcher::surface_create' offset changed from 2816 to 2880 (in bits) (by +64 bits)
>+                              'unsigned int RedDispatcher::max_monitors' offset changed from 3200 to 3264 (in bits) (by +64 bits)
>
>
>
>@@ -164,269 +164,269 @@
>           underlying type 'struct RedsState' at reds-private.h:127:1 changed:
>             type size hasn't changed
>             2 data member changes (1 filtered):
>-             type of 'VDIPortState RedsState::agent_state' changed:
>-               underlying type 'struct VDIPortState' at reds-private.h:46:1 changed:
>-                 type size hasn't changed
>-                 1 data member change:
>-                  type of 'SpiceCharDeviceState* VDIPortState::base' changed:
>-                    in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
>-                      underlying type 'struct SpiceCharDeviceState' at char_device.c:47:1 changed:
>-                        type size changed from 1536 to 1600 (in bits)
>-                        1 data member insertion:
>-                          'uint64_t SpiceCharDeviceState::cur_pool_size', at offset 384 (in bits) at char_device.c:57:1
>-                        12 data member changes:
>-                         'SpiceCharDeviceWriteBuffer* SpiceCharDeviceState::cur_write_buf' offset changed from 384 to 448 (in bits) (by +64 bits)
>-                         'uint8_t* SpiceCharDeviceState::cur_write_buf_pos' offset changed from 448 to 512 (in bits) (by +64 bits)
>-                         'SpiceTimer* SpiceCharDeviceState::write_to_dev_timer' offset changed from 512 to 576 (in bits) (by +64 bits)
>-                         'uint64_t SpiceCharDeviceState::num_self_tokens' offset changed from 576 to 640 (in bits) (by +64 bits)
>-                         'Ring SpiceCharDeviceState::clients' offset changed from 640 to 704 (in bits) (by +64 bits)
>-                         'uint32_t SpiceCharDeviceState::num_clients' offset changed from 768 to 832 (in bits) (by +64 bits)
>-                         'uint64_t SpiceCharDeviceState::client_tokens_interval' offset changed from 832 to 896 (in bits) (by +64 bits)
>-                         type of 'SpiceCharDeviceInstance* SpiceCharDeviceState::sin' changed:
>-                           in pointed to type 'typedef SpiceCharDeviceInstance' at spice-char.h:33:1:
>-                             underlying type 'struct SpiceCharDeviceInstance' at spice.h:416:1 changed:
>-                               type size hasn't changed
>-                               1 data member change:
>-                                type of 'SpiceCharDeviceState* SpiceCharDeviceInstance::st' changed:
>-                                  in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
>-                                    underlying type 'struct SpiceCharDeviceState' changed; details are being reported
>-
>-                         and offset changed from 896 to 960 (in bits) (by +64 bits)
>-                         'int SpiceCharDeviceState::during_read_from_device' offset changed from 960 to 1024 (in bits) (by +64 bits)
>-                         'int SpiceCharDeviceState::during_write_to_device' offset changed from 992 to 1056 (in bits) (by +64 bits)
>-                         type of 'SpiceCharDeviceCallbacks SpiceCharDeviceState::cbs' changed:
>-                           underlying type 'struct SpiceCharDeviceCallbacks' at char_device.h:81:1 changed:
>-                             type size hasn't changed
>-                             1 data member change:
>-                              type of 'SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)* SpiceCharDeviceCallbacks::read_one_msg_from_device' changed:
>-                                in pointed to type 'function type SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)':
>-                                  parameter 1 of type 'SpiceCharDeviceInstance*' has sub-type changes:
>-                                    pointed to type 'typedef SpiceCharDeviceInstance' changed at spice.h:399:1, as reported earlier
>-
>-                         and offset changed from 1024 to 1088 (in bits) (by +64 bits)
>-                         'void* SpiceCharDeviceState::opaque' offset changed from 1472 to 1536 (in bits) (by +64 bits)
>-
>-                 no data member changes (3 filtered);
>-
>-             type of 'MainChannel* RedsState::main_channel' changed:
>-               in pointed to type 'typedef MainChannel' at main_channel.h:48:1:
>-                 underlying type 'struct MainChannel' at main_channel.h:36:1 changed:
>-                   type size hasn't changed
>-                   1 data member change:
>-                    type of 'RedChannel MainChannel::base' changed:
>-                      underlying type 'struct RedChannel' at red_channel.h:303:1 changed:
>-                        type size hasn't changed
>-                        2 data member changes (1 filtered):
>-                         type of 'ChannelCbs RedChannel::channel_cbs' changed:
>-                           underlying type 'struct {channel_configure_socket_proc config_socket; channel_disconnect_proc on_disconnect; channel_send_pipe_item_proc send_item; channel_hold_pipe_item_proc hold_item; channel_release_pipe_item_proc release_item; channel_alloc_msg_recv_buf_proc alloc_recv_buf; channel_release_msg_recv_buf_proc release_recv_buf; channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark; channel_handle_migrate_data_proc handle_migrate_data; channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial;}' at red_channel.h:195:1 changed:
>-                             type size hasn't changed
>-                             10 data member changes:
>-                              type of 'channel_configure_socket_proc config_socket' changed:
>-                                underlying type 'int (RedChannelClient*)*' changed:
>-                                  in pointed to type 'function type int (RedChannelClient*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      in pointed to type 'typedef RedChannelClient' at red_channel.h:131:1:
>-                                        underlying type 'struct RedChannelClient' at red_channel.h:247:1 changed:
>-                                          type size hasn't changed
>-                                          2 data member changes (2 filtered):
>-                                           type of 'RedChannel* RedChannelClient::channel' changed:
>-                                             in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
>-                                               underlying type 'struct RedChannel' changed; details are being reported
>-
>-                                           type of 'RedsStream* RedChannelClient::stream' changed:
>-                                             in pointed to type 'typedef RedsStream' at reds_stream.h:31:1:
>-                                               underlying type 'struct RedsStream' at reds.h:68:1 changed:
>-                                                 type size changed from 1280 to 256 (in bits)
>-                                                 5 data member deletions:
>-                                                   'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
>-                                                   'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
>-                                                   'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
>-                                                   'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
>-                                                   'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
>-                                                 1 data member change:
>-                                                  type of 'SSL* RedsStream::ssl' changed:
>-                                                    in pointed to type 'typedef SSL' at reds_stream.h:32:1:
>-                                                      typedef name changed from SSL to RedsStreamPrivate at reds_stream.h:32:1
>-                                                      underlying type 'struct ssl_st' at ssl.h:1065:1 changed:
>-                                                        type name changed from 'ssl_st' to 'RedsStreamPrivate'
>-                                                        type size changed from 5504 to 0 (in bits)
>-                                                        94 data member deletions:
>-                                                          'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
>-                                                          'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
>-                                                          'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
>-                                                          'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
>-                                                          'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
>-                                                          'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
>-                                                          'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
>-                                                          'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
>-                                                          'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
>-                                                          'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
>-                                                          'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
>-                                                          'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
>-                                                          'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
>-                                                          'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
>-                                                          'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
>-                                                          'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
>-                                                          'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
>-                                                          'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
>-                                                          'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
>-                                                          'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
>-                                                          'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
>-                                                          'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
>-                                                          'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
>-                                                          'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
>-                                                          'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
>-                                                          'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
>-                                                          'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
>-                                                          'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
>-                                                          'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
>-                                                          'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
>-                                                          'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
>-                                                          'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
>-                                                          'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
>-                                                          'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
>-                                                          'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
>-                                                          'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
>-                                                          'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
>-                                                          'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
>-                                                          'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
>-                                                          'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
>-                                                          'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
>-                                                          'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
>-                                                          'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
>-                                                          'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
>-                                                          'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
>-                                                          'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
>-                                                          'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
>-                                                          'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
>-                                                          'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
>-                                                          'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
>-                                                          'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
>-                                                          'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
>-                                                          'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
>-                                                          'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
>-                                                          'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
>-                                                          'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
>-                                                          'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
>-                                                          'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
>-                                                          'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
>-                                                          'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
>-                                                          'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
>-                                                          'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
>-                                                          'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
>-                                                          'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
>-                                                          'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
>-                                                          'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
>-                                                          'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
>-                                                          'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
>-                                                          'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
>-                                                          'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
>-                                                          'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
>-                                                          'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
>-                                                          'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
>-                                                          'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
>-                                                          'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
>-                                                          'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
>-                                                          'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
>-                                                          'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
>-                                                          'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
>-                                                          'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
>-                                                          'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
>-                                                          'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
>-                                                          'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
>-                                                          'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
>-                                                          'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
>-                                                          'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
>-                                                          'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
>-                                                          'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
>-                                                          'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
>-                                                          'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
>-                                                          'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
>-                                                          'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
>-                                                          'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
>-                                                          'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
>-                                                  and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
>-
>-
>-                              type of 'channel_disconnect_proc on_disconnect' changed:
>-                                underlying type 'void (RedChannelClient*)*' changed:
>-                                  in pointed to type 'function type void (RedChannelClient*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'channel_send_pipe_item_proc send_item' changed:
>-                                underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
>-                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'channel_hold_pipe_item_proc hold_item' changed:
>-                                underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
>-                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'channel_release_pipe_item_proc release_item' changed:
>-                                underlying type 'void (RedChannelClient*, PipeItem*, int)*' changed:
>-                                  in pointed to type 'function type void (RedChannelClient*, PipeItem*, int)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'channel_alloc_msg_recv_buf_proc alloc_recv_buf' changed:
>-                                underlying type 'uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)*' changed:
>-                                  in pointed to type 'function type uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'channel_release_msg_recv_buf_proc release_recv_buf' changed:
>-                                underlying type 'void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)*' changed:
>-                                  in pointed to type 'function type void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark' changed:
>-                                underlying type 'int (RedChannelClient*)*' changed:
>-                                  in pointed to type 'function type int (RedChannelClient*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'channel_handle_migrate_data_proc handle_migrate_data' changed:
>-                                underlying type 'int (RedChannelClient*, typedef uint32_t, void*)*' changed:
>-                                  in pointed to type 'function type int (RedChannelClient*, typedef uint32_t, void*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial' changed:
>-                                underlying type 'typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)*' changed:
>-                                  in pointed to type 'function type typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-
>-                         type of 'ClientCbs RedChannel::client_cbs' changed:
>-                           underlying type 'struct {channel_client_connect_proc connect; channel_client_disconnect_proc disconnect; channel_client_migrate_proc migrate;}' at red_channel.h:213:1 changed:
>-                             type size hasn't changed
>-                             3 data member changes:
>-                              type of 'channel_client_connect_proc connect' changed:
>-                                underlying type 'void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)*' changed:
>-                                  in pointed to type 'function type void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)':
>-                                    parameter 1 of type 'RedChannel*' has sub-type changes:
>-                                      in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
>-                                        underlying type 'struct RedChannel' changed; details are being reported
>-                                    parameter 3 of type 'RedsStream*' has sub-type changes:
>-                                      pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
>-
>-                              type of 'channel_client_disconnect_proc disconnect' changed:
>-                                underlying type 'void (RedChannelClient*)*' changed:
>-                                  in pointed to type 'function type void (RedChannelClient*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'channel_client_migrate_proc migrate' changed:
>-                                underlying type 'void (RedChannelClient*)*' changed:
>-                                  in pointed to type 'function type void (RedChannelClient*)':
>-                                    parameter 1 of type 'RedChannelClient*' has sub-type changes:
>-                                      pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+              type of 'VDIPortState RedsState::agent_state' changed:
>+                underlying type 'struct VDIPortState' at reds-private.h:46:1 changed:
>+                  type size hasn't changed
>+                  1 data member change:
>+                    type of 'SpiceCharDeviceState* VDIPortState::base' changed:
>+                      in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
>+                        underlying type 'struct SpiceCharDeviceState' at char_device.c:47:1 changed:
>+                          type size changed from 1536 to 1600 (in bits)
>+                          1 data member insertion:
>+                            'uint64_t SpiceCharDeviceState::cur_pool_size', at offset 384 (in bits) at char_device.c:57:1
>+                          12 data member changes:
>+                            'SpiceCharDeviceWriteBuffer* SpiceCharDeviceState::cur_write_buf' offset changed from 384 to 448 (in bits) (by +64 bits)
>+                            'uint8_t* SpiceCharDeviceState::cur_write_buf_pos' offset changed from 448 to 512 (in bits) (by +64 bits)
>+                            'SpiceTimer* SpiceCharDeviceState::write_to_dev_timer' offset changed from 512 to 576 (in bits) (by +64 bits)
>+                            'uint64_t SpiceCharDeviceState::num_self_tokens' offset changed from 576 to 640 (in bits) (by +64 bits)
>+                            'Ring SpiceCharDeviceState::clients' offset changed from 640 to 704 (in bits) (by +64 bits)
>+                            'uint32_t SpiceCharDeviceState::num_clients' offset changed from 768 to 832 (in bits) (by +64 bits)
>+                            'uint64_t SpiceCharDeviceState::client_tokens_interval' offset changed from 832 to 896 (in bits) (by +64 bits)
>+                            type of 'SpiceCharDeviceInstance* SpiceCharDeviceState::sin' changed:
>+                              in pointed to type 'typedef SpiceCharDeviceInstance' at spice-char.h:33:1:
>+                                underlying type 'struct SpiceCharDeviceInstance' at spice.h:416:1 changed:
>+                                  type size hasn't changed
>+                                  1 data member change:
>+                                    type of 'SpiceCharDeviceState* SpiceCharDeviceInstance::st' changed:
>+                                      in pointed to type 'typedef SpiceCharDeviceState' at spice-char.h:34:1:
>+                                        underlying type 'struct SpiceCharDeviceState' changed; details are being reported
>+
>+                            and offset changed from 896 to 960 (in bits) (by +64 bits)
>+                            'int SpiceCharDeviceState::during_read_from_device' offset changed from 960 to 1024 (in bits) (by +64 bits)
>+                            'int SpiceCharDeviceState::during_write_to_device' offset changed from 992 to 1056 (in bits) (by +64 bits)
>+                            type of 'SpiceCharDeviceCallbacks SpiceCharDeviceState::cbs' changed:
>+                              underlying type 'struct SpiceCharDeviceCallbacks' at char_device.h:81:1 changed:
>+                                type size hasn't changed
>+                                1 data member change:
>+                                  type of 'SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)* SpiceCharDeviceCallbacks::read_one_msg_from_device' changed:
>+                                    in pointed to type 'function type SpiceCharDeviceMsgToClient* (SpiceCharDeviceInstance*, void*)':
>+                                      parameter 1 of type 'SpiceCharDeviceInstance*' has sub-type changes:
>+                                        pointed to type 'typedef SpiceCharDeviceInstance' changed at spice.h:399:1, as reported earlier
>+
>+                            and offset changed from 1024 to 1088 (in bits) (by +64 bits)
>+                            'void* SpiceCharDeviceState::opaque' offset changed from 1472 to 1536 (in bits) (by +64 bits)
>+
>+                  no data member changes (3 filtered);
>+
>+              type of 'MainChannel* RedsState::main_channel' changed:
>+                in pointed to type 'typedef MainChannel' at main_channel.h:48:1:
>+                  underlying type 'struct MainChannel' at main_channel.h:36:1 changed:
>+                    type size hasn't changed
>+                    1 data member change:
>+                      type of 'RedChannel MainChannel::base' changed:
>+                        underlying type 'struct RedChannel' at red_channel.h:303:1 changed:
>+                          type size hasn't changed
>+                          2 data member changes (1 filtered):
>+                            type of 'ChannelCbs RedChannel::channel_cbs' changed:
>+                              underlying type 'struct {channel_configure_socket_proc config_socket; channel_disconnect_proc on_disconnect; channel_send_pipe_item_proc send_item; channel_hold_pipe_item_proc hold_item; channel_release_pipe_item_proc release_item; channel_alloc_msg_recv_buf_proc alloc_recv_buf; channel_release_msg_recv_buf_proc release_recv_buf; channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark; channel_handle_migrate_data_proc handle_migrate_data; channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial;}' at red_channel.h:195:1 changed:
>+                                type size hasn't changed
>+                                10 data member changes:
>+                                  type of 'channel_configure_socket_proc config_socket' changed:
>+                                    underlying type 'int (RedChannelClient*)*' changed:
>+                                      in pointed to type 'function type int (RedChannelClient*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          in pointed to type 'typedef RedChannelClient' at red_channel.h:131:1:
>+                                            underlying type 'struct RedChannelClient' at red_channel.h:247:1 changed:
>+                                              type size hasn't changed
>+                                              2 data member changes (2 filtered):
>+                                                type of 'RedChannel* RedChannelClient::channel' changed:
>+                                                  in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
>+                                                    underlying type 'struct RedChannel' changed; details are being reported
>+
>+                                                type of 'RedsStream* RedChannelClient::stream' changed:
>+                                                  in pointed to type 'typedef RedsStream' at reds_stream.h:31:1:
>+                                                    underlying type 'struct RedsStream' at reds.h:68:1 changed:
>+                                                      type size changed from 1280 to 256 (in bits)
>+                                                      5 data member deletions:
>+                                                        'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
>+                                                        'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
>+                                                        'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
>+                                                        'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
>+                                                        'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
>+                                                      1 data member change:
>+                                                        type of 'SSL* RedsStream::ssl' changed:
>+                                                          in pointed to type 'typedef SSL' at reds_stream.h:32:1:
>+                                                            typedef name changed from SSL to RedsStreamPrivate at reds_stream.h:32:1
>+                                                            underlying type 'struct ssl_st' at ssl.h:1065:1 changed:
>+                                                              type name changed from 'ssl_st' to 'RedsStreamPrivate'
>+                                                              type size changed from 5504 to 0 (in bits)
>+                                                              94 data member deletions:
>+                                                                'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
>+                                                                'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
>+                                                                'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
>+                                                                'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
>+                                                                'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
>+                                                                'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
>+                                                                'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
>+                                                                'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
>+                                                                'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
>+                                                                'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
>+                                                                'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
>+                                                                'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
>+                                                                'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
>+                                                                'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
>+                                                                'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
>+                                                                'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
>+                                                                'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
>+                                                                'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
>+                                                                'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
>+                                                                'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
>+                                                                'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
>+                                                                'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
>+                                                                'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
>+                                                                'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
>+                                                                'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
>+                                                                'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
>+                                                                'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
>+                                                                'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
>+                                                                'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
>+                                                                'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
>+                                                                'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
>+                                                                'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
>+                                                                'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
>+                                                                'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
>+                                                                'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
>+                                                                'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
>+                                                                'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
>+                                                                'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
>+                                                                'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
>+                                                                'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
>+                                                                'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
>+                                                                'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
>+                                                                'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
>+                                                                'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
>+                                                                'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
>+                                                                'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
>+                                                                'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
>+                                                                'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
>+                                                                'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
>+                                                                'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
>+                                                                'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
>+                                                                'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
>+                                                                'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
>+                                                                'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
>+                                                                'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
>+                                                                'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
>+                                                                'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
>+                                                                'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
>+                                                                'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
>+                                                                'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
>+                                                                'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
>+                                                                'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
>+                                                                'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
>+                                                                'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
>+                                                                'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
>+                                                                'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
>+                                                                'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
>+                                                                'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
>+                                                                'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
>+                                                                'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
>+                                                                'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
>+                                                                'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
>+                                                                'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
>+                                                                'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
>+                                                                'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
>+                                                                'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
>+                                                                'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
>+                                                                'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
>+                                                                'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
>+                                                                'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
>+                                                                'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
>+                                                                'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
>+                                                                'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
>+                                                                'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
>+                                                                'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
>+                                                                'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
>+                                                                'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
>+                                                                'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
>+                                                                'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
>+                                                                'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
>+                                                                'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
>+                                                                'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
>+                                                                'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
>+                                                                'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
>+                                                        and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
>+
>+
>+                                  type of 'channel_disconnect_proc on_disconnect' changed:
>+                                    underlying type 'void (RedChannelClient*)*' changed:
>+                                      in pointed to type 'function type void (RedChannelClient*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'channel_send_pipe_item_proc send_item' changed:
>+                                    underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
>+                                      in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'channel_hold_pipe_item_proc hold_item' changed:
>+                                    underlying type 'void (RedChannelClient*, PipeItem*)*' changed:
>+                                      in pointed to type 'function type void (RedChannelClient*, PipeItem*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'channel_release_pipe_item_proc release_item' changed:
>+                                    underlying type 'void (RedChannelClient*, PipeItem*, int)*' changed:
>+                                      in pointed to type 'function type void (RedChannelClient*, PipeItem*, int)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'channel_alloc_msg_recv_buf_proc alloc_recv_buf' changed:
>+                                    underlying type 'uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)*' changed:
>+                                      in pointed to type 'function type uint8_t* (RedChannelClient*, typedef uint16_t, typedef uint32_t)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'channel_release_msg_recv_buf_proc release_recv_buf' changed:
>+                                    underlying type 'void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)*' changed:
>+                                      in pointed to type 'function type void (RedChannelClient*, typedef uint16_t, typedef uint32_t, uint8_t*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'channel_handle_migrate_flush_mark_proc handle_migrate_flush_mark' changed:
>+                                    underlying type 'int (RedChannelClient*)*' changed:
>+                                      in pointed to type 'function type int (RedChannelClient*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'channel_handle_migrate_data_proc handle_migrate_data' changed:
>+                                    underlying type 'int (RedChannelClient*, typedef uint32_t, void*)*' changed:
>+                                      in pointed to type 'function type int (RedChannelClient*, typedef uint32_t, void*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'channel_handle_migrate_data_get_serial_proc handle_migrate_data_get_serial' changed:
>+                                    underlying type 'typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)*' changed:
>+                                      in pointed to type 'function type typedef uint64_t (RedChannelClient*, typedef uint32_t, void*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+
>+                            type of 'ClientCbs RedChannel::client_cbs' changed:
>+                              underlying type 'struct {channel_client_connect_proc connect; channel_client_disconnect_proc disconnect; channel_client_migrate_proc migrate;}' at red_channel.h:213:1 changed:
>+                                type size hasn't changed
>+                                3 data member changes:
>+                                  type of 'channel_client_connect_proc connect' changed:
>+                                    underlying type 'void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)*' changed:
>+                                      in pointed to type 'function type void (RedChannel*, RedClient*, RedsStream*, int, int, uint32_t*, int, uint32_t*)':
>+                                        parameter 1 of type 'RedChannel*' has sub-type changes:
>+                                          in pointed to type 'typedef RedChannel' at red_channel.h:130:1:
>+                                            underlying type 'struct RedChannel' changed; details are being reported
>+                                        parameter 3 of type 'RedsStream*' has sub-type changes:
>+                                          pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
>+
>+                                  type of 'channel_client_disconnect_proc disconnect' changed:
>+                                    underlying type 'void (RedChannelClient*)*' changed:
>+                                      in pointed to type 'function type void (RedChannelClient*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'channel_client_migrate_proc migrate' changed:
>+                                    underlying type 'void (RedChannelClient*)*' changed:
>+                                      in pointed to type 'function type void (RedChannelClient*)':
>+                                        parameter 1 of type 'RedChannelClient*' has sub-type changes:
>+                                          pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>
>
>
>@@ -531,65 +531,65 @@
>           underlying type 'struct SpicePlaybackInstance' at spice.h:350:1 changed:
>             type size hasn't changed
>             1 data member change:
>-             type of 'SpicePlaybackState* SpicePlaybackInstance::st' changed:
>-               in pointed to type 'typedef SpicePlaybackState' at spice-audio.h:34:1:
>-                 underlying type 'struct SpicePlaybackState' at snd_worker.c:165:1 changed:
>-                   type size changed from 512 to 576 (in bits)
>-                   1 data member insertion:
>-                     'uint32_t SpicePlaybackState::frequency', at offset 512 (in bits) at snd_worker.c:159:1
>-                   2 data member changes:
>-                    type of 'SndWorker SpicePlaybackState::worker' changed:
>-                      type size hasn't changed
>-                      3 data member changes:
>-                       type of 'RedChannel* SndWorker::base_channel' changed:
>-                         pointed to type 'typedef RedChannel' changed at red_channel.h:135:1, as reported earlier
>-
>-                       type of 'SndChannel* SndWorker::connection' changed:
>-                         in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
>-                           underlying type 'struct SndChannel' at snd_worker.c:89:1 changed:
>-                             type size hasn't changed
>-                             6 data member changes:
>-                              type of 'RedsStream* SndChannel::stream' changed:
>-                                pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
>-
>-                              type of 'SndWorker* SndChannel::worker' changed:
>-                                in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
>-                                  underlying type 'struct SndWorker' changed; details are being reported
>-
>-                              type of 'RedChannelClient* SndChannel::channel_client' changed:
>-                                pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>-
>-                              type of 'snd_channel_handle_message_proc SndChannel::handle_message' changed:
>-                                underlying type 'int (SndChannel*, typedef size_t, typedef uint32_t, void*)*' changed:
>-                                  in pointed to type 'function type int (SndChannel*, typedef size_t, typedef uint32_t, void*)':
>-                                    parameter 1 of type 'SndChannel*' has sub-type changes:
>-                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
>-                                        underlying type 'struct SndChannel' changed; details are being reported
>-
>-                              type of 'snd_channel_on_message_done_proc SndChannel::on_message_done' changed:
>-                                underlying type 'void (SndChannel*)*' changed:
>-                                  in pointed to type 'function type void (SndChannel*)':
>-                                    parameter 1 of type 'SndChannel*' has sub-type changes:
>-                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
>-                                        underlying type 'struct SndChannel' changed; details are being reported
>-
>-                              type of 'snd_channel_cleanup_channel_proc SndChannel::cleanup' changed:
>-                                underlying type 'void (SndChannel*)*' changed:
>-                                  in pointed to type 'function type void (SndChannel*)':
>-                                    parameter 1 of type 'SndChannel*' has sub-type changes:
>-                                      in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
>-                                        underlying type 'struct SndChannel' changed; details are being reported
>-
>-                             no data member change (1 filtered);
>-
>-                       type of 'SndWorker* SndWorker::next' changed:
>-                         in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
>-                           underlying type 'struct SndWorker' changed; details are being reported
>-
>-
>-                    type of 'SpicePlaybackInstance* SpicePlaybackState::sin' changed:
>-                      in pointed to type 'typedef SpicePlaybackInstance' at spice-audio.h:33:1:
>-                        underlying type 'struct SpicePlaybackInstance' changed; details are being reported
>+              type of 'SpicePlaybackState* SpicePlaybackInstance::st' changed:
>+                in pointed to type 'typedef SpicePlaybackState' at spice-audio.h:34:1:
>+                  underlying type 'struct SpicePlaybackState' at snd_worker.c:165:1 changed:
>+                    type size changed from 512 to 576 (in bits)
>+                    1 data member insertion:
>+                      'uint32_t SpicePlaybackState::frequency', at offset 512 (in bits) at snd_worker.c:159:1
>+                    2 data member changes:
>+                      type of 'SndWorker SpicePlaybackState::worker' changed:
>+                        type size hasn't changed
>+                        3 data member changes:
>+                          type of 'RedChannel* SndWorker::base_channel' changed:
>+                            pointed to type 'typedef RedChannel' changed at red_channel.h:135:1, as reported earlier
>+
>+                          type of 'SndChannel* SndWorker::connection' changed:
>+                            in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
>+                              underlying type 'struct SndChannel' at snd_worker.c:89:1 changed:
>+                                type size hasn't changed
>+                                6 data member changes:
>+                                  type of 'RedsStream* SndChannel::stream' changed:
>+                                    pointed to type 'typedef RedsStream' changed at red_channel.h:134:1, as reported earlier
>+
>+                                  type of 'SndWorker* SndChannel::worker' changed:
>+                                    in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
>+                                      underlying type 'struct SndWorker' changed; details are being reported
>+
>+                                  type of 'RedChannelClient* SndChannel::channel_client' changed:
>+                                    pointed to type 'typedef RedChannelClient' changed at red_channel.h:136:1, as reported earlier
>+
>+                                  type of 'snd_channel_handle_message_proc SndChannel::handle_message' changed:
>+                                    underlying type 'int (SndChannel*, typedef size_t, typedef uint32_t, void*)*' changed:
>+                                      in pointed to type 'function type int (SndChannel*, typedef size_t, typedef uint32_t, void*)':
>+                                        parameter 1 of type 'SndChannel*' has sub-type changes:
>+                                          in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
>+                                            underlying type 'struct SndChannel' changed; details are being reported
>+
>+                                  type of 'snd_channel_on_message_done_proc SndChannel::on_message_done' changed:
>+                                    underlying type 'void (SndChannel*)*' changed:
>+                                      in pointed to type 'function type void (SndChannel*)':
>+                                        parameter 1 of type 'SndChannel*' has sub-type changes:
>+                                          in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
>+                                            underlying type 'struct SndChannel' changed; details are being reported
>+
>+                                  type of 'snd_channel_cleanup_channel_proc SndChannel::cleanup' changed:
>+                                    underlying type 'void (SndChannel*)*' changed:
>+                                      in pointed to type 'function type void (SndChannel*)':
>+                                        parameter 1 of type 'SndChannel*' has sub-type changes:
>+                                          in pointed to type 'typedef SndChannel' at snd_worker.c:74:1:
>+                                            underlying type 'struct SndChannel' changed; details are being reported
>+
>+                                no data member change (1 filtered);
>+
>+                          type of 'SndWorker* SndWorker::next' changed:
>+                            in pointed to type 'typedef SndWorker' at snd_worker.c:80:1:
>+                              underlying type 'struct SndWorker' changed; details are being reported
>+
>+
>+                      type of 'SpicePlaybackInstance* SpicePlaybackState::sin' changed:
>+                        in pointed to type 'typedef SpicePlaybackInstance' at spice-audio.h:33:1:
>+                          underlying type 'struct SpicePlaybackInstance' changed; details are being reported
>
>
>
>@@ -623,19 +623,19 @@
>           underlying type 'struct SpiceRecordInstance' at spice.h:380:1 changed:
>             type size hasn't changed
>             1 data member change:
>-             type of 'SpiceRecordState* SpiceRecordInstance::st' changed:
>-               in pointed to type 'typedef SpiceRecordState' at spice-audio.h:68:1:
>-                 underlying type 'struct SpiceRecordState' at snd_worker.c:171:1 changed:
>-                   type size changed from 512 to 576 (in bits)
>-                   1 data member insertion:
>-                     'uint32_t SpiceRecordState::frequency', at offset 512 (in bits) at snd_worker.c:166:1
>-                   2 data member changes:
>-                    type of 'SndWorker SpiceRecordState::worker' changed:
>-                      details were reported earlier
>-
>-                    type of 'SpiceRecordInstance* SpiceRecordState::sin' changed:
>-                      in pointed to type 'typedef SpiceRecordInstance' at spice-audio.h:67:1:
>-                        underlying type 'struct SpiceRecordInstance' changed; details are being reported
>+              type of 'SpiceRecordState* SpiceRecordInstance::st' changed:
>+                in pointed to type 'typedef SpiceRecordState' at spice-audio.h:68:1:
>+                  underlying type 'struct SpiceRecordState' at snd_worker.c:171:1 changed:
>+                    type size changed from 512 to 576 (in bits)
>+                    1 data member insertion:
>+                      'uint32_t SpiceRecordState::frequency', at offset 512 (in bits) at snd_worker.c:166:1
>+                    2 data member changes:
>+                      type of 'SndWorker SpiceRecordState::worker' changed:
>+                        details were reported earlier
>+
>+                      type of 'SpiceRecordInstance* SpiceRecordState::sin' changed:
>+                        in pointed to type 'typedef SpiceRecordInstance' at spice-audio.h:67:1:
>+                          underlying type 'struct SpiceRecordInstance' changed; details are being reported
>
>
>
>diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>index d0381ce5..e192f2b2 100644
>--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>@@ -33,25 +33,25 @@
>             underlying type 'class tbb::internal::concurrent_queue_base_v3' at _concurrent_queue_impl.h:816: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) (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 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:
>-                         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
>+                          'tbb::spin_mutex tbb::internal::concurrent_monitor::mutex_ec' offset changed from 0 to 8 (in bits) (by +8 bits)
>
>-                      type size hasn't changed
>+                      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
>
>
>
>@@ -78,124 +78,124 @@
>           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):
>-           type of 'char tbb::task_group_context::_leading_padding[80]' changed:
>-             type name changed from 'char[80]' to 'char[72]'
>-             array type size changed from 640 to 576
>-             array type subrange 1 changed length from 80 to 72
>-
>-           type of 'tbb::internal::generic_scheduler* tbb::task_group_context::my_owner' changed:
>-             in pointed to type 'class tbb::internal::generic_scheduler' at scheduler.h:110:1:
>-               type size changed from 3136 to 3072 (in bits)
>-               1 base class change:
>-                 'struct tbb::internal::scheduler_state' at scheduler.h:73:1 changed:
>-                   type size changed from 576 to 704 (in bits)
>-                   2 data member insertions:
>-                     'volatile intptr_t* tbb::internal::scheduler_state::my_ref_top_priority', at offset 576 (in bits) at scheduler.h:96:1
>-                     'volatile uintptr_t* tbb::internal::scheduler_state::my_ref_reload_epoch', at offset 640 (in bits) at scheduler.h:99:1
>-                   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 of 'char tbb::task_group_context::_leading_padding[80]' changed:
>+              type name changed from 'char[80]' to 'char[72]'
>+              array type size changed from 640 to 576
>+              array type subrange 1 changed length from 80 to 72
>+
>+            type of 'tbb::internal::generic_scheduler* tbb::task_group_context::my_owner' changed:
>+              in pointed to type 'class tbb::internal::generic_scheduler' at scheduler.h:110:1:
>+                type size changed from 3136 to 3072 (in bits)
>+                1 base class change:
>+                  'struct tbb::internal::scheduler_state' at scheduler.h:73:1 changed:
>+                    type size changed from 576 to 704 (in bits)
>+                    2 data member insertions:
>+                      'volatile intptr_t* tbb::internal::scheduler_state::my_ref_top_priority', at offset 576 (in bits) at scheduler.h:96:1
>+                      'volatile uintptr_t* tbb::internal::scheduler_state::my_ref_reload_epoch', at offset 640 (in bits) at scheduler.h:99:1
>+                    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:
>+                            struct tbb::internal::padded<tbb::internal::arena_base, 128ul> at tbb_stddef.h:251:1
>+                          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 base class deletion:
>-                          struct tbb::internal::padded<tbb::internal::arena_base> at tbb_stddef.h:261:1
>-                        1 base class insertion:
>-                          struct tbb::internal::padded<tbb::internal::arena_base, 128ul> at tbb_stddef.h:251:1
>                         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:
>-                             struct tbb::internal::padded<tbb::internal::unpadded_mail_outbox, 128ul> at tbb_stddef.h:251:1
>-                           1 data member deletion:
>-                             'char tbb::internal::mail_outbox::pad[104]', at offset 136 (in bits) at mailbox.h:114:1
>-
>-
>-
>-               1 member function deletion:
>-                 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
>-
>-               1 member function insertion:
>-                 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&)' at scheduler.h:362:1, virtual at voffset 7/7
>-
>-               3 data member deletions:
>-                 'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
>-                 'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
>-                 '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) (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 (in bits)
>-                    1 data member insertion:
>-                      'bool tbb::internal::market::join_workers', at offset 384 (in bits) at market.h:88:1
>-                    7 data member changes:
>-                     type of 'tbb::internal::market::arenas_list_mutex_type tbb::internal::market::my_arenas_list_mutex' changed:
>-                       underlying type 'typedef tbb::internal::scheduler_mutex_type' at scheduler_common.h:123:1 changed:
>-                         typedef name changed from tbb::internal::scheduler_mutex_type to tbb::spin_rw_mutex at spin_rw_mutex.h:38:1
>-                         underlying type 'class tbb::spin_mutex' at spin_mutex.h:47:1 changed:
>-                           type name changed from 'tbb::spin_mutex' to 'tbb::spin_rw_mutex_v3'
>-                           type size changed from 8 to 64 (in bits)
>-                           1 base class insertion:
>-                             class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
>-                           1 data member change:
>-                            type of '__TBB_atomic_flag tbb::spin_mutex::flag' changed:
>-                              typedef name changed from __TBB_atomic_flag to tbb::spin_rw_mutex_v3::state_t at spin_rw_mutex.h:214:1
>-                              underlying type 'typedef __TBB_Flag' at tbb_machine.h:875:1 changed:
>-                                typedef name changed from __TBB_Flag to intptr_t at stdint.h:119:1
>-                                underlying type 'unsigned char' changed:
>-                                  type name changed from 'unsigned char' to 'long int'
>-                                  type size changed from 8 to 64 (in bits)
>-                            and name of 'tbb::spin_mutex::flag' changed to 'tbb::spin_rw_mutex_v3::state' at spin_rw_mutex.h:224:1
>-
>-                     '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*'
>+                          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:
>+                                struct tbb::internal::padded<tbb::internal::unpadded_mail_outbox, 128ul> at tbb_stddef.h:251:1
>+                              1 data member deletion:
>+                                'char tbb::internal::mail_outbox::pad[104]', at offset 136 (in bits) at mailbox.h:114:1
>+
>+
>+
>+                1 member function deletion:
>+                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
>+
>+                1 member function insertion:
>+                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&)' at scheduler.h:362:1, virtual at voffset 7/7
>+
>+                3 data member deletions:
>+                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
>+                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
>+                  '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) (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 (in bits)
>+                      1 data member insertion:
>+                        'bool tbb::internal::market::join_workers', at offset 384 (in bits) at market.h:88:1
>+                      7 data member changes:
>+                        type of 'tbb::internal::market::arenas_list_mutex_type tbb::internal::market::my_arenas_list_mutex' changed:
>+                          underlying type 'typedef tbb::internal::scheduler_mutex_type' at scheduler_common.h:123:1 changed:
>+                            typedef name changed from tbb::internal::scheduler_mutex_type to tbb::spin_rw_mutex at spin_rw_mutex.h:38:1
>+                            underlying type 'class tbb::spin_mutex' at spin_mutex.h:47:1 changed:
>+                              type name changed from 'tbb::spin_mutex' to 'tbb::spin_rw_mutex_v3'
>+                              type size changed from 8 to 64 (in bits)
>+                              1 base class insertion:
>+                                class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1
>+                              1 data member change:
>+                                type of '__TBB_atomic_flag tbb::spin_mutex::flag' changed:
>+                                  typedef name changed from __TBB_atomic_flag to tbb::spin_rw_mutex_v3::state_t at spin_rw_mutex.h:214:1
>+                                  underlying type 'typedef __TBB_Flag' at tbb_machine.h:875:1 changed:
>+                                    typedef name changed from __TBB_Flag to intptr_t at stdint.h:119:1
>+                                    underlying type 'unsigned char' changed:
>+                                      type name changed from 'unsigned char' to 'long int'
>+                                      type size changed from 8 to 64 (in bits)
>+                                and name of 'tbb::spin_mutex::flag' changed to 'tbb::spin_rw_mutex_v3::state' at spin_rw_mutex.h:224:1
>+
>+                        '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
>-
>-                       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)
>+                            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*'
>+                                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:
>diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>index 89c8efa3..203b8473 100644
>--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>@@ -49,10 +49,10 @@
>           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 (2 filtered):
>-           type of 'char tbb::task_group_context::_leading_padding[80]' changed:
>-             type name changed from 'char[80]' to 'char[72]'
>-             array type size changed from 640 to 576
>-             array type subrange 1 changed length from 80 to 72
>+            type of 'char tbb::task_group_context::_leading_padding[80]' changed:
>+              type name changed from 'char[80]' to 'char[72]'
>+              array type size changed from 640 to 576
>+              array type subrange 1 changed length from 80 to 72
>
>
>     [C] 'method void tbb::queuing_mutex::scoped_lock::acquire(tbb::queuing_mutex&)' at queuing_mutex.h:84:1 has some indirect sub-type changes:
>diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
>index 11a383c7..3af4788a 100644
>--- a/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
>+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-0.txt
>@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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':
>-             type size changed from 32 to 64 (in bits)
>-             1 data member insertion:
>-               'char MyType::Private::m1', at offset 32 (in bits)
>+          type of 'MyType::Private* MyType::priv' changed:
>+            in pointed to type 'struct MyType::Private':
>+              type size changed from 32 to 64 (in bits)
>+              1 data member insertion:
>+                'char MyType::Private::m1', at offset 32 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
>index 11a383c7..3af4788a 100644
>--- a/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
>+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-3.txt
>@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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':
>-             type size changed from 32 to 64 (in bits)
>-             1 data member insertion:
>-               'char MyType::Private::m1', at offset 32 (in bits)
>+          type of 'MyType::Private* MyType::priv' changed:
>+            in pointed to type 'struct MyType::Private':
>+              type size changed from 32 to 64 (in bits)
>+              1 data member insertion:
>+                'char MyType::Private::m1', at offset 32 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
>index 11a383c7..3af4788a 100644
>--- a/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
>+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-5.txt
>@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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':
>-             type size changed from 32 to 64 (in bits)
>-             1 data member insertion:
>-               'char MyType::Private::m1', at offset 32 (in bits)
>+          type of 'MyType::Private* MyType::priv' changed:
>+            in pointed to type 'struct MyType::Private':
>+              type size changed from 32 to 64 (in bits)
>+              1 data member insertion:
>+                'char MyType::Private::m1', at offset 32 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt b/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
>index 11a383c7..3af4788a 100644
>--- a/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
>+++ b/tests/data/test-diff-suppr/test0-type-suppr-report-7.txt
>@@ -8,11 +8,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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':
>-             type size changed from 32 to 64 (in bits)
>-             1 data member insertion:
>-               'char MyType::Private::m1', at offset 32 (in bits)
>+          type of 'MyType::Private* MyType::priv' changed:
>+            in pointed to type 'struct MyType::Private':
>+              type size changed from 32 to 64 (in bits)
>+              1 data member insertion:
>+                'char MyType::Private::m1', at offset 32 (in bits)
>
>
>
>diff --git a/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt b/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
>index d3ac0320..8b33db84 100644
>--- a/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
>+++ b/tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt
>@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char b_type::m_char', at offset 0 (in bits)
>         1 data member change:
>-         'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>   [C] 'function void foo(a_type*)' has some indirect sub-type changes:
>     parameter 1 of type 'a_type*' has sub-type changes:
>@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           1 data member insertion:
>             'char a_type::m_char', at offset 0 (in bits)
>           1 data member change:
>-           'int a_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
>+            'int a_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt b/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
>index e9a14b00..251f4356 100644
>--- a/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
>+++ b/tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char b_type::m_char', at offset 0 (in bits)
>         1 data member change:
>-         'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int b_type::m_int' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt b/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt
>index fa1d882f..71f601f9 100644
>--- a/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt
>+++ b/tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt
>@@ -9,9 +9,9 @@ Variables changes summary: 0 Removed, 1 Changed, 1 Added variables
>
>   [C] 'S* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 32 to 64 (in bits)
>-       1 data member insertion:
>-         'char S::m1', at offset 32 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 32 to 64 (in bits)
>+        1 data member insertion:
>+          'char S::m1', at offset 32 (in bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt b/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt
>index 2cb7afd9..ab0c65c0 100644
>--- a/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt
>+++ b/tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt
>@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added (1 filtered out) variab
>
>   [C] 'S* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 32 to 64 (in bits)
>-       1 data member insertion:
>-         'char S::m1', at offset 32 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 32 to 64 (in bits)
>+        1 data member insertion:
>+          'char S::m1', at offset 32 (in bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt b/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt
>index fa1d882f..71f601f9 100644
>--- a/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt
>+++ b/tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt
>@@ -9,9 +9,9 @@ Variables changes summary: 0 Removed, 1 Changed, 1 Added variables
>
>   [C] 'S* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 32 to 64 (in bits)
>-       1 data member insertion:
>-         'char S::m1', at offset 32 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 32 to 64 (in bits)
>+        1 data member insertion:
>+          'char S::m1', at offset 32 (in bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt
>index 47fe3d83..a8dc9848 100644
>--- a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt
>+++ b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt
>@@ -9,9 +9,9 @@ Variables changes summary: 1 Removed, 1 Changed, 0 Added variables
>
>   [C] 'S* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 32 to 64 (in bits)
>-       1 data member insertion:
>-         'char S::m1', at offset 32 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 32 to 64 (in bits)
>+        1 data member insertion:
>+          'char S::m1', at offset 32 (in bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt
>index f235ac30..6f9467c7 100644
>--- a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt
>+++ b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt
>@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed (1 filtered out), 1 Changed, 0 Added variab
>
>   [C] 'S* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 32 to 64 (in bits)
>-       1 data member insertion:
>-         'char S::m1', at offset 32 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 32 to 64 (in bits)
>+        1 data member insertion:
>+          'char S::m1', at offset 32 (in bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt
>index 47fe3d83..a8dc9848 100644
>--- a/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt
>+++ b/tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt
>@@ -9,9 +9,9 @@ Variables changes summary: 1 Removed, 1 Changed, 0 Added variables
>
>   [C] 'S* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 32 to 64 (in bits)
>-       1 data member insertion:
>-         'char S::m1', at offset 32 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 32 to 64 (in bits)
>+        1 data member insertion:
>+          'char S::m1', at offset 32 (in bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt b/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
>index 0de2e7cf..b380313d 100644
>--- a/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
>+++ b/tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char C::inserted_char_member', at offset 0 (in bits)
>         1 data member change:
>-         'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt b/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
>index 75274e00..125cd90c 100644
>--- a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
>+++ b/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt
>@@ -13,6 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           1 data member insertion:
>             'char S::inserted_member', at offset 0 (in bits)
>           1 data member change:
>-           'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+            'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt b/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
>index 75274e00..125cd90c 100644
>--- a/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
>+++ b/tests/data/test-diff-suppr/test23-alias-filter-report-2.txt
>@@ -13,6 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           1 data member insertion:
>             'char S::inserted_member', at offset 0 (in bits)
>           1 data member change:
>-           'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+            'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test29-soname-report-3.txt b/tests/data/test-diff-suppr/test29-soname-report-3.txt
>index 609643aa..c17c6a39 100644
>--- a/tests/data/test-diff-suppr/test29-soname-report-3.txt
>+++ b/tests/data/test-diff-suppr/test29-soname-report-3.txt
>@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
>
>   [C] 'static S* S::sm0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 32 to 64 (in bits)
>-       1 data member insertion:
>-         'char S::m1', at offset 32 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 32 to 64 (in bits)
>+        1 data member insertion:
>+          'char S::m1', at offset 32 (in bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test29-soname-report-6.txt b/tests/data/test-diff-suppr/test29-soname-report-6.txt
>index 609643aa..c17c6a39 100644
>--- a/tests/data/test-diff-suppr/test29-soname-report-6.txt
>+++ b/tests/data/test-diff-suppr/test29-soname-report-6.txt
>@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
>
>   [C] 'static S* S::sm0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 32 to 64 (in bits)
>-       1 data member insertion:
>-         'char S::m1', at offset 32 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 32 to 64 (in bits)
>+        1 data member insertion:
>+          'char S::m1', at offset 32 (in bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test29-soname-report-8.txt b/tests/data/test-diff-suppr/test29-soname-report-8.txt
>index 609643aa..c17c6a39 100644
>--- a/tests/data/test-diff-suppr/test29-soname-report-8.txt
>+++ b/tests/data/test-diff-suppr/test29-soname-report-8.txt
>@@ -5,9 +5,9 @@ Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
>
>   [C] 'static S* S::sm0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S':
>-       type size changed from 32 to 64 (in bits)
>-       1 data member insertion:
>-         'char S::m1', at offset 32 (in bits)
>+      in pointed to type 'struct S':
>+        type size changed from 32 to 64 (in bits)
>+        1 data member insertion:
>+          'char S::m1', at offset 32 (in bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
>index ebd3b6ea..b36cce6e 100644
>--- a/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
>+++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt
>@@ -10,13 +10,13 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char S::inserted_char_member', at offset 0 (in bits)
>         1 data member change:
>-         'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 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 (in 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) (by +32 bits)
>+          'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
>index 93fa56e1..a2fe75aa 100644
>--- a/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
>+++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char C::inserted_char_member', at offset 0 (in bits)
>         1 data member change:
>-         'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int C::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt b/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
>index 3cf04629..0e09e1ec 100644
>--- a/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
>+++ b/tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char S::inserted_char_member', at offset 0 (in bits)
>         1 data member change:
>-         'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S::int_member' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test30-report-0.txt b/tests/data/test-diff-suppr/test30-report-0.txt
>index 9ac85d53..15790f64 100644
>--- a/tests/data/test-diff-suppr/test30-report-0.txt
>+++ b/tests/data/test-diff-suppr/test30-report-0.txt
>@@ -22,11 +22,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       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 64 to 128 (in bits)
>-             1 data member insertion:
>-               'int S::priv_type::member1', at offset 64 (in bits) at test30-pub-lib-v1.cc:18:1
>+          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 64 to 128 (in bits)
>+              1 data member insertion:
>+                'int S::priv_type::member1', at offset 64 (in bits) at test30-pub-lib-v1.cc:18:1
>
>
>
>diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>index f286cc7b..92de4df4 100644
>--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>@@ -16,9 +16,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> 'struct leaf2 at test36-leaf-v0.cc:9:1' changed:
>   type size changed from 64 to 96 (in bits)
>   there are data member changes:
>-   type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
>-   and size changed from 32 to 64 (in bits) (by +32 bits)
>-   'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
>+    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
>+    and size changed from 32 to 64 (in bits) (by +32 bits)
>+    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
>   3 impacted interfaces:
>     function void interface1(struct_type*)
>     function void interface2(struct_type&)
>diff --git a/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt b/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
>index 3484c052..4129ccae 100644
>--- a/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
>+++ b/tests/data/test-diff-suppr/test4-local-suppr-report-0.txt
>@@ -10,12 +10,12 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'unsigned int public_type::oops', at offset 0 (in bits)
>         1 data member change:
>-         type of 'private_data* public_type::priv_' changed:
>-           in pointed to type 'struct private_data':
>-             type size changed from 32 to 64 (in bits)
>-             1 data member insertion:
>-               'char private_data::private_data1', at offset 32 (in bits)
>-         and offset changed from 0 to 64 (in bits) (by +64 bits)
>+          type of 'private_data* public_type::priv_' changed:
>+            in pointed to type 'struct private_data':
>+              type size changed from 32 to 64 (in bits)
>+              1 data member insertion:
>+                'char private_data::private_data1', at offset 32 (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 (in bits)
>diff --git a/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt b/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
>index e051f750..b76e25b0 100644
>--- a/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
>+++ b/tests/data/test-diff-suppr/test4-local-suppr-report-1.txt
>@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'unsigned int public_type::oops', at offset 0 (in bits)
>         1 data member change:
>-         'private_data* public_type::priv_' offset changed from 0 to 64 (in bits) (by +64 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 (in bits)
>diff --git a/tests/data/test-diff-suppr/test46-PR25128-report-1.txt b/tests/data/test-diff-suppr/test46-PR25128-report-1.txt
>index 9a974032..f16989e4 100644
>--- a/tests/data/test-diff-suppr/test46-PR25128-report-1.txt
>+++ b/tests/data/test-diff-suppr/test46-PR25128-report-1.txt
>@@ -10,9 +10,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> 'struct root_domain at sched.h:732:1' changed:
>   type size changed from 14592 to 14720 (in bits)
>   there are data member changes:
>-   type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
>-     entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
>-     type size changed from 64 to 192 (in bits)
>-   and size changed from 64 to 192 (in bits) (by +128 bits)
>-   'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
>+    type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
>+      entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
>+      type size changed from 64 to 192 (in bits)
>+    and size changed from 64 to 192 (in bits) (by +128 bits)
>+    'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
>
>diff --git a/tests/data/test-diff-suppr/test46-PR25128-report-2.txt b/tests/data/test-diff-suppr/test46-PR25128-report-2.txt
>index d6873cb0..f8654213 100644
>--- a/tests/data/test-diff-suppr/test46-PR25128-report-2.txt
>+++ b/tests/data/test-diff-suppr/test46-PR25128-report-2.txt
>@@ -6,9 +6,9 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> 'struct root_domain at sched.h:732:1' changed:
>   type size changed from 14592 to 14720 (in bits)
>   there are data member changes:
>-   type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
>-     entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
>-     type size changed from 64 to 192 (in bits)
>-   and size changed from 64 to 192 (in bits) (by +128 bits)
>-   'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
>+    type 'unsigned long int' of 'root_domain::max_cpu_capacity' changed:
>+      entity changed from 'unsigned long int' to 'struct max_cpu_capacity' at sched.h:722:1
>+      type size changed from 64 to 192 (in bits)
>+    and size changed from 64 to 192 (in bits) (by +128 bits)
>+    'perf_domain* root_domain::pd' offset changed from 14528 to 14656 (in bits) (by +128 bits)
>
>diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
>index 30b79879..505ba42c 100644
>--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
>+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt
>@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char S::m0', at offset 0 (in bits)
>         1 data member change:
>-         'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>   [C] 'function void bar(int, S)' has some indirect sub-type changes:
>     parameter 2 of type 'struct S' has sub-type changes:
>diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
>index 072702c9..45ead077 100644
>--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
>+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt
>@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       1 data member insertion:
>         'char S::m0', at offset 0 (in bits)
>       1 data member change:
>-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
>index 072702c9..45ead077 100644
>--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
>+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt
>@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       1 data member insertion:
>         'char S::m0', at offset 0 (in bits)
>       1 data member change:
>-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
>index 072702c9..45ead077 100644
>--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
>+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt
>@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       1 data member insertion:
>         'char S::m0', at offset 0 (in bits)
>       1 data member change:
>-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
>index ca57bbbb..1d631754 100644
>--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
>+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt
>@@ -10,6 +10,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 data member insertion:
>           'char S::m0', at offset 0 (in bits)
>         1 data member change:
>-         'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt b/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
>index 072702c9..45ead077 100644
>--- a/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
>+++ b/tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt
>@@ -9,6 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>       1 data member insertion:
>         'char S::m0', at offset 0 (in bits)
>       1 data member change:
>-       'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>+        'int S::m1' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
>index 2c08c142..559182db 100644
>--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
>+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt
>@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 base class insertion:
>           struct base at test6-fn-suppr-v1.cc:4:1
>         1 data member change:
>-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>   [C] 'function int bar(S&)' at test6-fn-suppr-v1.cc:42:1 has some indirect sub-type changes:
>     parameter 1 of type 'S&' has sub-type changes:
>@@ -19,7 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 base class insertion:
>           struct base at test6-fn-suppr-v1.cc:4:1
>         1 data member change:
>-         'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>   [C] 'function char bar(int, S2**)' at test6-fn-suppr-v1.cc:52:1 has some indirect sub-type changes:
>     parameter 2 of type 'S2**' has sub-type changes:
>@@ -29,6 +29,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           1 base class insertion:
>             struct base at test6-fn-suppr-v1.cc:4:1
>           1 data member change:
>-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
>index 32e1d239..a679f47a 100644
>--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
>+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt
>@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 base class insertion:
>           struct base
>         1 data member change:
>-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>   [C] 'function int bar(S&)' has some indirect sub-type changes:
>     parameter 1 of type 'S&' has sub-type changes:
>@@ -19,7 +19,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 base class insertion:
>           struct base
>         1 data member change:
>-         'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
>     parameter 2 of type 'S2**' has sub-type changes:
>@@ -29,6 +29,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           1 base class insertion:
>             struct base
>           1 data member change:
>-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
>index 0a3c7b4d..20fcb19b 100644
>--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
>+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt
>@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 base class insertion:
>           struct base
>         1 data member change:
>-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
>     parameter 2 of type 'S2**' has sub-type changes:
>@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           1 base class insertion:
>             struct base
>           1 data member change:
>-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
>index 0a3c7b4d..20fcb19b 100644
>--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
>+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt
>@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 base class insertion:
>           struct base
>         1 data member change:
>-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
>     parameter 2 of type 'S2**' has sub-type changes:
>@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           1 base class insertion:
>             struct base
>           1 data member change:
>-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt b/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
>index 0a3c7b4d..20fcb19b 100644
>--- a/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
>+++ b/tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt
>@@ -10,7 +10,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>         1 base class insertion:
>           struct base
>         1 data member change:
>-         'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+          'int S1::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>   [C] 'function char bar(int, S2**)' has some indirect sub-type changes:
>     parameter 2 of type 'S2**' has sub-type changes:
>@@ -20,6 +20,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>           1 base class insertion:
>             struct base
>           1 data member change:
>-           'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>+            'int S2::m0' offset changed from 0 to 32 (in bits) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
>index 7fd8502c..10153c12 100644
>--- a/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
>+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-0.txt
>@@ -5,20 +5,20 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables
>
>   [C] 'S0* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S0':
>-       type size changed from 32 to 64 (in 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) (by +32 bits)
>+      in pointed to type 'struct S0':
>+        type size changed from 32 to 64 (in 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) (by +32 bits)
>
>   [C] 'S1* var1' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S1':
>-       type size changed from 32 to 64 (in 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) (by +32 bits)
>+      in pointed to type 'struct S1':
>+        type size changed from 32 to 64 (in 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) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
>index d4d86310..6a924a85 100644
>--- a/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
>+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-1.txt
>@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
>
>   [C] 'S1* var1' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S1':
>-       type size changed from 32 to 64 (in 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) (by +32 bits)
>+      in pointed to type 'struct S1':
>+        type size changed from 32 to 64 (in 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) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
>index af81d0a8..15e0668f 100644
>--- a/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
>+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-2.txt
>@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
>
>   [C] 'S0* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S0':
>-       type size changed from 32 to 64 (in 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) (by +32 bits)
>+      in pointed to type 'struct S0':
>+        type size changed from 32 to 64 (in 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) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
>index d4d86310..6a924a85 100644
>--- a/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
>+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-3.txt
>@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
>
>   [C] 'S1* var1' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S1':
>-       type size changed from 32 to 64 (in 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) (by +32 bits)
>+      in pointed to type 'struct S1':
>+        type size changed from 32 to 64 (in 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) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
>index af81d0a8..15e0668f 100644
>--- a/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
>+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-4.txt
>@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
>
>   [C] 'S0* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S0':
>-       type size changed from 32 to 64 (in 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) (by +32 bits)
>+      in pointed to type 'struct S0':
>+        type size changed from 32 to 64 (in 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) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
>index af81d0a8..15e0668f 100644
>--- a/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
>+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-7.txt
>@@ -5,11 +5,11 @@ Variables changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added variab
>
>   [C] 'S0* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S0':
>-       type size changed from 32 to 64 (in 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) (by +32 bits)
>+      in pointed to type 'struct S0':
>+        type size changed from 32 to 64 (in 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) (by +32 bits)
>
>
>diff --git a/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt b/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
>index 7fd8502c..10153c12 100644
>--- a/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
>+++ b/tests/data/test-diff-suppr/test7-var-suppr-report-8.txt
>@@ -5,20 +5,20 @@ Variables changes summary: 0 Removed, 2 Changed, 0 Added variables
>
>   [C] 'S0* var0' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S0':
>-       type size changed from 32 to 64 (in 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) (by +32 bits)
>+      in pointed to type 'struct S0':
>+        type size changed from 32 to 64 (in 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) (by +32 bits)
>
>   [C] 'S1* var1' was changed:
>     type of variable changed:
>-     in pointed to type 'struct S1':
>-       type size changed from 32 to 64 (in 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) (by +32 bits)
>+      in pointed to type 'struct S1':
>+        type size changed from 32 to 64 (in 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) (by +32 bits)
>
>
>-- 
>2.25.1.481.gfbce0eb801-goog
>
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 5/5] [abidiff] Treat function type changes as local.
  2020-03-12  6:30 ` [PATCH 5/5] [abidiff] Treat function type changes as local Giuliano Procida
@ 2020-03-14 20:45   ` Matthias Maennich
  2020-03-17 16:15   ` Dodji Seketeli
  1 sibling, 0 replies; 21+ messages in thread
From: Matthias Maennich @ 2020-03-14 20:45 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, dodji, kernel-team

On Thu, Mar 12, 2020 at 06:30:36AM +0000, Android Kernel Team wrote:
>In leaf-changes-only mode, if the type of a struct's function pointer
>member changes it currently gets categorised as a non-local change and
>so is not reported. The change to any function passing such a struct
>is considered non-local and also not reported.
>
>This patch broadens the definition of local changes to include these
>cases and so have them be reported in leaf-changes-only mode. It may
>be the first of a sequence of such patches,
>

This actually fixes a bug as well:

  $ abidiff tests/data/test-abidiff-exit/test-leaf2-v{0,1}.o

reports the detailed change and exits with rc=4. Correct as I think.

In contrast:

  $ abidiff tests/data/test-abidiff-exit/test-leaf2-v{0,1}.o --leaf-changes-only

reported nothing with rc=4, but does consistently emit a difference now.

So, I believe, whenever we come to the conclusion that rc=4 is the right
way to exit, we need to report something in either mode. That makes me
think we should actually make this an ABG_ASSERT.

And I also believe therefore that this patch is correct:
Reviewed-by: Matthias Maennich <maennich@google.com>

Thanks for working on this!

Cheers,
Matthias

>	* src/abg-ir.cc (types_have_similar_structure): Always compare
>	function types (instead of just returning true) regardless of
>        whether they are components of pointer-to-function or
>        reference-to-function types.
>	* tests/data/Makefile.am: Add new test case files.
>	* tests/data/test-abidiff-exit/test-leaf2-report.txt: New test
>	case.
>	* tests/data/test-abidiff-exit/test-leaf2-v0.cc: Ditto.
>	* tests/data/test-abidiff-exit/test-leaf2-v0.o: Ditto.
>	* tests/data/test-abidiff-exit/test-leaf2-v1.cc: Ditto.
>	* tests/data/test-abidiff-exit/test-leaf2-v1.o: Ditto.
>	* tests/test-abidiff-exit.cc: Run new test case.
>
>Signed-off-by: Giuliano Procida <gprocida@google.com>
>---
> src/abg-ir.cc                                 |  34 +++++++++---------
> tests/data/Makefile.am                        |   5 +++
> .../test-abidiff-exit/test-leaf2-report.txt   |  12 +++++++
> tests/data/test-abidiff-exit/test-leaf2-v0.cc |   6 ++++
> tests/data/test-abidiff-exit/test-leaf2-v0.o  | Bin 0 -> 2840 bytes
> tests/data/test-abidiff-exit/test-leaf2-v1.cc |   6 ++++
> tests/data/test-abidiff-exit/test-leaf2-v1.o  | Bin 0 -> 2952 bytes
> tests/test-abidiff-exit.cc                    |   9 +++++
> 8 files changed, 55 insertions(+), 17 deletions(-)
> create mode 100644 tests/data/test-abidiff-exit/test-leaf2-report.txt
> create mode 100644 tests/data/test-abidiff-exit/test-leaf2-v0.cc
> create mode 100644 tests/data/test-abidiff-exit/test-leaf2-v0.o
> create mode 100644 tests/data/test-abidiff-exit/test-leaf2-v1.cc
> create mode 100644 tests/data/test-abidiff-exit/test-leaf2-v1.o
>
>diff --git a/src/abg-ir.cc b/src/abg-ir.cc
>index 3b1577a8..2cb76ffc 100644
>--- a/src/abg-ir.cc
>+++ b/src/abg-ir.cc
>@@ -22745,25 +22745,25 @@ types_have_similar_structure(const type_base* first, const type_base* second)
>   if (const function_type* ty1 = is_function_type(first))
>     {
>       const function_type* ty2 = is_function_type(second);
>-      if (!was_indirect_type)
>-	{
>-	  if (!types_have_similar_structure(ty1->get_return_type(),
>-					    ty2->get_return_type()))
>-	    return false;
>+      if (!ty2)
>+	return false;
>
>-	  if (ty1->get_parameters().size() != ty2->get_parameters().size())
>-	    return false;
>+      if (!types_have_similar_structure(ty1->get_return_type(),
>+					ty2->get_return_type()))
>+	return false;
>
>-	  for (function_type::parameters::const_iterator
>-		 i = ty1->get_parameters().begin(),
>-		 j = ty2->get_parameters().begin();
>-	       (i != ty1->get_parameters().end()
>-		&& j != ty2->get_parameters().end());
>-	       ++i, ++j)
>-	    if (!types_have_similar_structure((*i)->get_type(),
>-					      (*j)->get_type()))
>-	      return false;
>-	}
>+      if (ty1->get_parameters().size() != ty2->get_parameters().size())
>+	return false;
>+
>+      for (function_type::parameters::const_iterator
>+	     i = ty1->get_parameters().begin(),
>+	     j = ty2->get_parameters().begin();
>+	   (i != ty1->get_parameters().end()
>+	    && j != ty2->get_parameters().end());
>+	   ++i, ++j)
>+	if (!types_have_similar_structure((*i)->get_type(),
>+					  (*j)->get_type()))
>+	  return false;
>
>       return true;
>     }
>diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
>index bf76ca2e..3b4b614b 100644
>--- a/tests/data/Makefile.am
>+++ b/tests/data/Makefile.am
>@@ -120,6 +120,11 @@ test-abidiff-exit/test-leaf1-v0.o \
> test-abidiff-exit/test-leaf1-v1.cc \
> test-abidiff-exit/test-leaf1-v1.o \
> test-abidiff-exit/test-leaf1-report.txt \
>+test-abidiff-exit/test-leaf2-v0.cc \
>+test-abidiff-exit/test-leaf2-v0.o \
>+test-abidiff-exit/test-leaf2-v1.cc \
>+test-abidiff-exit/test-leaf2-v1.o \
>+test-abidiff-exit/test-leaf2-report.txt \
> test-abidiff-exit/test-leaf3-v0.c \
> test-abidiff-exit/test-leaf3-v0.o \
> test-abidiff-exit/test-leaf3-v1.c \
>diff --git a/tests/data/test-abidiff-exit/test-leaf2-report.txt b/tests/data/test-abidiff-exit/test-leaf2-report.txt
>new file mode 100644
>index 00000000..2765b469
>--- /dev/null
>+++ b/tests/data/test-abidiff-exit/test-leaf2-report.txt
>@@ -0,0 +1,12 @@
>+Leaf changes summary: 1 artifact changed
>+Changed leaf types summary: 1 leaf type changed
>+Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
>+Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>+
>+'struct ops' changed:
>+  type size hasn't changed
>+  there are data member changes:
>+    type 'void (int)*' of 'ops::munge' changed:
>+      pointer type changed from: 'void (int)*' to: 'char (long int, bool)*'
>+
>+
>diff --git a/tests/data/test-abidiff-exit/test-leaf2-v0.cc b/tests/data/test-abidiff-exit/test-leaf2-v0.cc
>new file mode 100644
>index 00000000..b75dd84c
>--- /dev/null
>+++ b/tests/data/test-abidiff-exit/test-leaf2-v0.cc
>@@ -0,0 +1,6 @@
>+struct ops {
>+  void (*munge)(int x);
>+};
>+
>+void register_ops(const ops&) {
>+}
>diff --git a/tests/data/test-abidiff-exit/test-leaf2-v0.o b/tests/data/test-abidiff-exit/test-leaf2-v0.o
>new file mode 100644
>index 0000000000000000000000000000000000000000..211a33884f30755929210fee5d328e5b7e6c24e1
>GIT binary patch
>literal 2840
>zcmb_e-ESL35TEtg@g>)|PE4UukT4QZs&a>&R#DO_#b9Vsm7=IpQB?_<vvd9s@j2X`
>zOUk!YgwzM5AP@x!iHE-M$p64Uf-2Excthd=X7+ZR_2%+|SjjsxzxmwRkMn15ym=)j
>z1n>}W84e{z0dCD4@(sy0paP3<bL;-^TlYWt>)@SVzd<-JRkn<f@)AfVN8@v&y%=mE
>z>@5T>Qi$AKOB&=|B!ycz&CmqJd|?nKVB6PGm?cCMv}yo2uK4i)m2))ZzV3q~V}n=_
>z&zCBWRa!1Bh{a<0Db!YkWjoGA=aRGThzb@k4^}A^uU6JDUj7BRig@9aAoWZ^O2y~E
>zaV|TS4Pc){mMmsH@yZhWhB8Cr^n=%y$Zd|?a;LGtva*Jks5bmz1Ud7>OJJF46B!H6
>z;4H-7rFop?USWR)Bte|GyMf<baqrZ;PDlC_o`Kmk0g6u+#J!w_PMdGttTxY`t6!+D
>zdn;bOx>BpJ*K6l%Rd<+-!(gKqgh4dupy)@P{>J{=s=Ioj>h`K`*N^XpoqjY5N8{KX
>zhaU{W9XIjYyFq-kfY$B$N)+@4aS}u=+~6D6&eJx(oDBCs$6+`QdjY^^vw5-l;_E?s
>z;D>2tZhiHvQKMWIJdqL*AKn15Ulz+JiuM7v;c3L_M?*I8)l&J(TyuWr3L2zv=1eCv
>z4}boXrNoY9!MG8V&Q9sA^Z-v`Bv|S?m<kJ~j_*WmL2<(CjFp~x9g@5?Ir-Bn3+AT*
>zC0S5920w8GUqob4>%-)L9yxW#Y`TibE1g4`c~Wsk!sVSN5XVAFfbqALe9FK-Rq~Re
>zv}5}2oYn00b8tz+DK9-1G`cC7<h`flp@H|5{Jx@QUS1>BUr;tg%8EDbSC7G~3a2&c
>z>jE#nJH-2kG>KB$XD$i$6YzHY#0Re($KXZ5uJ7#x?QyR)2)iTHN#1X_qu|bz+K+s^
>zk<%`_gD_whOaWeJG#m!_5_{n&2|RpL+&J+&@2NmRztxTWAzthMV=QA3>J|5sV>T2s
>zIgd&vTYWr>0%7vgqA9Lvyv~~b^yJdH`LF(U^fhBrKF<Gu1Z|kM^r4^+XhX9h_FeT=
>z{X^k&t_b2Yj$a!&HgGm$lH!rn0(_+?6VrAZ6(&ZuBL&vjQBl*D)|plRwz?GTPxaHQ
>zXV$-im>Clx_(_4ABxu95rN0tc`9D|rxlfdz-T^cJ9%2-e>qJ(L$12fx3@FO^nSO+L
>zmjB1<GSm6e2m3Mo0+r0`b`Pf>gF}sJ`-Ac~&3{(F+M%oDc>N52i%eGkzR&0%eO1_>
>z`%3kgxheK<3fxu&(|b=}E7PC$#Jqb5L5+&S!S8!29qkpx&GP?6)&Gzk6*c?!FWH5~
>ARsaA1
>
>literal 0
>HcmV?d00001
>
>diff --git a/tests/data/test-abidiff-exit/test-leaf2-v1.cc b/tests/data/test-abidiff-exit/test-leaf2-v1.cc
>new file mode 100644
>index 00000000..f308a343
>--- /dev/null
>+++ b/tests/data/test-abidiff-exit/test-leaf2-v1.cc
>@@ -0,0 +1,6 @@
>+struct ops {
>+  char (*munge)(long x, bool gunk);
>+};
>+
>+void register_ops(const ops&) {
>+}
>diff --git a/tests/data/test-abidiff-exit/test-leaf2-v1.o b/tests/data/test-abidiff-exit/test-leaf2-v1.o
>new file mode 100644
>index 0000000000000000000000000000000000000000..9db3ed5e8f997d9c8455f8361449ce516edc840a
>GIT binary patch
>literal 2952
>zcmbtV&2Jl35TECb<4v|PPE4UukXR(XqOwbzR#DO_C17Y06;M^F5<(zrZEtL=_HMMh
>z4k@Sti3+7BiiA`l^~QmZ180s%T)4qM!5wZO4rS);8|V4Oxxkb5&CG8;ciz{>Z@hW6
>zAO!Fba0QMfMge}AKIXS1y9HHPfSWt_e&4xw=db(k|NK3|Q&MHi2stl-d~!6t5bvj8
>z3t{gdXpuq`W)Gynl!v4k;6&eam!=peC<$3a$u8znfrxFth4T!tqNo)K!0E)pZ%{c)
>zQ{js)I5H)OdGTDi>R9Ea^1N6mRh~p`Ramy;Tyicu8;+=AU2|ZSb8)x2j`60Rhh4;r
>zXT@%n45o`xE<Fp5a|L5zIgcSrHZ#6>Ws$ujnPcnRgVz?xZI;{$=di?zvWAzaI{Yw#
>zoO$A(V3}zh84F&(S%`nib2!UI#KsHA!Zh>xVX(LA9n}0*OZpU_hM7D8icb{9rv(e0
>z2E(Wm!uH!Y-TL|SwTteCzv|cA)s@;tZRNs>>kYDD6mE9HC`@`S6oaJI-8@`h^VTl9
>zUdQ$Jg7kLO>Lzg%4^wX#eb9^AUKTX_VG7MS?w_osA4eUx7iI8rHrR*8yS3FM?DWzs
>zOd7Z)Zd|)S8>7_?63}sg?Rx!^`{L_ivlm2pnO<#e*(ey`arv{@g%59lIIM`JGbQ^z
>zcI7F=>7yZg`f9oIS)o2ReH9IIc;bw%xT*hqG)ajKoCM>#j2b<rxAKiXhLK>YV`C~T
>z7~9VywFRXSuQOJD40K5H*61jVt1Ors2b5$1ZsZBWf-@)31w<CKK8*J3iA{LQQmcsk
>zr?V(CPb$txI304<&65%b<3TRMSw$KDNXd(e(u(P;v#i<c`{1&M%gaT{Z3BOx<XZ-w
>zD48kO^Pa-*81@g9eAmD~QSy<ZX8qg`iZ8E4Wmh@He(e<8RXFuV?+^It?ExNWq*;>F
>zE^}FUn1SC8vH<*Mnu4E%{lIUB&0(j}i}qsFNj_*clki|n9V7u>JmW6?UKFwmrU1Vc
>z4+bIL6n+$Ep^ul8mu5lhmI@Sh8+%DG2vy<#lPsY>^_Kg|;kFbr+Sf`ZTYWr(0%7tg
>z(-hY<US~~zy2)w({a61Q`kFB*ALsvp1Z|kM^#0I;y`|X@d!%0Rb>%?&iXc8K_=w4|
>ziL)7#6n{%Cz~_oGF>SA-!o<k-NP#QtsHka6|2e7tpVXmXf2yBuPqY3uVrEQ);70{+
>zlb{XLwt>1y`TtP)xlfdz?h`ZrK4KJ;>qJ(LM=H^G3@FO^nbJKs$^Tn*m}!6MgZ-G^
>zMJ4mP-LGSp!Li1){Yv?p=D#Um{n%A<{QnGpiOi(_+3G;*{iD~3{TZiv%-j^)RtM_3
>qDwy64di6|yS`+i^Aq4MGQ8<=!GMdf*r?`{+T~+_rBhQ>M{r?5A)6WtB
>
>literal 0
>HcmV?d00001
>
>diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc
>index 45258a9f..6b91e833 100644
>--- a/tests/test-abidiff-exit.cc
>+++ b/tests/test-abidiff-exit.cc
>@@ -139,6 +139,15 @@ InOutSpec in_out_specs[] =
>     "data/test-abidiff-exit/test-leaf1-report.txt",
>     "output/test-abidiff-exit/test-leaf1-report.txt"
>   },
>+  {
>+    "data/test-abidiff-exit/test-leaf2-v0.o",
>+    "data/test-abidiff-exit/test-leaf2-v1.o",
>+    "",
>+    "--no-show-locs --leaf-changes-only",
>+    abigail::tools_utils::ABIDIFF_ABI_CHANGE,
>+    "data/test-abidiff-exit/test-leaf2-report.txt",
>+    "output/test-abidiff-exit/test-leaf2-report.txt"
>+  },
>   {
>     "data/test-abidiff-exit/test-leaf3-v0.o",
>     "data/test-abidiff-exit/test-leaf3-v1.o",
>-- 
>2.25.1.481.gfbce0eb801-goog
>
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output.
  2020-03-14 20:09   ` Matthias Maennich
@ 2020-03-16 10:51     ` Giuliano Procida
  2020-03-16 12:29       ` Matthias Maennich
  0 siblings, 1 reply; 21+ messages in thread
From: Giuliano Procida @ 2020-03-16 10:51 UTC (permalink / raw)
  To: Matthias Maennich; +Cc: libabigail, Dodji Seketeli, kernel-team

Hi Matthias.

On Sat, 14 Mar 2020 at 20:09, Matthias Maennich <maennich@google.com> wrote:
>
> On Thu, Mar 12, 2020 at 06:30:34AM +0000, Android Kernel Team wrote:
> >There is distributed responsibility for horizontal and vertical
> >whitespace in the reporting code with indent and new line control
> >information being manipulated by and passed in and out of functions.
> >Occasionally, this information is ignored or incorrect and the code
> >tends to err on the side of more rather than fewer new lines.
> >
> >The outcome is that abidiff output sometimes contains extra blank
> >lines which can be confusing.
> >
> >This patch eliminates some of the more obvious cases:
> >
> >   - after data member deletions
> >   - in enumerator change lists
> >   - after "type size hasn't changed"
> >   - before listing impacted interfaces
> >
> >The patch cleans up the reporting of data members. The code will
> >either emit indentation, a short description and a new line or do
> >nothing at all.
> >
> >The patch also removes some stray location reporting code for array
> >diffs which would have produced some oddly placed output. I could not
> >get this code to trigger as loc = decl->get_location() was never
> >present on the array decls in question.
> >
> >       * src/abg-default-reporter.cc (report): In the enum_diff
> >       override, simplify new line logic; emit just one
> >       blank line after each enum. In the array_diff override, remove
> >       stray location reporting which doesn't appear to ever trigger;
> >       fix new line logic. In the class_or_union_diff override,
> >       simplify new line logic for deleted members; pass indentation
> >       to represent_data_member.
> >       * src/abg-leaf-reporter.cc (report): In the array_diff
> >       override, remove stray location reporting which doesn't appear
> >       to ever trigger; fix new line handling. In the
> >       class_or_union_diff override, simplify new line logic for
> >       deleted members; pass indentation to represent_data_member.
> >       * src/abg-reporter-priv.cc (represent_data_member): Handle
> >       indentation; fix new line logic.
> >       (report_size_and_alignment_changes): Fix new line logic
> >       for "type size hasn't changed" message; simplify new line
> >       logic.
> >       (report_name_size_and_alignment_changes): Fix new line logic.
> >       (maybe_report_interfaces_impacted_by_diff) Remove new line
> >       prefix code and new_line_prefix argument.
> >       * src/abg-reporter-priv.h (represent_data_member): Add indent
> >       argument.
> >       (maybe_report_interfaces_impacted_by_diff) Remove
> >       new_line_prefix argument.
> >       * tests/data/test-*/*report*.txt: Remove some blank lines.
> >
> >Signed-off-by: Giuliano Procida <gprocida@google.com>
> >---
> > src/abg-default-reporter.cc                   |  43 +++-----
> > src/abg-leaf-reporter.cc                      |  27 ++---
> > src/abg-reporter-priv.cc                      |  34 +++---
> > src/abg-reporter-priv.h                       |   9 +-
> > .../test5-fn-changed-report-0.txt             |   1 -
> > .../test5-fn-changed-report-1.txt             |   1 -
> > .../test6-var-changed-report-0.txt            |   1 -
> > .../test6-var-changed-report-1.txt            |   1 -
> > .../test7-fn-changed-report-0.txt             |   1 -
> > .../test-abidiff-exit/test-leaf3-report.txt   |   1 -
> > .../test-loc-with-locs-report.txt             |   1 -
> > .../test-loc-without-locs-report.txt          |   1 -
> > .../test-abidiff/test-PR18791-report0.txt     |   2 -
> > tests/data/test-abidiff/test-enum0-report.txt |   1 -
> > tests/data/test-abidiff/test-enum1-report.txt |   1 -
> > .../data/test-abidiff/test-struct1-report.txt |   1 -
> > .../PR25058-liblttng-ctl-report-1.txt         |   5 -
> > tests/data/test-diff-dwarf/test13-report.txt  |   1 -
> > .../test-diff-dwarf/test38-union-report-0.txt |   1 -
> > .../data/test-diff-dwarf/test40-report-0.txt  |   2 -
> > .../test42-PR21296-clanggcc-report0.txt       |   1 -
> > .../test43-PR22913-report-0.txt               |   1 -
> > tests/data/test-diff-filter/test10-report.txt |   1 -
> > tests/data/test-diff-filter/test18-report.txt |   1 -
> > ...st23-redundant-fn-parm-change-report-0.txt |   2 -
> > .../test30-pr18904-rvalueref-report0.txt      |   8 --
> > .../test30-pr18904-rvalueref-report1.txt      |   8 --
> > .../test30-pr18904-rvalueref-report2.txt      |   8 --
> > .../test35-pr18754-no-added-syms-report-0.txt |   8 --
> > .../data/test-diff-filter/test36-report-0.txt |   3 -
> > .../test42-leaf-report-output-0.txt           |   1 -
> > tests/data/test-diff-filter/test7-report.txt  |   1 -
> > ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt |   2 -
> > .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |   4 -
> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-0.txt |   2 -
> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt |   2 -
> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 101 ------------------
> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt |   3 -
> > ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt |   5 -
> > ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   1 -
> > .../test10-changed-parm-c-report-0.txt        |   3 -
> > .../test-diff-suppr/test35-leaf-report-0.txt  |   1 -
> > .../test-diff-suppr/test36-leaf-report-0.txt  |   2 -
> > .../test41-enumerator-changes-report-0.txt    |   2 -
> > 44 files changed, 42 insertions(+), 264 deletions(-)
> >
> >diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
> >index 3bfdfbc4..a0b9eeea 100644
> >--- a/src/abg-default-reporter.cc
> >+++ b/src/abg-default-reporter.cc
> >@@ -130,16 +130,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >          i != sorted_deleted_enumerators.end();
> >          ++i)
> >       {
> >-        if (i != sorted_deleted_enumerators.begin())
> >-          out << "\n";
> >         out << indent
> >             << "  '"
> >             << i->get_qualified_name()
> >             << "' value '"
> >             << i->get_value()
> >             << "'";
> >+        out << "\n";
> >       }
> >-      out << "\n\n";
> >     }
> >   if (numins)
> >     {
> >@@ -151,16 +149,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >          i != sorted_inserted_enumerators.end();
> >          ++i)
> >       {
> >-        if (i != sorted_inserted_enumerators.begin())
> >-          out << "\n";
> >         out << indent
> >             << "  '"
> >             << i->get_qualified_name()
> >             << "' value '"
> >             << i->get_value()
> >             << "'";
> >+        out << "\n";
> >       }
> >-      out << "\n\n";
> >     }
> >   if (numchanges)
> >     {
> >@@ -173,8 +169,6 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >          i != sorted_changed_enumerators.end();
> >          ++i)
> >       {
> >-        if (i != sorted_changed_enumerators.begin())
> >-          out << "\n";
> >         out << indent
> >             << "  '"
> >             << i->first.get_qualified_name()
> >@@ -182,13 +176,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >             << i->first.get_value() << "' to '"
> >             << i->second.get_value() << "'";
> >         report_loc_info(second, *d.context(), out);
> >+        out << "\n";
> >       }
> >-      out << "\n\n";
> >     }
> >
> >+  out << "\n";
> >+
> >   if (d.context()->show_leaf_changes_only())
> >-    maybe_report_interfaces_impacted_by_diff(&d, out, indent,
> >-                                           /*new_line_prefix=*/false);
> >+    maybe_report_interfaces_impacted_by_diff(&d, out, indent);
> >
> >   d.reported_once(true);
> > }
> >@@ -392,7 +387,7 @@ default_reporter::report(const pointer_diff& d, ostream& out,
> >       : string("void");
> >
> >       out << indent
> >-        << "in pointed to type '" <<  repr << "'";
> >+        << "in pointed to type '" << repr << "'";
> >       report_loc_info(dif->second_subject(), *d.context(), out);
> >       out << ":\n";
> >       dif->report(out, indent + "  ");
> >@@ -673,12 +668,12 @@ default_reporter::report(const array_diff& d, ostream& out,
> >       dif->report(out, indent + "  ");
> >     }
> >
> >-  report_name_size_and_alignment_changes(d.first_array(),
> >-                                       d.second_array(),
> >-                                       d.context(),
> >-                                       out, indent,
> >-                                       /*new line=*/false);
> >-  report_loc_info(d.second_array(), *d.context(), out);
> >+  if (report_name_size_and_alignment_changes(d.first_array(),
> >+                                           d.second_array(),
> >+                                           d.context(),
> >+                                           out, indent,
> >+                                           /*new line=*/false))
>
> Though it is not required here, I would prefer braces for readability.

Agreed, I think it's sensible here. In other places, with the coding
style in use, we'd end up with:

if (emitted)
  {
    out << "\n";
  }

which is pretty verbose. The following would be fine by me:

if (emitted) out << "\n";

Lastly, short but ugly:

  emitted && (out << "\n");

> >+    out << "\n";
> > }
> >
> > /// Generates a report for an intance of @ref base_diff.
> >@@ -1014,7 +1009,6 @@ default_reporter::report(const class_or_union_diff& d,
> >         sort_data_members
> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
> >            sorted_dms);
> >-        bool emitted = false;
> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
> >              i != sorted_dms.end();
> >              ++i)
> >@@ -1024,14 +1018,8 @@ default_reporter::report(const class_or_union_diff& d,
> >             ABG_ASSERT(data_mem);
> >             if (get_member_is_static(data_mem))
> >               continue;
> >-            if (emitted)
> >-              out << "\n";
> >-            out << indent << "  ";
> >-            represent_data_member(data_mem, ctxt, out);
> >-            emitted = true;
> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >           }
> >-        if (emitted)
> >-          out << "\n";
> >       }
> >
> >       //report insertions
> >@@ -1052,8 +1040,7 @@ default_reporter::report(const class_or_union_diff& d,
> >             var_decl_sptr data_mem =
> >               dynamic_pointer_cast<var_decl>(*i);
> >             ABG_ASSERT(data_mem);
> >-            out << indent << "  ";
> >-            represent_data_member(data_mem, ctxt, out);
> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >           }
> >       }
> >
> >diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
> >index bbd51dcb..f706bd21 100644
> >--- a/src/abg-leaf-reporter.cc
> >+++ b/src/abg-leaf-reporter.cc
> >@@ -78,7 +78,7 @@ report_diffs(const reporter_base& r,
> >
> >         string n = (*i)->first_subject()->get_pretty_representation();
> >
> >-        out << indent << "'" << n ;
> >+        out << indent << "'" << n;
> >
> >         report_loc_info((*i)->first_subject(),
> >                         *(*i)->context(), out);
> >@@ -425,11 +425,12 @@ leaf_reporter::report(const array_diff& d,
> >                                                   d.second_array(),
> >                                                   "array type");
> >
> >-  report_name_size_and_alignment_changes(d.first_array(),
> >-                                       d.second_array(),
> >-                                       d.context(),
> >-                                       out, indent,
> >-                                       /*new line=*/false);
> >+  if (report_name_size_and_alignment_changes(d.first_array(),
> >+                                           d.second_array(),
> >+                                           d.context(),
> >+                                           out, indent,
> >+                                           /*new line=*/false))
>
> As above.

Agreed.

> >+    out << "\n";
> >
> >   diff_sptr dif = d.element_type_diff();
> >   if (diff_to_be_reported(dif.get()))
> >@@ -441,8 +442,6 @@ leaf_reporter::report(const array_diff& d,
> >       dif->report(out, indent + "  ");
> >     }
> >
> >-  report_loc_info(d.second_array(), *d.context(), out);
> >-
> >   maybe_report_interfaces_impacted_by_diff(&d, out, indent);
> > }
> >
> >@@ -592,7 +591,6 @@ leaf_reporter::report(const class_or_union_diff& d,
> >         sort_data_members
> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
> >            sorted_dms);
> >-        bool emitted = false;
> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
> >              i != sorted_dms.end();
> >              ++i)
> >@@ -602,14 +600,8 @@ leaf_reporter::report(const class_or_union_diff& d,
> >             ABG_ASSERT(data_mem);
> >             if (get_member_is_static(data_mem))
> >               continue;
> >-            if (emitted)
> >-              out << "\n";
> >-            out << indent << "  ";
> >-            represent_data_member(data_mem, ctxt, out);
> >-            emitted = true;
> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >           }
> >-        if (emitted)
> >-          out << "\n";
> >       }
> >
> >       //report insertions
> >@@ -630,8 +622,7 @@ leaf_reporter::report(const class_or_union_diff& d,
> >             var_decl_sptr data_mem =
> >               dynamic_pointer_cast<var_decl>(*i);
> >             ABG_ASSERT(data_mem);
> >-            out << indent << "  ";
> >-            represent_data_member(data_mem, ctxt, out);
> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >           }
> >       }
> >
> >diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc
> >index fbac85f8..948a32fc 100644
> >--- a/src/abg-reporter-priv.cc
> >+++ b/src/abg-reporter-priv.cc
> >@@ -242,16 +242,19 @@ represent(const diff_context& ctxt,
> > /// @param ctxt the current diff context.
> > ///
> > /// @param out the output stream to send the representation to
> >+///
> >+/// @param indent the indentation string to use for the change report.
> > void
> > represent_data_member(var_decl_sptr d,
> >                     const diff_context_sptr& ctxt,
> >-                    ostream& out)
> >+                    ostream& out,
> >+                    const string& indent)
>
> I would prefer out parameters after all input parameters. Since this is
> a private implementation detail, we should be good to change that
> interface.

I looked at the existing functions and copied an existing order for
consistency. out and indent belong together morally as well (writer
monad). If we switch to an indenting ostream, this issue goes away.

> > {
> >   if (!is_data_member(d)
> >       || (!get_member_is_static(d) && !get_data_member_is_laid_out(d)))
> >     return;
> >
> >-  out << "'" << d->get_pretty_representation() << "'";
> >+  out << indent << "'" << d->get_pretty_representation() << "'";
> >   if (!get_member_is_static(d))
> >     {
> >       // Do not emit offset information for data member of a union
> >@@ -262,8 +265,8 @@ represent_data_member(var_decl_sptr d,
> >                           get_data_member_offset(d),
> >                           *ctxt, out);
> >       report_loc_info(d, *ctxt, out);
> >-      out << "\n";
> >     }
> >+  out << "\n";
> > }
> >
> > /// If a given @ref var_diff node carries a data member change in
> >@@ -806,7 +809,10 @@ report_size_and_alignment_changes(type_or_decl_base_sptr  first,
> >       } // end if (fs != ss || fdc != sdc)
> >       else
> >       if (ctxt->show_relative_offset_changes())
> >-        out << indent << "type size hasn't changed\n";
> >+        {
> >+          out << indent << "type size hasn't changed";
> >+          n = true;
> >+        }
> >     }
> >   if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY)
> >       && (fa != sa))
> >@@ -819,9 +825,7 @@ report_size_and_alignment_changes(type_or_decl_base_sptr   first,
> >       n = true;
> >     }
> >
> >-  if (n)
> >-    return true;
> >-  return false;
> >+  return n;
>
> We should give 'n' a better name. Not necessarily part of this change.

Acknowledged. If we are going to review newline handling we should do
it everywhere and consistently. Ideally we should get to the point
where we don't have to pass information about newlines around (this
will likely be possible with an indenting ostream but may be doable
even without that).

> > }
> >
> > /// @param tod the type or declaration to emit loc info about
> >@@ -910,8 +914,8 @@ report_name_size_and_alignment_changes(decl_base_sptr              first,
> >       }
> >     }
> >
> >-  nl |= report_size_and_alignment_changes(first, second, ctxt,
> >-                                        out, indent, nl);
> >+  nl = report_size_and_alignment_changes(first, second, ctxt,
> >+                                         out, indent, nl);
> >   return nl;
> > }
> >
> >@@ -1366,14 +1370,10 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
> > /// @param out the output stream to report to.
> > ///
> > /// @param indent the white space string to use for indentation.
> >-///
> >-/// @param new_line_prefix if set to true, it means there is going to
> >-/// be a new line emitted before the report.
> > void
> > maybe_report_interfaces_impacted_by_diff(const diff   *d,
> >                                        ostream        &out,
> >-                                       const string   &indent,
> >-                                       bool           new_line_prefix)
> >+                                       const string   &indent)
> > {
> >   const diff_context_sptr &ctxt = d->context();
> >   const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff();
> >@@ -1395,9 +1395,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
> >   vector<type_or_decl_base_sptr> sorted_impacted_interfaces;
> >   sort_artifacts_set(*impacted_artifacts, sorted_impacted_interfaces);
> >
> >-  if (new_line_prefix)
> >-    out << '\n';
> >-
>
> I think we need to keep this newline. It separates the cause (the leaf
> node change) from the impacted interfaces (the top level nodes).

I disagree.

I think the "impacted interfaces" block should be indented w.r.t leaf
node change's introductory text or separated from the whole node
change section by an extra new line, but not both. I'd prefer the
former as this should be a parent-child relationship in the text
output tree rather than a sibling one.

Phrased another way, the text would be equally meaningful like this
(adapting tests/data/test-diff-filter/test42-leaf-report-output-0.txt;
though abitool.py's short report would need a tweak; it needs a tweak
anyway for the case of 1 impacted interface):

'struct leaf at test42-leaf-report-v0.cc:4:1' changed:
  one impacted interface:
    function void fn(C&)
 type size changed from 32 to 64 (in bits)
  1 data member insertion:
    'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1

Happy to discuss further.

> With the above addressed, feel free to add
> Reviewed-by: Matthias Maennich <maennich@google.com>
>
> Cheers,
> Matthias

Regards,
Giuliano.

> >   size_t num_impacted_interfaces = impacted_artifacts->size();
> >   if (num_impacted_interfaces == 1)
> >     out << indent << "one impacted interface:\n";
> >@@ -1424,9 +1421,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
> > /// @param out the output stream to report to.
> > ///
> > /// @param indent the white space string to use for indentation.
> >-///
> >-/// @param new_line_prefix if set to true, it means there is going to
> >-/// be a new line emitted before the report.
> > void
> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
> >                                        ostream                &out,
> >diff --git a/src/abg-reporter-priv.h b/src/abg-reporter-priv.h
> >index 7471c74f..04803f43 100644
> >--- a/src/abg-reporter-priv.h
> >+++ b/src/abg-reporter-priv.h
> >@@ -151,7 +151,8 @@ represent(const diff_context& ctxt,
> > void
> > represent_data_member(var_decl_sptr d,
> >                     const diff_context_sptr& ctxt,
> >-                    ostream& out);
> >+                    ostream& out,
> >+                    const string& indent);
> >
> > void
> > maybe_show_relative_offset_change(const var_diff_sptr &diff,
> >@@ -244,14 +245,12 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
> > void
> > maybe_report_interfaces_impacted_by_diff(const diff           *d,
> >                                        ostream                &out,
> >-                                       const string           &indent,
> >-                                       bool new_line_prefix = true);
> >+                                       const string           &indent);
> >
> > void
> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
> >                                        ostream                &out,
> >-                                       const string           &indent,
> >-                                       bool new_line_prefix = false);
> >+                                       const string           &indent);
> >
> > } // end namespace comparison
> > } // end namespace abigail
> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
> >index 96d48ccf..04676908 100644
> >--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt
> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
> >         1 data member deletion:
> >           'unsigned char S1::m1', at offset 32 (in bits)
> >
> >-
> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
> >index 3c8c4a8f..b39f650d 100644
> >--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt
> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
> >         1 data member deletion:
> >           'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1
> >
> >-
> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-0.txt b/tests/data/test-abicompat/test6-var-changed-report-0.txt
> >index 5d2bd89c..f5077879 100644
> >--- a/tests/data/test-abicompat/test6-var-changed-report-0.txt
> >+++ b/tests/data/test-abicompat/test6-var-changed-report-0.txt
> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
> >       1 data member deletion:
> >         'unsigned char S1::m1', at offset 32 (in bits)
> >
> >-
> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-1.txt b/tests/data/test-abicompat/test6-var-changed-report-1.txt
> >index 697929f0..5b78c83c 100644
> >--- a/tests/data/test-abicompat/test6-var-changed-report-1.txt
> >+++ b/tests/data/test-abicompat/test6-var-changed-report-1.txt
> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
> >       1 data member deletion:
> >         'unsigned char S1::m1', at offset 32 (in bits) at test6-var-changed-libapp-v0.h:11:1
> >
> >-
> >diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
> >index 19db76e3..6a34710d 100644
> >--- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt
> >+++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >       type name changed from 'float' to 'int'
> >       type size hasn't changed
> >
> >-
> >   [C] 'function void print(const Student)' has some indirect sub-type changes:
> >     parameter 1 of type 'const Student' has sub-type changes:
> >       in unqualified underlying type 'struct Student':
> >diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
> >index 138c4b5a..7602e761 100644
> >--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt
> >+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
> >@@ -10,7 +10,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >       type name changed from 'sto1' to 'stn1'
> >       type size hasn't changed
> >
> >-
> >   [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
> >     parameter 1 of type 'struct sto2' changed:
> >       type name changed from 'sto2' to 'stn2'
> >diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
> >index 53672744..bc37ff53 100644
> >--- a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
> >+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >       type size hasn't changed
> >
> >
> >-
> >diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
> >index 6893e3fc..56c41d79 100644
> >--- a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
> >+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >       type size hasn't changed
> >
> >
> >-
> >diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
> >index 5758077d..7e16fe32 100644
> >--- a/tests/data/test-abidiff/test-PR18791-report0.txt
> >+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
> >@@ -48,9 +48,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >                                          struct std::__detail::_List_node_base
> >                                        2 data member deletions:
> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
> >-
> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
> >-
> >                                        1 data member insertion:
> >                                          'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
> >                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
> >diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt
> >index c7c5a682..1cd7eaaf 100644
> >--- a/tests/data/test-abidiff/test-enum0-report.txt
> >+++ b/tests/data/test-abidiff/test-enum0-report.txt
> >@@ -3,7 +3,6 @@
> >     type size hasn't changed
> >     1 enumerator deletion:
> >       'E::e2' value '1'
> >-
> >     1 enumerator insertion:
> >       'E::e1' value '1'
> >
> >diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt
> >index f1198ef9..7e8acf80 100644
> >--- a/tests/data/test-abidiff/test-enum1-report.txt
> >+++ b/tests/data/test-abidiff/test-enum1-report.txt
> >@@ -3,7 +3,6 @@
> >     type size hasn't changed
> >     1 enumerator insertion:
> >       'E::e1' value '1'
> >-
> >     1 enumerator change:
> >       'E::e2' from value '1' to '2'
> >
> >diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
> >index 39b71e55..e334bf1a 100644
> >--- a/tests/data/test-abidiff/test-struct1-report.txt
> >+++ b/tests/data/test-abidiff/test-struct1-report.txt
> >@@ -6,7 +6,6 @@
> >
> >     1 data member deletion:
> >       'char s0::m1', at offset 96 (in bits)
> >-
> >     1 data member insertion:
> >       'double s0::m01', at offset 128 (in bits)
> >     2 data member changes:
> >diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
> >index 29f823ec..aab271ff 100644
> >--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
> >+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
> >@@ -100,7 +100,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
> >            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
> >            type size hasn't changed
> >-
> >            3 data member changes:
> >             name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
> >             name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
> >@@ -171,7 +170,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >           type size changed from 35008 to 35072 (in bits)
> >           1 data member deletion:
> >             'char lttng_session::padding[12]', at offset 34912 (in bits)
> >-
> >           1 data member insertion:
> >             'union {char padding[12]; void* ptr;} lttng_session::extended', at offset 34944 (in bits)
> >
> >@@ -208,7 +206,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >           1 data member deletion:
> >             'bool lttng_notification::owns_elements', at offset 128 (in bits)
> >
> >-
> >   [C] 'function lttng_notification_channel_status lttng_notification_channel_subscribe(lttng_notification_channel*, const lttng_condition*)' has some indirect sub-type changes:
> >     return type changed:
> >       enum type 'enum lttng_notification_channel_status' changed, as reported earlier
> >@@ -289,7 +286,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >                            'op_type::AST_OP_BIN_AND' value '10'
> >                            'op_type::AST_OP_BIN_OR' value '11'
> >                            'op_type::AST_OP_BIN_XOR' value '12'
> >-
> >                          5 enumerator insertions:
> >                            'op_type::AST_OP_BIT_RSHIFT' value '6'
> >                            'op_type::AST_OP_BIT_LSHIFT' value '7'
> >@@ -319,7 +315,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >                          type size hasn't changed
> >                          1 enumerator deletion:
> >                            'unary_op_type::AST_UNARY_BIN_NOT' value '4'
> >-
> >                          1 enumerator insertion:
> >                            'unary_op_type::AST_UNARY_BIT_NOT' value '4'
> >
> >diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
> >index cf29a4fd..833879c7 100644
> >--- a/tests/data/test-diff-dwarf/test13-report.txt
> >+++ b/tests/data/test-diff-dwarf/test13-report.txt
> >@@ -12,7 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >            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 (in bits)
> >diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt
> >index f7a75df7..fd9708e6 100644
> >--- a/tests/data/test-diff-dwarf/test38-union-report-0.txt
> >+++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt
> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >         type size hasn't changed
> >         1 data member deletion:
> >           'int some_union_type::m0'
> >-
> >         type changed from:
> >           union some_union_type{int m0; char m1; S m2;}
> >         to:
> >diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
> >index d0b8c52c..f0f9e1a1 100644
> >--- a/tests/data/test-diff-dwarf/test40-report-0.txt
> >+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >         type size changed from 96 to 64 (in 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)
> >@@ -24,7 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >            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':
> >diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
> >index f0a25a2e..44918baa 100644
> >--- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
> >+++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
> >@@ -19,7 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >     return type changed:
> >       type name changed from 'std::tuple<STR&&>' to 'std::tuple<STR &&>'
> >       type size hasn't changed
> >-
> >       1 base class deletion:
> >         struct std::_Tuple_impl<0ul, STR&&>
> >       1 base class insertion:
> >diff --git a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
> >index 1c0c773d..60681336 100644
> >--- a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
> >+++ b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
> >@@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >             'char m2', at offset 8 (in bits)
> >
> >
> >-
> >diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt
> >index bdc31fd0..5a505fc3 100644
> >--- a/tests/data/test-diff-filter/test10-report.txt
> >+++ b/tests/data/test-diff-filter/test10-report.txt
> >@@ -16,4 +16,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >           'unsigned int S::m', at offset 0 (in bits)
> >
> >
> >-
> >diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
> >index 0d30ef39..6ade5bdf 100644
> >--- a/tests/data/test-diff-filter/test18-report.txt
> >+++ b/tests/data/test-diff-filter/test18-report.txt
> >@@ -14,4 +14,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >
> >
> >
> >-
> >diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
> >index f847d32e..99c14329 100644
> >--- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
> >+++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
> >@@ -7,10 +7,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >     parameter 1 of type 'int' changed:
> >       type name changed from 'int' to 'float'
> >       type size hasn't changed
> >-
> >     parameter 2 of type 'int' changed:
> >       type name changed from 'int' to 'float'
> >       type size hasn't changed
> >
> >
> >-
> >diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
> >index b78215b0..5def3a08 100644
> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >           '__anonymous_enum__1::c_report_stream' value '143'
> >           '__anonymous_enum__1::c_unload_library' value '144'
> >-
> >         92 enumerator changes:
> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >            type size hasn't changed
> >-
> >            1 data member changes (1 filtered):
> >             anonymous data member at offset 0 (in bits) changed from:
> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >           type size hasn't changed
> >-
> >           1 data member change:
> >            type of 'void ()* InitTableEntry::func' changed:
> >              in pointed to type 'function type void ()':
> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >                type size changed from 2752 to 5504 (in bits)
> >                1 data member deletion:
> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
> >-
> >                7 data member insertions:
> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >                        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> >
> >                               2 data member deletions:
> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
> >-
> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
> >-
> >                               1 data member change:
> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >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 ccaf8126..3bc8f6d7 100644
> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >           '__anonymous_enum__1::c_report_stream' value '143'
> >           '__anonymous_enum__1::c_unload_library' value '144'
> >-
> >         92 enumerator changes:
> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >            type size hasn't changed
> >-
> >            1 data member changes (1 filtered):
> >             anonymous data member at offset 0 (in bits) changed from:
> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >           type size hasn't changed
> >-
> >           1 data member change:
> >            type of 'void ()* InitTableEntry::func' changed:
> >              in pointed to type 'function type void ()':
> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >                type size changed from 2752 to 5504 (in bits)
> >                1 data member deletion:
> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
> >-
> >                7 data member insertions:
> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
> >                               2 data member deletions:
> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
> >-
> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
> >-
> >                               1 data member change:
> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >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 44e78935..d91de66b 100644
> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >           '__anonymous_enum__1::c_report_stream' value '143'
> >           '__anonymous_enum__1::c_unload_library' value '144'
> >-
> >         92 enumerator changes:
> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >            type size hasn't changed
> >-
> >            1 data member changes (1 filtered):
> >             anonymous data member at offset 0 (in bytes) changed from:
> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >           type size hasn't changed
> >-
> >           1 data member change:
> >            type of 'void ()* InitTableEntry::func' changed:
> >              in pointed to type 'function type void ()':
> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >                type size changed from 0x158 to 0x2b0 (in bytes)
> >                1 data member deletion:
> >                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
> >-
> >                7 data member insertions:
> >                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
> >                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
> >                               2 data member deletions:
> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
> >-
> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
> >-
> >                               1 data member change:
> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >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 c9cb9246..306a9863 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
> >@@ -116,7 +116,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >           '__anonymous_enum__1::c_report_stream' value '143'
> >           '__anonymous_enum__1::c_unload_library' value '144'
> >-
> >         92 enumerator changes:
> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
> >@@ -220,7 +219,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >            type size hasn't changed
> >-
> >            1 data member changes (1 filtered):
> >             anonymous data member at offset 0 (in bits) changed from:
> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >@@ -235,7 +233,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >           type size hasn't changed
> >-
> >           1 data member change:
> >            type of 'void ()* InitTableEntry::func' changed:
> >              in pointed to type 'function type void ()':
> >@@ -264,7 +261,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >                type size changed from 2752 to 5504 (in bits)
> >                1 data member deletion:
> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
> >-
> >                7 data member insertions:
> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
> >@@ -286,20 +282,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >                        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> >
> >                               2 data member deletions:
> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
> >-
> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
> >-
> >                               1 data member change:
> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
> >index 08692c1e..22e614d8 100644
> >--- a/tests/data/test-diff-filter/test36-report-0.txt
> >+++ b/tests/data/test-diff-filter/test36-report-0.txt
> >@@ -13,7 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >            type size hasn't changed
> >
> >
> >-
> >   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
> >     parameter 1 of type 'S*' has sub-type changes:
> >       in pointed to type 'struct S' at test36-2-v1.c:6:1:
> >@@ -23,11 +22,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >            type name changed from 'int' to 'unsigned int'
> >            type size hasn't changed
> >
> >-
> >          type of 'int S::m1' changed:
> >            type name changed from 'int' to 'unsigned int'
> >            type size hasn't changed
> >
> >
> >
> >-
> >diff --git a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
> >index 94a0551d..d40a1374 100644
> >--- a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
> >+++ b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >   type size changed from 32 to 64 (in bits)
> >   1 data member insertion:
> >     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
> >-
> >   one impacted interface:
> >     function void fn(C&)
> >diff --git a/tests/data/test-diff-filter/test7-report.txt b/tests/data/test-diff-filter/test7-report.txt
> >index 7e3a4d47..26933033 100644
> >--- a/tests/data/test-diff-filter/test7-report.txt
> >+++ b/tests/data/test-diff-filter/test7-report.txt
> >@@ -7,7 +7,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >     return type changed:
> >       type name changed from 'return_type' to 'other_return_type'
> >       type size hasn't changed
> >-
> >       no data member change (1 filtered);
> >
> >
> >diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
> >index 05d6fcad..873a84cd 100644
> >--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
> >+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
> >@@ -54,9 +54,7 @@
> >                                                   struct std::__detail::_List_node_base
> >                                                 2 data member deletions:
> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
> >-
> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
> >-
> >                                                 1 data member insertion:
> >                                                   'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
> >                                               and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
> >diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
> >index c227fa5c..a0cc67c2 100644
> >--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
> >+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
> >@@ -10,7 +10,6 @@
> >           type size hasn't changed
> >           1 enumerator insertion:
> >             '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
> >-
> >           1 enumerator change:
> >             '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
> >
> >@@ -34,7 +33,6 @@
> >           type size hasn't changed
> >           1 enumerator insertion:
> >             '__anonymous_enum__1::ssl_kea_ecdh_psk' value '5'
> >-
> >           1 enumerator change:
> >             '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1
> >
> >@@ -52,7 +50,6 @@
> >                  type size hasn't changed
> >                  1 enumerator deletion:
> >                    '__anonymous_enum__::ssl_auth_rsa' value '1'
> >-
> >                  7 enumerator insertions:
> >                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
> >                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
> >@@ -114,7 +111,6 @@
> >                                              type size hasn't changed
> >                                              1 enumerator insertion:
> >                                                '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
> >-
> >                                              1 enumerator change:
> >                                                '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
> >
> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
> >index bf081f52..70b41ddd 100644
> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
> >@@ -25,7 +25,6 @@
> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >           type size hasn't changed
> >-
> >           7 enumerator deletions:
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >@@ -34,7 +33,6 @@
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >-
> >           9 enumerator insertions:
> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
> >index 7b86b964..0b909f90 100644
> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
> >@@ -25,7 +25,6 @@
> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >           type size hasn't changed
> >-
> >           7 enumerator deletions:
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >@@ -34,7 +33,6 @@
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >-
> >           9 enumerator insertions:
> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
> >index 3d20caf1..c247ef95 100644
> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
> >@@ -239,15 +239,10 @@
> >                                                  type size changed from 1280 to 256 (in bits)
> >                                                  5 data member deletions:
> >                                                    'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
> >-
> >                                                    'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
> >-
> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
> >-
> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
> >-
> >                                                    'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
> >-
> >                                                  1 data member change:
> >                                                   type of 'SSL* RedsStream::ssl' changed:
> >                                                     in pointed to type 'typedef SSL' at reds_stream.h:32:1:
> >@@ -257,193 +252,99 @@
> >                                                         type size changed from 5504 to 0 (in bits)
> >                                                         94 data member deletions:
> >                                                           'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
> >-
> >                                                           'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
> >-
> >                                                           'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
> >-
> >                                                           'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
> >-
> >                                                           'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
> >-
> >                                                           'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
> >-
> >                                                           'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
> >-
> >                                                           'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
> >-
> >                                                           'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
> >-
> >                                                           'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
> >-
> >                                                           'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
> >-
> >                                                           'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
> >-
> >                                                           'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
> >-
> >                                                           'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
> >-
> >                                                           'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
> >-
> >                                                           'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
> >-
> >                                                           'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
> >-
> >                                                           'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
> >-
> >                                                           'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
> >-
> >                                                           'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
> >-
> >                                                           'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
> >-
> >                                                           'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
> >-
> >                                                           'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
> >-
> >                                                           'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
> >-
> >                                                           'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
> >-
> >                                                           'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
> >-
> >                                                           'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
> >-
> >                                                           'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
> >-
> >                                                           'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
> >-
> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
> >-
> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
> >-
> >                                                           'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
> >-
> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
> >-
> >                                                           'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
> >-
> >                                                           'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
> >-
> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
> >-
> >                                                           'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
> >-
> >                                                           'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
> >-
> >                                                           'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
> >-
> >                                                           'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
> >-
> >                                                           'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
> >-
> >                                                           'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
> >-
> >                                                           'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
> >-
> >                                                           'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
> >-
> >                                                           'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
> >-
> >                                                           'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
> >-
> >                                                           'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
> >-
> >                                                           'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
> >-
> >                                                           'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
> >-
> >                                                           'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
> >-
> >                                                           'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
> >-
> >                                                           'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
> >-
> >                                                           'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
> >-
> >                                                           'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
> >-
> >                                                           'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
> >-
> >                                                           'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
> >-
> >                                                           'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
> >-
> >                                                           'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
> >-
> >                                                           'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
> >-
> >                                                           'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
> >-
> >                                                           'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
> >-
> >                                                           'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
> >-
> >                                                           'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
> >-
> >                                                           'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
> >-
> >                                                           'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
> >-
> >                                                           'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
> >-
> >                                                           'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
> >-
> >                                                           'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
> >-
> >                                                           'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
> >-
> >                                                           'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
> >-
> >                                                           'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
> >-
> >                                                           'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
> >-
> >                                                           'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
> >-
> >                                                           'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
> >-
> >                                                           'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
> >-
> >                                                           'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
> >-
> >                                                           'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
> >-
> >                                                           'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
> >-
> >                                                           'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
> >-
> >                                                           'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
> >-
> >                                                           'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
> >-
> >                                                           'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
> >-
> >                                                           'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
> >-
> >                                                           'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
> >-
> >                                                           'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
> >-
> >                                                           'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
> >-
> >                                                           'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
> >-
> >                                                           'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
> >-
> >                                                           'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
> >-
> >                                                           'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
> >-
> >                                                           'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
> >-
> >                                                           'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
> >-
> >                                                           'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
> >-
> >                                                           'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
> >-
> >                                                   and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
> >
> >
> >@@ -558,7 +459,6 @@
> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >           type size hasn't changed
> >-
> >           7 enumerator deletions:
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >@@ -567,7 +467,6 @@
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >-
> >           9 enumerator insertions:
> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
> >index 75ba0a50..11cd5682 100644
> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
> >@@ -22,7 +22,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
> >   'enum __anonymous_enum__2 at spice.h:471:1' changed:
> >     type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >     type size hasn't changed
> >-
> >     7 enumerator deletions:
> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >@@ -31,7 +30,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >-
> >     9 enumerator insertions:
> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >@@ -48,7 +46,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
> >   'typedef spice_image_compression_t at spice.h:479:1' changed:
> >     typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
> >-
> >     2 impacted interfaces:
> >       function spice_image_compression_t spice_server_get_image_compression(SpiceServer*)
> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
> >index f8e60b50..d0381ce5 100644
> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
> >@@ -60,7 +60,6 @@
> >         type size hasn't changed
> >         1 enumerator insertion:
> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
> >-
> >         1 enumerator change:
> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
> >
> >@@ -129,7 +128,6 @@
> >
> >
> >
> >-
> >                1 member function deletion:
> >                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
> >
> >@@ -138,11 +136,8 @@
> >
> >                3 data member deletions:
> >                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
> >-
> >                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
> >-
> >                  '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) (by +128 bits)
> >                 type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed:
> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
> >index 10816705..89c8efa3 100644
> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
> >@@ -31,7 +31,6 @@
> >         type size hasn't changed
> >         1 enumerator insertion:
> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
> >-
> >         1 enumerator change:
> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
> >
> >diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
> >index 8f5d0b6b..c39851d3 100644
> >--- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
> >+++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
> >@@ -7,14 +7,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >     return type changed:
> >       type name changed from 'int' to 'float'
> >       type size hasn't changed
> >-
> >     parameter 1 of type 'int' changed:
> >       type name changed from 'int' to 'float'
> >       type size hasn't changed
> >-
> >     parameter 2 of type 'int' changed:
> >       type name changed from 'int' to 'float'
> >       type size hasn't changed
> >
> >
> >-
> >diff --git a/tests/data/test-diff-suppr/test35-leaf-report-0.txt b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
> >index 411cc1b4..244455ae 100644
> >--- a/tests/data/test-diff-suppr/test35-leaf-report-0.txt
> >+++ b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >   type size changed from 32 to 64 (in bits)
> >   1 data member insertion:
> >     'char leaf::m1', at offset 32 (in bits) at test35-leaf-v1.cc:8:1
> >-
> >   one impacted interface:
> >     function void fn(C&)
> >diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
> >index b12a8a61..f286cc7b 100644
> >--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
> >+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
> >@@ -7,7 +7,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >   type size changed from 32 to 64 (in bits)
> >   1 data member insertion:
> >     'char leaf1::m1', at offset 32 (in bits) at test36-leaf-v1.cc:7:1
> >-
> >   3 impacted interfaces:
> >     function void interface1(struct_type*)
> >     function void interface2(struct_type&)
> >@@ -20,7 +19,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
> >    and size changed from 32 to 64 (in bits) (by +32 bits)
> >    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
> >-
> >   3 impacted interfaces:
> >     function void interface1(struct_type*)
> >     function void interface2(struct_type&)
> >diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
> >index 4b1681bc..d772bd1d 100644
> >--- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
> >+++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
> >@@ -8,7 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >       type size hasn't changed
> >       1 enumerator insertion:
> >         'EnumType1::ee3_inserted' value '3'
> >-
> >       1 enumerator change:
> >         'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1
> >
> >@@ -18,7 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >       type size hasn't changed
> >       1 enumerator insertion:
> >         'EnumType0::e3_inserted' value '3'
> >-
> >       1 enumerator change:
> >         'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1
> >
> >--
> >2.25.1.481.gfbce0eb801-goog
> >
> >

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output.
  2020-03-16 10:51     ` Giuliano Procida
@ 2020-03-16 12:29       ` Matthias Maennich
  2020-03-16 13:04         ` Giuliano Procida
  0 siblings, 1 reply; 21+ messages in thread
From: Matthias Maennich @ 2020-03-16 12:29 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, Dodji Seketeli, kernel-team

On Mon, Mar 16, 2020 at 10:51:22AM +0000, Giuliano Procida wrote:
>Hi Matthias.
>
>On Sat, 14 Mar 2020 at 20:09, Matthias Maennich <maennich@google.com> wrote:
>>
>> On Thu, Mar 12, 2020 at 06:30:34AM +0000, Android Kernel Team wrote:
>> >There is distributed responsibility for horizontal and vertical
>> >whitespace in the reporting code with indent and new line control
>> >information being manipulated by and passed in and out of functions.
>> >Occasionally, this information is ignored or incorrect and the code
>> >tends to err on the side of more rather than fewer new lines.
>> >
>> >The outcome is that abidiff output sometimes contains extra blank
>> >lines which can be confusing.
>> >
>> >This patch eliminates some of the more obvious cases:
>> >
>> >   - after data member deletions
>> >   - in enumerator change lists
>> >   - after "type size hasn't changed"
>> >   - before listing impacted interfaces
>> >
>> >The patch cleans up the reporting of data members. The code will
>> >either emit indentation, a short description and a new line or do
>> >nothing at all.
>> >
>> >The patch also removes some stray location reporting code for array
>> >diffs which would have produced some oddly placed output. I could not
>> >get this code to trigger as loc = decl->get_location() was never
>> >present on the array decls in question.
>> >
>> >       * src/abg-default-reporter.cc (report): In the enum_diff
>> >       override, simplify new line logic; emit just one
>> >       blank line after each enum. In the array_diff override, remove
>> >       stray location reporting which doesn't appear to ever trigger;
>> >       fix new line logic. In the class_or_union_diff override,
>> >       simplify new line logic for deleted members; pass indentation
>> >       to represent_data_member.
>> >       * src/abg-leaf-reporter.cc (report): In the array_diff
>> >       override, remove stray location reporting which doesn't appear
>> >       to ever trigger; fix new line handling. In the
>> >       class_or_union_diff override, simplify new line logic for
>> >       deleted members; pass indentation to represent_data_member.
>> >       * src/abg-reporter-priv.cc (represent_data_member): Handle
>> >       indentation; fix new line logic.
>> >       (report_size_and_alignment_changes): Fix new line logic
>> >       for "type size hasn't changed" message; simplify new line
>> >       logic.
>> >       (report_name_size_and_alignment_changes): Fix new line logic.
>> >       (maybe_report_interfaces_impacted_by_diff) Remove new line
>> >       prefix code and new_line_prefix argument.
>> >       * src/abg-reporter-priv.h (represent_data_member): Add indent
>> >       argument.
>> >       (maybe_report_interfaces_impacted_by_diff) Remove
>> >       new_line_prefix argument.
>> >       * tests/data/test-*/*report*.txt: Remove some blank lines.
>> >
>> >Signed-off-by: Giuliano Procida <gprocida@google.com>
>> >---
>> > src/abg-default-reporter.cc                   |  43 +++-----
>> > src/abg-leaf-reporter.cc                      |  27 ++---
>> > src/abg-reporter-priv.cc                      |  34 +++---
>> > src/abg-reporter-priv.h                       |   9 +-
>> > .../test5-fn-changed-report-0.txt             |   1 -
>> > .../test5-fn-changed-report-1.txt             |   1 -
>> > .../test6-var-changed-report-0.txt            |   1 -
>> > .../test6-var-changed-report-1.txt            |   1 -
>> > .../test7-fn-changed-report-0.txt             |   1 -
>> > .../test-abidiff-exit/test-leaf3-report.txt   |   1 -
>> > .../test-loc-with-locs-report.txt             |   1 -
>> > .../test-loc-without-locs-report.txt          |   1 -
>> > .../test-abidiff/test-PR18791-report0.txt     |   2 -
>> > tests/data/test-abidiff/test-enum0-report.txt |   1 -
>> > tests/data/test-abidiff/test-enum1-report.txt |   1 -
>> > .../data/test-abidiff/test-struct1-report.txt |   1 -
>> > .../PR25058-liblttng-ctl-report-1.txt         |   5 -
>> > tests/data/test-diff-dwarf/test13-report.txt  |   1 -
>> > .../test-diff-dwarf/test38-union-report-0.txt |   1 -
>> > .../data/test-diff-dwarf/test40-report-0.txt  |   2 -
>> > .../test42-PR21296-clanggcc-report0.txt       |   1 -
>> > .../test43-PR22913-report-0.txt               |   1 -
>> > tests/data/test-diff-filter/test10-report.txt |   1 -
>> > tests/data/test-diff-filter/test18-report.txt |   1 -
>> > ...st23-redundant-fn-parm-change-report-0.txt |   2 -
>> > .../test30-pr18904-rvalueref-report0.txt      |   8 --
>> > .../test30-pr18904-rvalueref-report1.txt      |   8 --
>> > .../test30-pr18904-rvalueref-report2.txt      |   8 --
>> > .../test35-pr18754-no-added-syms-report-0.txt |   8 --
>> > .../data/test-diff-filter/test36-report-0.txt |   3 -
>> > .../test42-leaf-report-output-0.txt           |   1 -
>> > tests/data/test-diff-filter/test7-report.txt  |   1 -
>> > ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt |   2 -
>> > .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |   4 -
>> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-0.txt |   2 -
>> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt |   2 -
>> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 101 ------------------
>> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt |   3 -
>> > ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt |   5 -
>> > ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   1 -
>> > .../test10-changed-parm-c-report-0.txt        |   3 -
>> > .../test-diff-suppr/test35-leaf-report-0.txt  |   1 -
>> > .../test-diff-suppr/test36-leaf-report-0.txt  |   2 -
>> > .../test41-enumerator-changes-report-0.txt    |   2 -
>> > 44 files changed, 42 insertions(+), 264 deletions(-)
>> >
>> >diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
>> >index 3bfdfbc4..a0b9eeea 100644
>> >--- a/src/abg-default-reporter.cc
>> >+++ b/src/abg-default-reporter.cc
>> >@@ -130,16 +130,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
>> >          i != sorted_deleted_enumerators.end();
>> >          ++i)
>> >       {
>> >-        if (i != sorted_deleted_enumerators.begin())
>> >-          out << "\n";
>> >         out << indent
>> >             << "  '"
>> >             << i->get_qualified_name()
>> >             << "' value '"
>> >             << i->get_value()
>> >             << "'";
>> >+        out << "\n";
>> >       }
>> >-      out << "\n\n";
>> >     }
>> >   if (numins)
>> >     {
>> >@@ -151,16 +149,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
>> >          i != sorted_inserted_enumerators.end();
>> >          ++i)
>> >       {
>> >-        if (i != sorted_inserted_enumerators.begin())
>> >-          out << "\n";
>> >         out << indent
>> >             << "  '"
>> >             << i->get_qualified_name()
>> >             << "' value '"
>> >             << i->get_value()
>> >             << "'";
>> >+        out << "\n";
>> >       }
>> >-      out << "\n\n";
>> >     }
>> >   if (numchanges)
>> >     {
>> >@@ -173,8 +169,6 @@ default_reporter::report(const enum_diff& d, ostream& out,
>> >          i != sorted_changed_enumerators.end();
>> >          ++i)
>> >       {
>> >-        if (i != sorted_changed_enumerators.begin())
>> >-          out << "\n";
>> >         out << indent
>> >             << "  '"
>> >             << i->first.get_qualified_name()
>> >@@ -182,13 +176,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
>> >             << i->first.get_value() << "' to '"
>> >             << i->second.get_value() << "'";
>> >         report_loc_info(second, *d.context(), out);
>> >+        out << "\n";
>> >       }
>> >-      out << "\n\n";
>> >     }
>> >
>> >+  out << "\n";
>> >+
>> >   if (d.context()->show_leaf_changes_only())
>> >-    maybe_report_interfaces_impacted_by_diff(&d, out, indent,
>> >-                                           /*new_line_prefix=*/false);
>> >+    maybe_report_interfaces_impacted_by_diff(&d, out, indent);
>> >
>> >   d.reported_once(true);
>> > }
>> >@@ -392,7 +387,7 @@ default_reporter::report(const pointer_diff& d, ostream& out,
>> >       : string("void");
>> >
>> >       out << indent
>> >-        << "in pointed to type '" <<  repr << "'";
>> >+        << "in pointed to type '" << repr << "'";
>> >       report_loc_info(dif->second_subject(), *d.context(), out);
>> >       out << ":\n";
>> >       dif->report(out, indent + "  ");
>> >@@ -673,12 +668,12 @@ default_reporter::report(const array_diff& d, ostream& out,
>> >       dif->report(out, indent + "  ");
>> >     }
>> >
>> >-  report_name_size_and_alignment_changes(d.first_array(),
>> >-                                       d.second_array(),
>> >-                                       d.context(),
>> >-                                       out, indent,
>> >-                                       /*new line=*/false);
>> >-  report_loc_info(d.second_array(), *d.context(), out);
>> >+  if (report_name_size_and_alignment_changes(d.first_array(),
>> >+                                           d.second_array(),
>> >+                                           d.context(),
>> >+                                           out, indent,
>> >+                                           /*new line=*/false))
>>
>> Though it is not required here, I would prefer braces for readability.
>
>Agreed, I think it's sensible here. In other places, with the coding
>style in use, we'd end up with:
>
>if (emitted)
>  {
>    out << "\n";
>  }

Let's take this one at this location.

>
>which is pretty verbose. The following would be fine by me:
>
>if (emitted) out << "\n";
>
>Lastly, short but ugly:
>
>  emitted && (out << "\n");
>
>> >+    out << "\n";
>> > }
>> >
>> > /// Generates a report for an intance of @ref base_diff.
>> >@@ -1014,7 +1009,6 @@ default_reporter::report(const class_or_union_diff& d,
>> >         sort_data_members
>> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
>> >            sorted_dms);
>> >-        bool emitted = false;
>> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
>> >              i != sorted_dms.end();
>> >              ++i)
>> >@@ -1024,14 +1018,8 @@ default_reporter::report(const class_or_union_diff& d,
>> >             ABG_ASSERT(data_mem);
>> >             if (get_member_is_static(data_mem))
>> >               continue;
>> >-            if (emitted)
>> >-              out << "\n";
>> >-            out << indent << "  ";
>> >-            represent_data_member(data_mem, ctxt, out);
>> >-            emitted = true;
>> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
>> >           }
>> >-        if (emitted)
>> >-          out << "\n";
>> >       }
>> >
>> >       //report insertions
>> >@@ -1052,8 +1040,7 @@ default_reporter::report(const class_or_union_diff& d,
>> >             var_decl_sptr data_mem =
>> >               dynamic_pointer_cast<var_decl>(*i);
>> >             ABG_ASSERT(data_mem);
>> >-            out << indent << "  ";
>> >-            represent_data_member(data_mem, ctxt, out);
>> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
>> >           }
>> >       }
>> >
>> >diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
>> >index bbd51dcb..f706bd21 100644
>> >--- a/src/abg-leaf-reporter.cc
>> >+++ b/src/abg-leaf-reporter.cc
>> >@@ -78,7 +78,7 @@ report_diffs(const reporter_base& r,
>> >
>> >         string n = (*i)->first_subject()->get_pretty_representation();
>> >
>> >-        out << indent << "'" << n ;
>> >+        out << indent << "'" << n;
>> >
>> >         report_loc_info((*i)->first_subject(),
>> >                         *(*i)->context(), out);
>> >@@ -425,11 +425,12 @@ leaf_reporter::report(const array_diff& d,
>> >                                                   d.second_array(),
>> >                                                   "array type");
>> >
>> >-  report_name_size_and_alignment_changes(d.first_array(),
>> >-                                       d.second_array(),
>> >-                                       d.context(),
>> >-                                       out, indent,
>> >-                                       /*new line=*/false);
>> >+  if (report_name_size_and_alignment_changes(d.first_array(),
>> >+                                           d.second_array(),
>> >+                                           d.context(),
>> >+                                           out, indent,
>> >+                                           /*new line=*/false))
>>
>> As above.
>
>Agreed.
>
>> >+    out << "\n";
>> >
>> >   diff_sptr dif = d.element_type_diff();
>> >   if (diff_to_be_reported(dif.get()))
>> >@@ -441,8 +442,6 @@ leaf_reporter::report(const array_diff& d,
>> >       dif->report(out, indent + "  ");
>> >     }
>> >
>> >-  report_loc_info(d.second_array(), *d.context(), out);
>> >-
>> >   maybe_report_interfaces_impacted_by_diff(&d, out, indent);
>> > }
>> >
>> >@@ -592,7 +591,6 @@ leaf_reporter::report(const class_or_union_diff& d,
>> >         sort_data_members
>> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
>> >            sorted_dms);
>> >-        bool emitted = false;
>> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
>> >              i != sorted_dms.end();
>> >              ++i)
>> >@@ -602,14 +600,8 @@ leaf_reporter::report(const class_or_union_diff& d,
>> >             ABG_ASSERT(data_mem);
>> >             if (get_member_is_static(data_mem))
>> >               continue;
>> >-            if (emitted)
>> >-              out << "\n";
>> >-            out << indent << "  ";
>> >-            represent_data_member(data_mem, ctxt, out);
>> >-            emitted = true;
>> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
>> >           }
>> >-        if (emitted)
>> >-          out << "\n";
>> >       }
>> >
>> >       //report insertions
>> >@@ -630,8 +622,7 @@ leaf_reporter::report(const class_or_union_diff& d,
>> >             var_decl_sptr data_mem =
>> >               dynamic_pointer_cast<var_decl>(*i);
>> >             ABG_ASSERT(data_mem);
>> >-            out << indent << "  ";
>> >-            represent_data_member(data_mem, ctxt, out);
>> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
>> >           }
>> >       }
>> >
>> >diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc
>> >index fbac85f8..948a32fc 100644
>> >--- a/src/abg-reporter-priv.cc
>> >+++ b/src/abg-reporter-priv.cc
>> >@@ -242,16 +242,19 @@ represent(const diff_context& ctxt,
>> > /// @param ctxt the current diff context.
>> > ///
>> > /// @param out the output stream to send the representation to
>> >+///
>> >+/// @param indent the indentation string to use for the change report.
>> > void
>> > represent_data_member(var_decl_sptr d,
>> >                     const diff_context_sptr& ctxt,
>> >-                    ostream& out)
>> >+                    ostream& out,
>> >+                    const string& indent)
>>
>> I would prefer out parameters after all input parameters. Since this is
>> a private implementation detail, we should be good to change that
>> interface.
>
>I looked at the existing functions and copied an existing order for
>consistency. out and indent belong together morally as well (writer
>monad). If we switch to an indenting ostream, this issue goes away.
>
>> > {
>> >   if (!is_data_member(d)
>> >       || (!get_member_is_static(d) && !get_data_member_is_laid_out(d)))
>> >     return;
>> >
>> >-  out << "'" << d->get_pretty_representation() << "'";
>> >+  out << indent << "'" << d->get_pretty_representation() << "'";
>> >   if (!get_member_is_static(d))
>> >     {
>> >       // Do not emit offset information for data member of a union
>> >@@ -262,8 +265,8 @@ represent_data_member(var_decl_sptr d,
>> >                           get_data_member_offset(d),
>> >                           *ctxt, out);
>> >       report_loc_info(d, *ctxt, out);
>> >-      out << "\n";
>> >     }
>> >+  out << "\n";
>> > }
>> >
>> > /// If a given @ref var_diff node carries a data member change in
>> >@@ -806,7 +809,10 @@ report_size_and_alignment_changes(type_or_decl_base_sptr  first,
>> >       } // end if (fs != ss || fdc != sdc)
>> >       else
>> >       if (ctxt->show_relative_offset_changes())
>> >-        out << indent << "type size hasn't changed\n";
>> >+        {
>> >+          out << indent << "type size hasn't changed";
>> >+          n = true;
>> >+        }
>> >     }
>> >   if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY)
>> >       && (fa != sa))
>> >@@ -819,9 +825,7 @@ report_size_and_alignment_changes(type_or_decl_base_sptr   first,
>> >       n = true;
>> >     }
>> >
>> >-  if (n)
>> >-    return true;
>> >-  return false;
>> >+  return n;
>>
>> We should give 'n' a better name. Not necessarily part of this change.
>
>Acknowledged. If we are going to review newline handling we should do
>it everywhere and consistently. Ideally we should get to the point
>where we don't have to pass information about newlines around (this
>will likely be possible with an indenting ostream but may be doable
>even without that).
>
>> > }
>> >
>> > /// @param tod the type or declaration to emit loc info about
>> >@@ -910,8 +914,8 @@ report_name_size_and_alignment_changes(decl_base_sptr              first,
>> >       }
>> >     }
>> >
>> >-  nl |= report_size_and_alignment_changes(first, second, ctxt,
>> >-                                        out, indent, nl);
>> >+  nl = report_size_and_alignment_changes(first, second, ctxt,
>> >+                                         out, indent, nl);
>> >   return nl;
>> > }
>> >
>> >@@ -1366,14 +1370,10 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
>> > /// @param out the output stream to report to.
>> > ///
>> > /// @param indent the white space string to use for indentation.
>> >-///
>> >-/// @param new_line_prefix if set to true, it means there is going to
>> >-/// be a new line emitted before the report.
>> > void
>> > maybe_report_interfaces_impacted_by_diff(const diff   *d,
>> >                                        ostream        &out,
>> >-                                       const string   &indent,
>> >-                                       bool           new_line_prefix)
>> >+                                       const string   &indent)
>> > {
>> >   const diff_context_sptr &ctxt = d->context();
>> >   const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff();
>> >@@ -1395,9 +1395,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
>> >   vector<type_or_decl_base_sptr> sorted_impacted_interfaces;
>> >   sort_artifacts_set(*impacted_artifacts, sorted_impacted_interfaces);
>> >
>> >-  if (new_line_prefix)
>> >-    out << '\n';
>> >-
>>
>> I think we need to keep this newline. It separates the cause (the leaf
>> node change) from the impacted interfaces (the top level nodes).
>
>I disagree.
>
>I think the "impacted interfaces" block should be indented w.r.t leaf
>node change's introductory text or separated from the whole node
>change section by an extra new line, but not both. I'd prefer the
>former as this should be a parent-child relationship in the text
>output tree rather than a sibling one.
>
>Phrased another way, the text would be equally meaningful like this
>(adapting tests/data/test-diff-filter/test42-leaf-report-output-0.txt;
>though abitool.py's short report would need a tweak; it needs a tweak

Just for the context: abitool.py we use in Android to monitor the kernel
ABI with libabigail :-) See
https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/

>anyway for the case of 1 impacted interface):
>
>'struct leaf at test42-leaf-report-v0.cc:4:1' changed:
>  one impacted interface:
>    function void fn(C&)
> type size changed from 32 to 64 (in bits)
>  1 data member insertion:
>    'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
>

The only concern I have and that I would like to see addressed is that
the list of impacted interfaces can be considerably long (thousands for
a central struct). That can get difficult to work with if this is
'embedded' there.
In order to better address abi differences like that, I would prefer the
current format:

# what changed
'struct leaf at test42-leaf-report-v0.cc:4:1' changed:
 type size changed from 32 to 64 (in bits)
  1 data member insertion:
    'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1

# impact
  one impacted interface:
    function void fn(C&)

There we can also truncate the list of impacted interfaces.

Cheers,
Matthias

>Happy to discuss further.
>
>> With the above addressed, feel free to add
>> Reviewed-by: Matthias Maennich <maennich@google.com>
>>
>> Cheers,
>> Matthias
>
>Regards,
>Giuliano.
>
>> >   size_t num_impacted_interfaces = impacted_artifacts->size();
>> >   if (num_impacted_interfaces == 1)
>> >     out << indent << "one impacted interface:\n";
>> >@@ -1424,9 +1421,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
>> > /// @param out the output stream to report to.
>> > ///
>> > /// @param indent the white space string to use for indentation.
>> >-///
>> >-/// @param new_line_prefix if set to true, it means there is going to
>> >-/// be a new line emitted before the report.
>> > void
>> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
>> >                                        ostream                &out,
>> >diff --git a/src/abg-reporter-priv.h b/src/abg-reporter-priv.h
>> >index 7471c74f..04803f43 100644
>> >--- a/src/abg-reporter-priv.h
>> >+++ b/src/abg-reporter-priv.h
>> >@@ -151,7 +151,8 @@ represent(const diff_context& ctxt,
>> > void
>> > represent_data_member(var_decl_sptr d,
>> >                     const diff_context_sptr& ctxt,
>> >-                    ostream& out);
>> >+                    ostream& out,
>> >+                    const string& indent);
>> >
>> > void
>> > maybe_show_relative_offset_change(const var_diff_sptr &diff,
>> >@@ -244,14 +245,12 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
>> > void
>> > maybe_report_interfaces_impacted_by_diff(const diff           *d,
>> >                                        ostream                &out,
>> >-                                       const string           &indent,
>> >-                                       bool new_line_prefix = true);
>> >+                                       const string           &indent);
>> >
>> > void
>> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
>> >                                        ostream                &out,
>> >-                                       const string           &indent,
>> >-                                       bool new_line_prefix = false);
>> >+                                       const string           &indent);
>> >
>> > } // end namespace comparison
>> > } // end namespace abigail
>> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
>> >index 96d48ccf..04676908 100644
>> >--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt
>> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
>> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
>> >         1 data member deletion:
>> >           'unsigned char S1::m1', at offset 32 (in bits)
>> >
>> >-
>> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
>> >index 3c8c4a8f..b39f650d 100644
>> >--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt
>> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
>> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
>> >         1 data member deletion:
>> >           'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1
>> >
>> >-
>> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-0.txt b/tests/data/test-abicompat/test6-var-changed-report-0.txt
>> >index 5d2bd89c..f5077879 100644
>> >--- a/tests/data/test-abicompat/test6-var-changed-report-0.txt
>> >+++ b/tests/data/test-abicompat/test6-var-changed-report-0.txt
>> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
>> >       1 data member deletion:
>> >         'unsigned char S1::m1', at offset 32 (in bits)
>> >
>> >-
>> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-1.txt b/tests/data/test-abicompat/test6-var-changed-report-1.txt
>> >index 697929f0..5b78c83c 100644
>> >--- a/tests/data/test-abicompat/test6-var-changed-report-1.txt
>> >+++ b/tests/data/test-abicompat/test6-var-changed-report-1.txt
>> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
>> >       1 data member deletion:
>> >         'unsigned char S1::m1', at offset 32 (in bits) at test6-var-changed-libapp-v0.h:11:1
>> >
>> >-
>> >diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
>> >index 19db76e3..6a34710d 100644
>> >--- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt
>> >+++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
>> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >       type name changed from 'float' to 'int'
>> >       type size hasn't changed
>> >
>> >-
>> >   [C] 'function void print(const Student)' has some indirect sub-type changes:
>> >     parameter 1 of type 'const Student' has sub-type changes:
>> >       in unqualified underlying type 'struct Student':
>> >diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
>> >index 138c4b5a..7602e761 100644
>> >--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt
>> >+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
>> >@@ -10,7 +10,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >       type name changed from 'sto1' to 'stn1'
>> >       type size hasn't changed
>> >
>> >-
>> >   [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
>> >     parameter 1 of type 'struct sto2' changed:
>> >       type name changed from 'sto2' to 'stn2'
>> >diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
>> >index 53672744..bc37ff53 100644
>> >--- a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
>> >+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
>> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >       type size hasn't changed
>> >
>> >
>> >-
>> >diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
>> >index 6893e3fc..56c41d79 100644
>> >--- a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
>> >+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
>> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >       type size hasn't changed
>> >
>> >
>> >-
>> >diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
>> >index 5758077d..7e16fe32 100644
>> >--- a/tests/data/test-abidiff/test-PR18791-report0.txt
>> >+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
>> >@@ -48,9 +48,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >                                          struct std::__detail::_List_node_base
>> >                                        2 data member deletions:
>> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>> >-
>> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>> >-
>> >                                        1 data member insertion:
>> >                                          'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>> >                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>> >diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt
>> >index c7c5a682..1cd7eaaf 100644
>> >--- a/tests/data/test-abidiff/test-enum0-report.txt
>> >+++ b/tests/data/test-abidiff/test-enum0-report.txt
>> >@@ -3,7 +3,6 @@
>> >     type size hasn't changed
>> >     1 enumerator deletion:
>> >       'E::e2' value '1'
>> >-
>> >     1 enumerator insertion:
>> >       'E::e1' value '1'
>> >
>> >diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt
>> >index f1198ef9..7e8acf80 100644
>> >--- a/tests/data/test-abidiff/test-enum1-report.txt
>> >+++ b/tests/data/test-abidiff/test-enum1-report.txt
>> >@@ -3,7 +3,6 @@
>> >     type size hasn't changed
>> >     1 enumerator insertion:
>> >       'E::e1' value '1'
>> >-
>> >     1 enumerator change:
>> >       'E::e2' from value '1' to '2'
>> >
>> >diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
>> >index 39b71e55..e334bf1a 100644
>> >--- a/tests/data/test-abidiff/test-struct1-report.txt
>> >+++ b/tests/data/test-abidiff/test-struct1-report.txt
>> >@@ -6,7 +6,6 @@
>> >
>> >     1 data member deletion:
>> >       'char s0::m1', at offset 96 (in bits)
>> >-
>> >     1 data member insertion:
>> >       'double s0::m01', at offset 128 (in bits)
>> >     2 data member changes:
>> >diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>> >index 29f823ec..aab271ff 100644
>> >--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>> >+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>> >@@ -100,7 +100,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
>> >            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
>> >            type size hasn't changed
>> >-
>> >            3 data member changes:
>> >             name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
>> >             name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
>> >@@ -171,7 +170,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >           type size changed from 35008 to 35072 (in bits)
>> >           1 data member deletion:
>> >             'char lttng_session::padding[12]', at offset 34912 (in bits)
>> >-
>> >           1 data member insertion:
>> >             'union {char padding[12]; void* ptr;} lttng_session::extended', at offset 34944 (in bits)
>> >
>> >@@ -208,7 +206,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >           1 data member deletion:
>> >             'bool lttng_notification::owns_elements', at offset 128 (in bits)
>> >
>> >-
>> >   [C] 'function lttng_notification_channel_status lttng_notification_channel_subscribe(lttng_notification_channel*, const lttng_condition*)' has some indirect sub-type changes:
>> >     return type changed:
>> >       enum type 'enum lttng_notification_channel_status' changed, as reported earlier
>> >@@ -289,7 +286,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >                            'op_type::AST_OP_BIN_AND' value '10'
>> >                            'op_type::AST_OP_BIN_OR' value '11'
>> >                            'op_type::AST_OP_BIN_XOR' value '12'
>> >-
>> >                          5 enumerator insertions:
>> >                            'op_type::AST_OP_BIT_RSHIFT' value '6'
>> >                            'op_type::AST_OP_BIT_LSHIFT' value '7'
>> >@@ -319,7 +315,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >                          type size hasn't changed
>> >                          1 enumerator deletion:
>> >                            'unary_op_type::AST_UNARY_BIN_NOT' value '4'
>> >-
>> >                          1 enumerator insertion:
>> >                            'unary_op_type::AST_UNARY_BIT_NOT' value '4'
>> >
>> >diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
>> >index cf29a4fd..833879c7 100644
>> >--- a/tests/data/test-diff-dwarf/test13-report.txt
>> >+++ b/tests/data/test-diff-dwarf/test13-report.txt
>> >@@ -12,7 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >            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 (in bits)
>> >diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt
>> >index f7a75df7..fd9708e6 100644
>> >--- a/tests/data/test-diff-dwarf/test38-union-report-0.txt
>> >+++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt
>> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >         type size hasn't changed
>> >         1 data member deletion:
>> >           'int some_union_type::m0'
>> >-
>> >         type changed from:
>> >           union some_union_type{int m0; char m1; S m2;}
>> >         to:
>> >diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
>> >index d0b8c52c..f0f9e1a1 100644
>> >--- a/tests/data/test-diff-dwarf/test40-report-0.txt
>> >+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
>> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >         type size changed from 96 to 64 (in 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)
>> >@@ -24,7 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >            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':
>> >diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
>> >index f0a25a2e..44918baa 100644
>> >--- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
>> >+++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
>> >@@ -19,7 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >     return type changed:
>> >       type name changed from 'std::tuple<STR&&>' to 'std::tuple<STR &&>'
>> >       type size hasn't changed
>> >-
>> >       1 base class deletion:
>> >         struct std::_Tuple_impl<0ul, STR&&>
>> >       1 base class insertion:
>> >diff --git a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
>> >index 1c0c773d..60681336 100644
>> >--- a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
>> >+++ b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
>> >@@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >             'char m2', at offset 8 (in bits)
>> >
>> >
>> >-
>> >diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt
>> >index bdc31fd0..5a505fc3 100644
>> >--- a/tests/data/test-diff-filter/test10-report.txt
>> >+++ b/tests/data/test-diff-filter/test10-report.txt
>> >@@ -16,4 +16,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >           'unsigned int S::m', at offset 0 (in bits)
>> >
>> >
>> >-
>> >diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
>> >index 0d30ef39..6ade5bdf 100644
>> >--- a/tests/data/test-diff-filter/test18-report.txt
>> >+++ b/tests/data/test-diff-filter/test18-report.txt
>> >@@ -14,4 +14,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >
>> >
>> >
>> >-
>> >diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
>> >index f847d32e..99c14329 100644
>> >--- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
>> >+++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
>> >@@ -7,10 +7,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >     parameter 1 of type 'int' changed:
>> >       type name changed from 'int' to 'float'
>> >       type size hasn't changed
>> >-
>> >     parameter 2 of type 'int' changed:
>> >       type name changed from 'int' to 'float'
>> >       type size hasn't changed
>> >
>> >
>> >-
>> >diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>> >index b78215b0..5def3a08 100644
>> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >           '__anonymous_enum__1::c_report_state_stream' value '142'
>> >           '__anonymous_enum__1::c_report_stream' value '143'
>> >           '__anonymous_enum__1::c_unload_library' value '144'
>> >-
>> >         92 enumerator changes:
>> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
>> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
>> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>> >            type size hasn't changed
>> >-
>> >            1 data member changes (1 filtered):
>> >             anonymous data member at offset 0 (in bits) changed from:
>> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
>> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>> >           type size hasn't changed
>> >-
>> >           1 data member change:
>> >            type of 'void ()* InitTableEntry::func' changed:
>> >              in pointed to type 'function type void ()':
>> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >                type size changed from 2752 to 5504 (in bits)
>> >                1 data member deletion:
>> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>> >-
>> >                7 data member insertions:
>> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >                        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> >
>> >                               2 data member deletions:
>> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>> >-
>> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>> >-
>> >                               1 data member change:
>> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>> >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 ccaf8126..3bc8f6d7 100644
>> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
>> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
>> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >           '__anonymous_enum__1::c_report_state_stream' value '142'
>> >           '__anonymous_enum__1::c_report_stream' value '143'
>> >           '__anonymous_enum__1::c_unload_library' value '144'
>> >-
>> >         92 enumerator changes:
>> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
>> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
>> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>> >            type size hasn't changed
>> >-
>> >            1 data member changes (1 filtered):
>> >             anonymous data member at offset 0 (in bits) changed from:
>> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
>> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>> >           type size hasn't changed
>> >-
>> >           1 data member change:
>> >            type of 'void ()* InitTableEntry::func' changed:
>> >              in pointed to type 'function type void ()':
>> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >                type size changed from 2752 to 5504 (in bits)
>> >                1 data member deletion:
>> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
>> >-
>> >                7 data member insertions:
>> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
>> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
>> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>> >                               2 data member deletions:
>> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
>> >-
>> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
>> >-
>> >                               1 data member change:
>> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>> >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 44e78935..d91de66b 100644
>> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
>> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
>> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >           '__anonymous_enum__1::c_report_state_stream' value '142'
>> >           '__anonymous_enum__1::c_report_stream' value '143'
>> >           '__anonymous_enum__1::c_unload_library' value '144'
>> >-
>> >         92 enumerator changes:
>> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
>> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
>> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>> >            type size hasn't changed
>> >-
>> >            1 data member changes (1 filtered):
>> >             anonymous data member at offset 0 (in bytes) changed from:
>> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
>> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>> >           type size hasn't changed
>> >-
>> >           1 data member change:
>> >            type of 'void ()* InitTableEntry::func' changed:
>> >              in pointed to type 'function type void ()':
>> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >                type size changed from 0x158 to 0x2b0 (in bytes)
>> >                1 data member deletion:
>> >                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
>> >-
>> >                7 data member insertions:
>> >                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
>> >                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
>> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>> >                               2 data member deletions:
>> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
>> >-
>> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
>> >-
>> >                               1 data member change:
>> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>> >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 c9cb9246..306a9863 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
>> >@@ -116,7 +116,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >           '__anonymous_enum__1::c_report_state_stream' value '142'
>> >           '__anonymous_enum__1::c_report_stream' value '143'
>> >           '__anonymous_enum__1::c_unload_library' value '144'
>> >-
>> >         92 enumerator changes:
>> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
>> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
>> >@@ -220,7 +219,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>> >            type size hasn't changed
>> >-
>> >            1 data member changes (1 filtered):
>> >             anonymous data member at offset 0 (in bits) changed from:
>> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>> >@@ -235,7 +233,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
>> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>> >           type size hasn't changed
>> >-
>> >           1 data member change:
>> >            type of 'void ()* InitTableEntry::func' changed:
>> >              in pointed to type 'function type void ()':
>> >@@ -264,7 +261,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >                type size changed from 2752 to 5504 (in bits)
>> >                1 data member deletion:
>> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>> >-
>> >                7 data member insertions:
>> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>> >@@ -286,20 +282,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >                        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> >
>> >                               2 data member deletions:
>> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>> >-
>> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>> >-
>> >                               1 data member change:
>> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>> >diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
>> >index 08692c1e..22e614d8 100644
>> >--- a/tests/data/test-diff-filter/test36-report-0.txt
>> >+++ b/tests/data/test-diff-filter/test36-report-0.txt
>> >@@ -13,7 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >            type size hasn't changed
>> >
>> >
>> >-
>> >   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
>> >     parameter 1 of type 'S*' has sub-type changes:
>> >       in pointed to type 'struct S' at test36-2-v1.c:6:1:
>> >@@ -23,11 +22,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >            type name changed from 'int' to 'unsigned int'
>> >            type size hasn't changed
>> >
>> >-
>> >          type of 'int S::m1' changed:
>> >            type name changed from 'int' to 'unsigned int'
>> >            type size hasn't changed
>> >
>> >
>> >
>> >-
>> >diff --git a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
>> >index 94a0551d..d40a1374 100644
>> >--- a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
>> >+++ b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
>> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >   type size changed from 32 to 64 (in bits)
>> >   1 data member insertion:
>> >     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
>> >-
>> >   one impacted interface:
>> >     function void fn(C&)
>> >diff --git a/tests/data/test-diff-filter/test7-report.txt b/tests/data/test-diff-filter/test7-report.txt
>> >index 7e3a4d47..26933033 100644
>> >--- a/tests/data/test-diff-filter/test7-report.txt
>> >+++ b/tests/data/test-diff-filter/test7-report.txt
>> >@@ -7,7 +7,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >     return type changed:
>> >       type name changed from 'return_type' to 'other_return_type'
>> >       type size hasn't changed
>> >-
>> >       no data member change (1 filtered);
>> >
>> >
>> >diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>> >index 05d6fcad..873a84cd 100644
>> >--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>> >+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>> >@@ -54,9 +54,7 @@
>> >                                                   struct std::__detail::_List_node_base
>> >                                                 2 data member deletions:
>> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>> >-
>> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>> >-
>> >                                                 1 data member insertion:
>> >                                                   'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>> >                                               and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>> >diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>> >index c227fa5c..a0cc67c2 100644
>> >--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>> >+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>> >@@ -10,7 +10,6 @@
>> >           type size hasn't changed
>> >           1 enumerator insertion:
>> >             '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
>> >-
>> >           1 enumerator change:
>> >             '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
>> >
>> >@@ -34,7 +33,6 @@
>> >           type size hasn't changed
>> >           1 enumerator insertion:
>> >             '__anonymous_enum__1::ssl_kea_ecdh_psk' value '5'
>> >-
>> >           1 enumerator change:
>> >             '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1
>> >
>> >@@ -52,7 +50,6 @@
>> >                  type size hasn't changed
>> >                  1 enumerator deletion:
>> >                    '__anonymous_enum__::ssl_auth_rsa' value '1'
>> >-
>> >                  7 enumerator insertions:
>> >                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
>> >                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
>> >@@ -114,7 +111,6 @@
>> >                                              type size hasn't changed
>> >                                              1 enumerator insertion:
>> >                                                '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
>> >-
>> >                                              1 enumerator change:
>> >                                                '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
>> >
>> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
>> >index bf081f52..70b41ddd 100644
>> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
>> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
>> >@@ -25,7 +25,6 @@
>> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
>> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>> >           type size hasn't changed
>> >-
>> >           7 enumerator deletions:
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>> >@@ -34,7 +33,6 @@
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>> >-
>> >           9 enumerator insertions:
>> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
>> >index 7b86b964..0b909f90 100644
>> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
>> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
>> >@@ -25,7 +25,6 @@
>> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
>> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>> >           type size hasn't changed
>> >-
>> >           7 enumerator deletions:
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>> >@@ -34,7 +33,6 @@
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>> >-
>> >           9 enumerator insertions:
>> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>> >index 3d20caf1..c247ef95 100644
>> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>> >@@ -239,15 +239,10 @@
>> >                                                  type size changed from 1280 to 256 (in bits)
>> >                                                  5 data member deletions:
>> >                                                    'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
>> >-
>> >                                                    'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
>> >-
>> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
>> >-
>> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
>> >-
>> >                                                    'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
>> >-
>> >                                                  1 data member change:
>> >                                                   type of 'SSL* RedsStream::ssl' changed:
>> >                                                     in pointed to type 'typedef SSL' at reds_stream.h:32:1:
>> >@@ -257,193 +252,99 @@
>> >                                                         type size changed from 5504 to 0 (in bits)
>> >                                                         94 data member deletions:
>> >                                                           'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
>> >-
>> >                                                           'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
>> >-
>> >                                                           'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
>> >-
>> >                                                           'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
>> >-
>> >                                                           'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
>> >-
>> >                                                           'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
>> >-
>> >                                                           'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
>> >-
>> >                                                           'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
>> >-
>> >                                                           'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
>> >-
>> >                                                           'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
>> >-
>> >                                                           'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
>> >-
>> >                                                           'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
>> >-
>> >                                                           'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
>> >-
>> >                                                           'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
>> >-
>> >                                                           'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
>> >-
>> >                                                           'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
>> >-
>> >                                                           'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
>> >-
>> >                                                           'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
>> >-
>> >                                                           'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
>> >-
>> >                                                           'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
>> >-
>> >                                                           'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
>> >-
>> >                                                           'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
>> >-
>> >                                                           'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
>> >-
>> >                                                           'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
>> >-
>> >                                                           'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
>> >-
>> >                                                           'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
>> >-
>> >                                                           'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
>> >-
>> >                                                           'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
>> >-
>> >                                                           'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
>> >-
>> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
>> >-
>> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
>> >-
>> >                                                           'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
>> >-
>> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
>> >-
>> >                                                           'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
>> >-
>> >                                                           'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
>> >-
>> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
>> >-
>> >                                                           'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
>> >-
>> >                                                           'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
>> >-
>> >                                                           'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
>> >-
>> >                                                           'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
>> >-
>> >                                                           'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
>> >-
>> >                                                           'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
>> >-
>> >                                                           'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
>> >-
>> >                                                           'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
>> >-
>> >                                                           'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
>> >-
>> >                                                           'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
>> >-
>> >                                                           'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
>> >-
>> >                                                           'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
>> >-
>> >                                                           'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
>> >-
>> >                                                           'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
>> >-
>> >                                                           'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
>> >-
>> >                                                           'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
>> >-
>> >                                                           'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
>> >-
>> >                                                           'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
>> >-
>> >                                                           'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
>> >-
>> >                                                           'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
>> >-
>> >                                                           'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
>> >-
>> >                                                           'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
>> >-
>> >                                                           'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
>> >-
>> >                                                           'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
>> >-
>> >                                                           'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
>> >-
>> >                                                           'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
>> >-
>> >                                                           'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
>> >-
>> >                                                           'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
>> >-
>> >                                                           'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
>> >-
>> >                                                           'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
>> >-
>> >                                                           'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
>> >-
>> >                                                           'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
>> >-
>> >                                                           'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
>> >-
>> >                                                           'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
>> >-
>> >                                                           'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
>> >-
>> >                                                           'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
>> >-
>> >                                                           'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
>> >-
>> >                                                           'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
>> >-
>> >                                                           'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
>> >-
>> >                                                           'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
>> >-
>> >                                                           'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
>> >-
>> >                                                           'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
>> >-
>> >                                                           'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
>> >-
>> >                                                           'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
>> >-
>> >                                                           'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
>> >-
>> >                                                           'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
>> >-
>> >                                                           'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
>> >-
>> >                                                           'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
>> >-
>> >                                                           'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
>> >-
>> >                                                           'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
>> >-
>> >                                                           'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
>> >-
>> >                                                           'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
>> >-
>> >                                                           'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
>> >-
>> >                                                           'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
>> >-
>> >                                                           'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
>> >-
>> >                                                           'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
>> >-
>> >                                                           'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
>> >-
>> >                                                           'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
>> >-
>> >                                                   and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
>> >
>> >
>> >@@ -558,7 +459,6 @@
>> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
>> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>> >           type size hasn't changed
>> >-
>> >           7 enumerator deletions:
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>> >@@ -567,7 +467,6 @@
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>> >-
>> >           9 enumerator insertions:
>> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
>> >index 75ba0a50..11cd5682 100644
>> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
>> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
>> >@@ -22,7 +22,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
>> >   'enum __anonymous_enum__2 at spice.h:471:1' changed:
>> >     type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>> >     type size hasn't changed
>> >-
>> >     7 enumerator deletions:
>> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>> >@@ -31,7 +30,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
>> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>> >-
>> >     9 enumerator insertions:
>> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>> >@@ -48,7 +46,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
>> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
>> >   'typedef spice_image_compression_t at spice.h:479:1' changed:
>> >     typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
>> >-
>> >     2 impacted interfaces:
>> >       function spice_image_compression_t spice_server_get_image_compression(SpiceServer*)
>> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
>> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>> >index f8e60b50..d0381ce5 100644
>> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>> >@@ -60,7 +60,6 @@
>> >         type size hasn't changed
>> >         1 enumerator insertion:
>> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
>> >-
>> >         1 enumerator change:
>> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
>> >
>> >@@ -129,7 +128,6 @@
>> >
>> >
>> >
>> >-
>> >                1 member function deletion:
>> >                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
>> >
>> >@@ -138,11 +136,8 @@
>> >
>> >                3 data member deletions:
>> >                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
>> >-
>> >                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
>> >-
>> >                  '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) (by +128 bits)
>> >                 type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed:
>> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>> >index 10816705..89c8efa3 100644
>> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>> >@@ -31,7 +31,6 @@
>> >         type size hasn't changed
>> >         1 enumerator insertion:
>> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
>> >-
>> >         1 enumerator change:
>> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
>> >
>> >diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
>> >index 8f5d0b6b..c39851d3 100644
>> >--- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
>> >+++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
>> >@@ -7,14 +7,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >     return type changed:
>> >       type name changed from 'int' to 'float'
>> >       type size hasn't changed
>> >-
>> >     parameter 1 of type 'int' changed:
>> >       type name changed from 'int' to 'float'
>> >       type size hasn't changed
>> >-
>> >     parameter 2 of type 'int' changed:
>> >       type name changed from 'int' to 'float'
>> >       type size hasn't changed
>> >
>> >
>> >-
>> >diff --git a/tests/data/test-diff-suppr/test35-leaf-report-0.txt b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
>> >index 411cc1b4..244455ae 100644
>> >--- a/tests/data/test-diff-suppr/test35-leaf-report-0.txt
>> >+++ b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
>> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >   type size changed from 32 to 64 (in bits)
>> >   1 data member insertion:
>> >     'char leaf::m1', at offset 32 (in bits) at test35-leaf-v1.cc:8:1
>> >-
>> >   one impacted interface:
>> >     function void fn(C&)
>> >diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>> >index b12a8a61..f286cc7b 100644
>> >--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>> >+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>> >@@ -7,7 +7,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >   type size changed from 32 to 64 (in bits)
>> >   1 data member insertion:
>> >     'char leaf1::m1', at offset 32 (in bits) at test36-leaf-v1.cc:7:1
>> >-
>> >   3 impacted interfaces:
>> >     function void interface1(struct_type*)
>> >     function void interface2(struct_type&)
>> >@@ -20,7 +19,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
>> >    and size changed from 32 to 64 (in bits) (by +32 bits)
>> >    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
>> >-
>> >   3 impacted interfaces:
>> >     function void interface1(struct_type*)
>> >     function void interface2(struct_type&)
>> >diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
>> >index 4b1681bc..d772bd1d 100644
>> >--- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
>> >+++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
>> >@@ -8,7 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >       type size hasn't changed
>> >       1 enumerator insertion:
>> >         'EnumType1::ee3_inserted' value '3'
>> >-
>> >       1 enumerator change:
>> >         'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1
>> >
>> >@@ -18,7 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >       type size hasn't changed
>> >       1 enumerator insertion:
>> >         'EnumType0::e3_inserted' value '3'
>> >-
>> >       1 enumerator change:
>> >         'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1
>> >
>> >--
>> >2.25.1.481.gfbce0eb801-goog
>> >
>> >

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output.
  2020-03-16 12:29       ` Matthias Maennich
@ 2020-03-16 13:04         ` Giuliano Procida
  2020-03-16 13:44           ` Matthias Maennich
  0 siblings, 1 reply; 21+ messages in thread
From: Giuliano Procida @ 2020-03-16 13:04 UTC (permalink / raw)
  To: Matthias Maennich; +Cc: libabigail, Dodji Seketeli, kernel-team

Hi.

On Mon, 16 Mar 2020 at 12:29, Matthias Maennich <maennich@google.com> wrote:
>
> On Mon, Mar 16, 2020 at 10:51:22AM +0000, Giuliano Procida wrote:
> >Hi Matthias.
> >
> >On Sat, 14 Mar 2020 at 20:09, Matthias Maennich <maennich@google.com> wrote:
> >>
> >> On Thu, Mar 12, 2020 at 06:30:34AM +0000, Android Kernel Team wrote:
> >> >There is distributed responsibility for horizontal and vertical
> >> >whitespace in the reporting code with indent and new line control
> >> >information being manipulated by and passed in and out of functions.
> >> >Occasionally, this information is ignored or incorrect and the code
> >> >tends to err on the side of more rather than fewer new lines.
> >> >
> >> >The outcome is that abidiff output sometimes contains extra blank
> >> >lines which can be confusing.
> >> >
> >> >This patch eliminates some of the more obvious cases:
> >> >
> >> >   - after data member deletions
> >> >   - in enumerator change lists
> >> >   - after "type size hasn't changed"
> >> >   - before listing impacted interfaces
> >> >
> >> >The patch cleans up the reporting of data members. The code will
> >> >either emit indentation, a short description and a new line or do
> >> >nothing at all.
> >> >
> >> >The patch also removes some stray location reporting code for array
> >> >diffs which would have produced some oddly placed output. I could not
> >> >get this code to trigger as loc = decl->get_location() was never
> >> >present on the array decls in question.
> >> >
> >> >       * src/abg-default-reporter.cc (report): In the enum_diff
> >> >       override, simplify new line logic; emit just one
> >> >       blank line after each enum. In the array_diff override, remove
> >> >       stray location reporting which doesn't appear to ever trigger;
> >> >       fix new line logic. In the class_or_union_diff override,
> >> >       simplify new line logic for deleted members; pass indentation
> >> >       to represent_data_member.
> >> >       * src/abg-leaf-reporter.cc (report): In the array_diff
> >> >       override, remove stray location reporting which doesn't appear
> >> >       to ever trigger; fix new line handling. In the
> >> >       class_or_union_diff override, simplify new line logic for
> >> >       deleted members; pass indentation to represent_data_member.
> >> >       * src/abg-reporter-priv.cc (represent_data_member): Handle
> >> >       indentation; fix new line logic.
> >> >       (report_size_and_alignment_changes): Fix new line logic
> >> >       for "type size hasn't changed" message; simplify new line
> >> >       logic.
> >> >       (report_name_size_and_alignment_changes): Fix new line logic.
> >> >       (maybe_report_interfaces_impacted_by_diff) Remove new line
> >> >       prefix code and new_line_prefix argument.
> >> >       * src/abg-reporter-priv.h (represent_data_member): Add indent
> >> >       argument.
> >> >       (maybe_report_interfaces_impacted_by_diff) Remove
> >> >       new_line_prefix argument.
> >> >       * tests/data/test-*/*report*.txt: Remove some blank lines.
> >> >
> >> >Signed-off-by: Giuliano Procida <gprocida@google.com>
> >> >---
> >> > src/abg-default-reporter.cc                   |  43 +++-----
> >> > src/abg-leaf-reporter.cc                      |  27 ++---
> >> > src/abg-reporter-priv.cc                      |  34 +++---
> >> > src/abg-reporter-priv.h                       |   9 +-
> >> > .../test5-fn-changed-report-0.txt             |   1 -
> >> > .../test5-fn-changed-report-1.txt             |   1 -
> >> > .../test6-var-changed-report-0.txt            |   1 -
> >> > .../test6-var-changed-report-1.txt            |   1 -
> >> > .../test7-fn-changed-report-0.txt             |   1 -
> >> > .../test-abidiff-exit/test-leaf3-report.txt   |   1 -
> >> > .../test-loc-with-locs-report.txt             |   1 -
> >> > .../test-loc-without-locs-report.txt          |   1 -
> >> > .../test-abidiff/test-PR18791-report0.txt     |   2 -
> >> > tests/data/test-abidiff/test-enum0-report.txt |   1 -
> >> > tests/data/test-abidiff/test-enum1-report.txt |   1 -
> >> > .../data/test-abidiff/test-struct1-report.txt |   1 -
> >> > .../PR25058-liblttng-ctl-report-1.txt         |   5 -
> >> > tests/data/test-diff-dwarf/test13-report.txt  |   1 -
> >> > .../test-diff-dwarf/test38-union-report-0.txt |   1 -
> >> > .../data/test-diff-dwarf/test40-report-0.txt  |   2 -
> >> > .../test42-PR21296-clanggcc-report0.txt       |   1 -
> >> > .../test43-PR22913-report-0.txt               |   1 -
> >> > tests/data/test-diff-filter/test10-report.txt |   1 -
> >> > tests/data/test-diff-filter/test18-report.txt |   1 -
> >> > ...st23-redundant-fn-parm-change-report-0.txt |   2 -
> >> > .../test30-pr18904-rvalueref-report0.txt      |   8 --
> >> > .../test30-pr18904-rvalueref-report1.txt      |   8 --
> >> > .../test30-pr18904-rvalueref-report2.txt      |   8 --
> >> > .../test35-pr18754-no-added-syms-report-0.txt |   8 --
> >> > .../data/test-diff-filter/test36-report-0.txt |   3 -
> >> > .../test42-leaf-report-output-0.txt           |   1 -
> >> > tests/data/test-diff-filter/test7-report.txt  |   1 -
> >> > ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt |   2 -
> >> > .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |   4 -
> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-0.txt |   2 -
> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt |   2 -
> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 101 ------------------
> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt |   3 -
> >> > ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt |   5 -
> >> > ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   1 -
> >> > .../test10-changed-parm-c-report-0.txt        |   3 -
> >> > .../test-diff-suppr/test35-leaf-report-0.txt  |   1 -
> >> > .../test-diff-suppr/test36-leaf-report-0.txt  |   2 -
> >> > .../test41-enumerator-changes-report-0.txt    |   2 -
> >> > 44 files changed, 42 insertions(+), 264 deletions(-)
> >> >
> >> >diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
> >> >index 3bfdfbc4..a0b9eeea 100644
> >> >--- a/src/abg-default-reporter.cc
> >> >+++ b/src/abg-default-reporter.cc
> >> >@@ -130,16 +130,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >> >          i != sorted_deleted_enumerators.end();
> >> >          ++i)
> >> >       {
> >> >-        if (i != sorted_deleted_enumerators.begin())
> >> >-          out << "\n";
> >> >         out << indent
> >> >             << "  '"
> >> >             << i->get_qualified_name()
> >> >             << "' value '"
> >> >             << i->get_value()
> >> >             << "'";
> >> >+        out << "\n";
> >> >       }
> >> >-      out << "\n\n";
> >> >     }
> >> >   if (numins)
> >> >     {
> >> >@@ -151,16 +149,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >> >          i != sorted_inserted_enumerators.end();
> >> >          ++i)
> >> >       {
> >> >-        if (i != sorted_inserted_enumerators.begin())
> >> >-          out << "\n";
> >> >         out << indent
> >> >             << "  '"
> >> >             << i->get_qualified_name()
> >> >             << "' value '"
> >> >             << i->get_value()
> >> >             << "'";
> >> >+        out << "\n";
> >> >       }
> >> >-      out << "\n\n";
> >> >     }
> >> >   if (numchanges)
> >> >     {
> >> >@@ -173,8 +169,6 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >> >          i != sorted_changed_enumerators.end();
> >> >          ++i)
> >> >       {
> >> >-        if (i != sorted_changed_enumerators.begin())
> >> >-          out << "\n";
> >> >         out << indent
> >> >             << "  '"
> >> >             << i->first.get_qualified_name()
> >> >@@ -182,13 +176,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >> >             << i->first.get_value() << "' to '"
> >> >             << i->second.get_value() << "'";
> >> >         report_loc_info(second, *d.context(), out);
> >> >+        out << "\n";
> >> >       }
> >> >-      out << "\n\n";
> >> >     }
> >> >
> >> >+  out << "\n";
> >> >+
> >> >   if (d.context()->show_leaf_changes_only())
> >> >-    maybe_report_interfaces_impacted_by_diff(&d, out, indent,
> >> >-                                           /*new_line_prefix=*/false);
> >> >+    maybe_report_interfaces_impacted_by_diff(&d, out, indent);
> >> >
> >> >   d.reported_once(true);
> >> > }
> >> >@@ -392,7 +387,7 @@ default_reporter::report(const pointer_diff& d, ostream& out,
> >> >       : string("void");
> >> >
> >> >       out << indent
> >> >-        << "in pointed to type '" <<  repr << "'";
> >> >+        << "in pointed to type '" << repr << "'";
> >> >       report_loc_info(dif->second_subject(), *d.context(), out);
> >> >       out << ":\n";
> >> >       dif->report(out, indent + "  ");
> >> >@@ -673,12 +668,12 @@ default_reporter::report(const array_diff& d, ostream& out,
> >> >       dif->report(out, indent + "  ");
> >> >     }
> >> >
> >> >-  report_name_size_and_alignment_changes(d.first_array(),
> >> >-                                       d.second_array(),
> >> >-                                       d.context(),
> >> >-                                       out, indent,
> >> >-                                       /*new line=*/false);
> >> >-  report_loc_info(d.second_array(), *d.context(), out);
> >> >+  if (report_name_size_and_alignment_changes(d.first_array(),
> >> >+                                           d.second_array(),
> >> >+                                           d.context(),
> >> >+                                           out, indent,
> >> >+                                           /*new line=*/false))
> >>
> >> Though it is not required here, I would prefer braces for readability.
> >
> >Agreed, I think it's sensible here. In other places, with the coding
> >style in use, we'd end up with:
> >
> >if (emitted)
> >  {
> >    out << "\n";
> >  }
>
> Let's take this one at this location.

I've been able to eliminate it.

> >
> >which is pretty verbose. The following would be fine by me:
> >
> >if (emitted) out << "\n";
> >
> >Lastly, short but ugly:
> >
> >  emitted && (out << "\n");
> >
> >> >+    out << "\n";
> >> > }
> >> >
> >> > /// Generates a report for an intance of @ref base_diff.
> >> >@@ -1014,7 +1009,6 @@ default_reporter::report(const class_or_union_diff& d,
> >> >         sort_data_members
> >> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
> >> >            sorted_dms);
> >> >-        bool emitted = false;
> >> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
> >> >              i != sorted_dms.end();
> >> >              ++i)
> >> >@@ -1024,14 +1018,8 @@ default_reporter::report(const class_or_union_diff& d,
> >> >             ABG_ASSERT(data_mem);
> >> >             if (get_member_is_static(data_mem))
> >> >               continue;
> >> >-            if (emitted)
> >> >-              out << "\n";
> >> >-            out << indent << "  ";
> >> >-            represent_data_member(data_mem, ctxt, out);
> >> >-            emitted = true;
> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >> >           }
> >> >-        if (emitted)
> >> >-          out << "\n";
> >> >       }
> >> >
> >> >       //report insertions
> >> >@@ -1052,8 +1040,7 @@ default_reporter::report(const class_or_union_diff& d,
> >> >             var_decl_sptr data_mem =
> >> >               dynamic_pointer_cast<var_decl>(*i);
> >> >             ABG_ASSERT(data_mem);
> >> >-            out << indent << "  ";
> >> >-            represent_data_member(data_mem, ctxt, out);
> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >> >           }
> >> >       }
> >> >
> >> >diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
> >> >index bbd51dcb..f706bd21 100644
> >> >--- a/src/abg-leaf-reporter.cc
> >> >+++ b/src/abg-leaf-reporter.cc
> >> >@@ -78,7 +78,7 @@ report_diffs(const reporter_base& r,
> >> >
> >> >         string n = (*i)->first_subject()->get_pretty_representation();
> >> >
> >> >-        out << indent << "'" << n ;
> >> >+        out << indent << "'" << n;
> >> >
> >> >         report_loc_info((*i)->first_subject(),
> >> >                         *(*i)->context(), out);
> >> >@@ -425,11 +425,12 @@ leaf_reporter::report(const array_diff& d,
> >> >                                                   d.second_array(),
> >> >                                                   "array type");
> >> >
> >> >-  report_name_size_and_alignment_changes(d.first_array(),
> >> >-                                       d.second_array(),
> >> >-                                       d.context(),
> >> >-                                       out, indent,
> >> >-                                       /*new line=*/false);
> >> >+  if (report_name_size_and_alignment_changes(d.first_array(),
> >> >+                                           d.second_array(),
> >> >+                                           d.context(),
> >> >+                                           out, indent,
> >> >+                                           /*new line=*/false))
> >>
> >> As above.
> >
> >Agreed.
> >
> >> >+    out << "\n";
> >> >
> >> >   diff_sptr dif = d.element_type_diff();
> >> >   if (diff_to_be_reported(dif.get()))
> >> >@@ -441,8 +442,6 @@ leaf_reporter::report(const array_diff& d,
> >> >       dif->report(out, indent + "  ");
> >> >     }
> >> >
> >> >-  report_loc_info(d.second_array(), *d.context(), out);
> >> >-
> >> >   maybe_report_interfaces_impacted_by_diff(&d, out, indent);
> >> > }
> >> >
> >> >@@ -592,7 +591,6 @@ leaf_reporter::report(const class_or_union_diff& d,
> >> >         sort_data_members
> >> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
> >> >            sorted_dms);
> >> >-        bool emitted = false;
> >> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
> >> >              i != sorted_dms.end();
> >> >              ++i)
> >> >@@ -602,14 +600,8 @@ leaf_reporter::report(const class_or_union_diff& d,
> >> >             ABG_ASSERT(data_mem);
> >> >             if (get_member_is_static(data_mem))
> >> >               continue;
> >> >-            if (emitted)
> >> >-              out << "\n";
> >> >-            out << indent << "  ";
> >> >-            represent_data_member(data_mem, ctxt, out);
> >> >-            emitted = true;
> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >> >           }
> >> >-        if (emitted)
> >> >-          out << "\n";
> >> >       }
> >> >
> >> >       //report insertions
> >> >@@ -630,8 +622,7 @@ leaf_reporter::report(const class_or_union_diff& d,
> >> >             var_decl_sptr data_mem =
> >> >               dynamic_pointer_cast<var_decl>(*i);
> >> >             ABG_ASSERT(data_mem);
> >> >-            out << indent << "  ";
> >> >-            represent_data_member(data_mem, ctxt, out);
> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >> >           }
> >> >       }
> >> >
> >> >diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc
> >> >index fbac85f8..948a32fc 100644
> >> >--- a/src/abg-reporter-priv.cc
> >> >+++ b/src/abg-reporter-priv.cc
> >> >@@ -242,16 +242,19 @@ represent(const diff_context& ctxt,
> >> > /// @param ctxt the current diff context.
> >> > ///
> >> > /// @param out the output stream to send the representation to
> >> >+///
> >> >+/// @param indent the indentation string to use for the change report.
> >> > void
> >> > represent_data_member(var_decl_sptr d,
> >> >                     const diff_context_sptr& ctxt,
> >> >-                    ostream& out)
> >> >+                    ostream& out,
> >> >+                    const string& indent)
> >>
> >> I would prefer out parameters after all input parameters. Since this is
> >> a private implementation detail, we should be good to change that
> >> interface.
> >
> >I looked at the existing functions and copied an existing order for
> >consistency. out and indent belong together morally as well (writer
> >monad). If we switch to an indenting ostream, this issue goes away.
> >
> >> > {
> >> >   if (!is_data_member(d)
> >> >       || (!get_member_is_static(d) && !get_data_member_is_laid_out(d)))
> >> >     return;
> >> >
> >> >-  out << "'" << d->get_pretty_representation() << "'";
> >> >+  out << indent << "'" << d->get_pretty_representation() << "'";
> >> >   if (!get_member_is_static(d))
> >> >     {
> >> >       // Do not emit offset information for data member of a union
> >> >@@ -262,8 +265,8 @@ represent_data_member(var_decl_sptr d,
> >> >                           get_data_member_offset(d),
> >> >                           *ctxt, out);
> >> >       report_loc_info(d, *ctxt, out);
> >> >-      out << "\n";
> >> >     }
> >> >+  out << "\n";
> >> > }
> >> >
> >> > /// If a given @ref var_diff node carries a data member change in
> >> >@@ -806,7 +809,10 @@ report_size_and_alignment_changes(type_or_decl_base_sptr  first,
> >> >       } // end if (fs != ss || fdc != sdc)
> >> >       else
> >> >       if (ctxt->show_relative_offset_changes())
> >> >-        out << indent << "type size hasn't changed\n";
> >> >+        {
> >> >+          out << indent << "type size hasn't changed";
> >> >+          n = true;
> >> >+        }
> >> >     }
> >> >   if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY)
> >> >       && (fa != sa))
> >> >@@ -819,9 +825,7 @@ report_size_and_alignment_changes(type_or_decl_base_sptr   first,
> >> >       n = true;
> >> >     }
> >> >
> >> >-  if (n)
> >> >-    return true;
> >> >-  return false;
> >> >+  return n;
> >>
> >> We should give 'n' a better name. Not necessarily part of this change.
> >
> >Acknowledged. If we are going to review newline handling we should do
> >it everywhere and consistently. Ideally we should get to the point
> >where we don't have to pass information about newlines around (this
> >will likely be possible with an indenting ostream but may be doable
> >even without that).
> >
> >> > }
> >> >
> >> > /// @param tod the type or declaration to emit loc info about
> >> >@@ -910,8 +914,8 @@ report_name_size_and_alignment_changes(decl_base_sptr              first,
> >> >       }
> >> >     }
> >> >
> >> >-  nl |= report_size_and_alignment_changes(first, second, ctxt,
> >> >-                                        out, indent, nl);
> >> >+  nl = report_size_and_alignment_changes(first, second, ctxt,
> >> >+                                         out, indent, nl);
> >> >   return nl;
> >> > }
> >> >
> >> >@@ -1366,14 +1370,10 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
> >> > /// @param out the output stream to report to.
> >> > ///
> >> > /// @param indent the white space string to use for indentation.
> >> >-///
> >> >-/// @param new_line_prefix if set to true, it means there is going to
> >> >-/// be a new line emitted before the report.
> >> > void
> >> > maybe_report_interfaces_impacted_by_diff(const diff   *d,
> >> >                                        ostream        &out,
> >> >-                                       const string   &indent,
> >> >-                                       bool           new_line_prefix)
> >> >+                                       const string   &indent)
> >> > {
> >> >   const diff_context_sptr &ctxt = d->context();
> >> >   const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff();
> >> >@@ -1395,9 +1395,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
> >> >   vector<type_or_decl_base_sptr> sorted_impacted_interfaces;
> >> >   sort_artifacts_set(*impacted_artifacts, sorted_impacted_interfaces);
> >> >
> >> >-  if (new_line_prefix)
> >> >-    out << '\n';
> >> >-
> >>
> >> I think we need to keep this newline. It separates the cause (the leaf
> >> node change) from the impacted interfaces (the top level nodes).
> >
> >I disagree.
> >
> >I think the "impacted interfaces" block should be indented w.r.t leaf
> >node change's introductory text or separated from the whole node
> >change section by an extra new line, but not both. I'd prefer the
> >former as this should be a parent-child relationship in the text
> >output tree rather than a sibling one.
> >
> >Phrased another way, the text would be equally meaningful like this
> >(adapting tests/data/test-diff-filter/test42-leaf-report-output-0.txt;
> >though abitool.py's short report would need a tweak; it needs a tweak
>
> Just for the context: abitool.py we use in Android to monitor the kernel
> ABI with libabigail :-) See
> https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/
>
> >anyway for the case of 1 impacted interface):
> >
> >'struct leaf at test42-leaf-report-v0.cc:4:1' changed:
> >  one impacted interface:
> >    function void fn(C&)
> > type size changed from 32 to 64 (in bits)
> >  1 data member insertion:
> >    'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
> >
>
> The only concern I have and that I would like to see addressed is that
> the list of impacted interfaces can be considerably long (thousands for
> a central struct). That can get difficult to work with if this is
> 'embedded' there.
> In order to better address abi differences like that, I would prefer the
> current format:
>
> # what changed
> 'struct leaf at test42-leaf-report-v0.cc:4:1' changed:
>  type size changed from 32 to 64 (in bits)
>   1 data member insertion:
>     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
>
> # impact
>   one impacted interface:
>     function void fn(C&)

Just to clear, I wasn't advocating moving impacted interfaces up in
any way. I was just pointing out that it is really a child of
"changed" and I suppose it would be safer to prune based on
indentation if you are going to post-process the output.

# untested Perl
$text =~ s/^( *)([^ ]* impacted interfaces?):\n(\g1 .*\n)+:/$1$2\n/g;

Anyway, the format is (previous to my patch) looks like:

foo changed:
  detailsA

  M impacted interface(s):
   detailsB

bar changed:
  detailsC

  N impacted interface(s):
    detailsD

We want to post-process to remove detailsB and detailsD. This is
equally easy so long as we just consume non-empty lines following
"impacted interfaces". My patch to remove the blank line between
detailsA/C and "impacted interfaces" doesn't change this.

> There we can also truncate the list of impacted interfaces.
>
> Cheers,
> Matthias
>
> >Happy to discuss further.
> >
> >> With the above addressed, feel free to add
> >> Reviewed-by: Matthias Maennich <maennich@google.com>
> >>
> >> Cheers,
> >> Matthias
> >
> >Regards,
> >Giuliano.
> >
> >> >   size_t num_impacted_interfaces = impacted_artifacts->size();
> >> >   if (num_impacted_interfaces == 1)
> >> >     out << indent << "one impacted interface:\n";
> >> >@@ -1424,9 +1421,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
> >> > /// @param out the output stream to report to.
> >> > ///
> >> > /// @param indent the white space string to use for indentation.
> >> >-///
> >> >-/// @param new_line_prefix if set to true, it means there is going to
> >> >-/// be a new line emitted before the report.
> >> > void
> >> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
> >> >                                        ostream                &out,
> >> >diff --git a/src/abg-reporter-priv.h b/src/abg-reporter-priv.h
> >> >index 7471c74f..04803f43 100644
> >> >--- a/src/abg-reporter-priv.h
> >> >+++ b/src/abg-reporter-priv.h
> >> >@@ -151,7 +151,8 @@ represent(const diff_context& ctxt,
> >> > void
> >> > represent_data_member(var_decl_sptr d,
> >> >                     const diff_context_sptr& ctxt,
> >> >-                    ostream& out);
> >> >+                    ostream& out,
> >> >+                    const string& indent);
> >> >
> >> > void
> >> > maybe_show_relative_offset_change(const var_diff_sptr &diff,
> >> >@@ -244,14 +245,12 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
> >> > void
> >> > maybe_report_interfaces_impacted_by_diff(const diff           *d,
> >> >                                        ostream                &out,
> >> >-                                       const string           &indent,
> >> >-                                       bool new_line_prefix = true);
> >> >+                                       const string           &indent);
> >> >
> >> > void
> >> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
> >> >                                        ostream                &out,
> >> >-                                       const string           &indent,
> >> >-                                       bool new_line_prefix = false);
> >> >+                                       const string           &indent);
> >> >
> >> > } // end namespace comparison
> >> > } // end namespace abigail
> >> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
> >> >index 96d48ccf..04676908 100644
> >> >--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt
> >> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
> >> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
> >> >         1 data member deletion:
> >> >           'unsigned char S1::m1', at offset 32 (in bits)
> >> >
> >> >-
> >> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
> >> >index 3c8c4a8f..b39f650d 100644
> >> >--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt
> >> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
> >> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
> >> >         1 data member deletion:
> >> >           'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1
> >> >
> >> >-
> >> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-0.txt b/tests/data/test-abicompat/test6-var-changed-report-0.txt
> >> >index 5d2bd89c..f5077879 100644
> >> >--- a/tests/data/test-abicompat/test6-var-changed-report-0.txt
> >> >+++ b/tests/data/test-abicompat/test6-var-changed-report-0.txt
> >> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
> >> >       1 data member deletion:
> >> >         'unsigned char S1::m1', at offset 32 (in bits)
> >> >
> >> >-
> >> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-1.txt b/tests/data/test-abicompat/test6-var-changed-report-1.txt
> >> >index 697929f0..5b78c83c 100644
> >> >--- a/tests/data/test-abicompat/test6-var-changed-report-1.txt
> >> >+++ b/tests/data/test-abicompat/test6-var-changed-report-1.txt
> >> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
> >> >       1 data member deletion:
> >> >         'unsigned char S1::m1', at offset 32 (in bits) at test6-var-changed-libapp-v0.h:11:1
> >> >
> >> >-
> >> >diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
> >> >index 19db76e3..6a34710d 100644
> >> >--- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt
> >> >+++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
> >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >       type name changed from 'float' to 'int'
> >> >       type size hasn't changed
> >> >
> >> >-
> >> >   [C] 'function void print(const Student)' has some indirect sub-type changes:
> >> >     parameter 1 of type 'const Student' has sub-type changes:
> >> >       in unqualified underlying type 'struct Student':
> >> >diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
> >> >index 138c4b5a..7602e761 100644
> >> >--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt
> >> >+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
> >> >@@ -10,7 +10,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >       type name changed from 'sto1' to 'stn1'
> >> >       type size hasn't changed
> >> >
> >> >-
> >> >   [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
> >> >     parameter 1 of type 'struct sto2' changed:
> >> >       type name changed from 'sto2' to 'stn2'
> >> >diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
> >> >index 53672744..bc37ff53 100644
> >> >--- a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
> >> >+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
> >> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >       type size hasn't changed
> >> >
> >> >
> >> >-
> >> >diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
> >> >index 6893e3fc..56c41d79 100644
> >> >--- a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
> >> >+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
> >> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >       type size hasn't changed
> >> >
> >> >
> >> >-
> >> >diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
> >> >index 5758077d..7e16fe32 100644
> >> >--- a/tests/data/test-abidiff/test-PR18791-report0.txt
> >> >+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
> >> >@@ -48,9 +48,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >                                          struct std::__detail::_List_node_base
> >> >                                        2 data member deletions:
> >> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
> >> >-
> >> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
> >> >-
> >> >                                        1 data member insertion:
> >> >                                          'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
> >> >                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
> >> >diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt
> >> >index c7c5a682..1cd7eaaf 100644
> >> >--- a/tests/data/test-abidiff/test-enum0-report.txt
> >> >+++ b/tests/data/test-abidiff/test-enum0-report.txt
> >> >@@ -3,7 +3,6 @@
> >> >     type size hasn't changed
> >> >     1 enumerator deletion:
> >> >       'E::e2' value '1'
> >> >-
> >> >     1 enumerator insertion:
> >> >       'E::e1' value '1'
> >> >
> >> >diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt
> >> >index f1198ef9..7e8acf80 100644
> >> >--- a/tests/data/test-abidiff/test-enum1-report.txt
> >> >+++ b/tests/data/test-abidiff/test-enum1-report.txt
> >> >@@ -3,7 +3,6 @@
> >> >     type size hasn't changed
> >> >     1 enumerator insertion:
> >> >       'E::e1' value '1'
> >> >-
> >> >     1 enumerator change:
> >> >       'E::e2' from value '1' to '2'
> >> >
> >> >diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
> >> >index 39b71e55..e334bf1a 100644
> >> >--- a/tests/data/test-abidiff/test-struct1-report.txt
> >> >+++ b/tests/data/test-abidiff/test-struct1-report.txt
> >> >@@ -6,7 +6,6 @@
> >> >
> >> >     1 data member deletion:
> >> >       'char s0::m1', at offset 96 (in bits)
> >> >-
> >> >     1 data member insertion:
> >> >       'double s0::m01', at offset 128 (in bits)
> >> >     2 data member changes:
> >> >diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
> >> >index 29f823ec..aab271ff 100644
> >> >--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
> >> >+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
> >> >@@ -100,7 +100,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
> >> >            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
> >> >            type size hasn't changed
> >> >-
> >> >            3 data member changes:
> >> >             name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
> >> >             name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
> >> >@@ -171,7 +170,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >           type size changed from 35008 to 35072 (in bits)
> >> >           1 data member deletion:
> >> >             'char lttng_session::padding[12]', at offset 34912 (in bits)
> >> >-
> >> >           1 data member insertion:
> >> >             'union {char padding[12]; void* ptr;} lttng_session::extended', at offset 34944 (in bits)
> >> >
> >> >@@ -208,7 +206,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >           1 data member deletion:
> >> >             'bool lttng_notification::owns_elements', at offset 128 (in bits)
> >> >
> >> >-
> >> >   [C] 'function lttng_notification_channel_status lttng_notification_channel_subscribe(lttng_notification_channel*, const lttng_condition*)' has some indirect sub-type changes:
> >> >     return type changed:
> >> >       enum type 'enum lttng_notification_channel_status' changed, as reported earlier
> >> >@@ -289,7 +286,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >                            'op_type::AST_OP_BIN_AND' value '10'
> >> >                            'op_type::AST_OP_BIN_OR' value '11'
> >> >                            'op_type::AST_OP_BIN_XOR' value '12'
> >> >-
> >> >                          5 enumerator insertions:
> >> >                            'op_type::AST_OP_BIT_RSHIFT' value '6'
> >> >                            'op_type::AST_OP_BIT_LSHIFT' value '7'
> >> >@@ -319,7 +315,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >                          type size hasn't changed
> >> >                          1 enumerator deletion:
> >> >                            'unary_op_type::AST_UNARY_BIN_NOT' value '4'
> >> >-
> >> >                          1 enumerator insertion:
> >> >                            'unary_op_type::AST_UNARY_BIT_NOT' value '4'
> >> >
> >> >diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
> >> >index cf29a4fd..833879c7 100644
> >> >--- a/tests/data/test-diff-dwarf/test13-report.txt
> >> >+++ b/tests/data/test-diff-dwarf/test13-report.txt
> >> >@@ -12,7 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >            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 (in bits)
> >> >diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt
> >> >index f7a75df7..fd9708e6 100644
> >> >--- a/tests/data/test-diff-dwarf/test38-union-report-0.txt
> >> >+++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt
> >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >         type size hasn't changed
> >> >         1 data member deletion:
> >> >           'int some_union_type::m0'
> >> >-
> >> >         type changed from:
> >> >           union some_union_type{int m0; char m1; S m2;}
> >> >         to:
> >> >diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
> >> >index d0b8c52c..f0f9e1a1 100644
> >> >--- a/tests/data/test-diff-dwarf/test40-report-0.txt
> >> >+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
> >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >         type size changed from 96 to 64 (in 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)
> >> >@@ -24,7 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >            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':
> >> >diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
> >> >index f0a25a2e..44918baa 100644
> >> >--- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
> >> >+++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
> >> >@@ -19,7 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >     return type changed:
> >> >       type name changed from 'std::tuple<STR&&>' to 'std::tuple<STR &&>'
> >> >       type size hasn't changed
> >> >-
> >> >       1 base class deletion:
> >> >         struct std::_Tuple_impl<0ul, STR&&>
> >> >       1 base class insertion:
> >> >diff --git a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
> >> >index 1c0c773d..60681336 100644
> >> >--- a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
> >> >+++ b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
> >> >@@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >             'char m2', at offset 8 (in bits)
> >> >
> >> >
> >> >-
> >> >diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt
> >> >index bdc31fd0..5a505fc3 100644
> >> >--- a/tests/data/test-diff-filter/test10-report.txt
> >> >+++ b/tests/data/test-diff-filter/test10-report.txt
> >> >@@ -16,4 +16,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >           'unsigned int S::m', at offset 0 (in bits)
> >> >
> >> >
> >> >-
> >> >diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
> >> >index 0d30ef39..6ade5bdf 100644
> >> >--- a/tests/data/test-diff-filter/test18-report.txt
> >> >+++ b/tests/data/test-diff-filter/test18-report.txt
> >> >@@ -14,4 +14,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >
> >> >
> >> >
> >> >-
> >> >diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
> >> >index f847d32e..99c14329 100644
> >> >--- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
> >> >+++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
> >> >@@ -7,10 +7,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >     parameter 1 of type 'int' changed:
> >> >       type name changed from 'int' to 'float'
> >> >       type size hasn't changed
> >> >-
> >> >     parameter 2 of type 'int' changed:
> >> >       type name changed from 'int' to 'float'
> >> >       type size hasn't changed
> >> >
> >> >
> >> >-
> >> >diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
> >> >index b78215b0..5def3a08 100644
> >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
> >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
> >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >> >           '__anonymous_enum__1::c_report_stream' value '143'
> >> >           '__anonymous_enum__1::c_unload_library' value '144'
> >> >-
> >> >         92 enumerator changes:
> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
> >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >> >            type size hasn't changed
> >> >-
> >> >            1 data member changes (1 filtered):
> >> >             anonymous data member at offset 0 (in bits) changed from:
> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >> >           type size hasn't changed
> >> >-
> >> >           1 data member change:
> >> >            type of 'void ()* InitTableEntry::func' changed:
> >> >              in pointed to type 'function type void ()':
> >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >                type size changed from 2752 to 5504 (in bits)
> >> >                1 data member deletion:
> >> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
> >> >-
> >> >                7 data member insertions:
> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
> >> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
> >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >                        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> >
> >> >                               2 data member deletions:
> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
> >> >-
> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
> >> >-
> >> >                               1 data member change:
> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >> >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 ccaf8126..3bc8f6d7 100644
> >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
> >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
> >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >> >           '__anonymous_enum__1::c_report_stream' value '143'
> >> >           '__anonymous_enum__1::c_unload_library' value '144'
> >> >-
> >> >         92 enumerator changes:
> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
> >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >> >            type size hasn't changed
> >> >-
> >> >            1 data member changes (1 filtered):
> >> >             anonymous data member at offset 0 (in bits) changed from:
> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >> >           type size hasn't changed
> >> >-
> >> >           1 data member change:
> >> >            type of 'void ()* InitTableEntry::func' changed:
> >> >              in pointed to type 'function type void ()':
> >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >                type size changed from 2752 to 5504 (in bits)
> >> >                1 data member deletion:
> >> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
> >> >-
> >> >                7 data member insertions:
> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
> >> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
> >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
> >> >                               2 data member deletions:
> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
> >> >-
> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
> >> >-
> >> >                               1 data member change:
> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >> >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 44e78935..d91de66b 100644
> >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
> >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
> >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >> >           '__anonymous_enum__1::c_report_stream' value '143'
> >> >           '__anonymous_enum__1::c_unload_library' value '144'
> >> >-
> >> >         92 enumerator changes:
> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
> >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >> >            type size hasn't changed
> >> >-
> >> >            1 data member changes (1 filtered):
> >> >             anonymous data member at offset 0 (in bytes) changed from:
> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >> >           type size hasn't changed
> >> >-
> >> >           1 data member change:
> >> >            type of 'void ()* InitTableEntry::func' changed:
> >> >              in pointed to type 'function type void ()':
> >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >                type size changed from 0x158 to 0x2b0 (in bytes)
> >> >                1 data member deletion:
> >> >                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
> >> >-
> >> >                7 data member insertions:
> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
> >> >                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
> >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
> >> >                               2 data member deletions:
> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
> >> >-
> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
> >> >-
> >> >                               1 data member change:
> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >> >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 c9cb9246..306a9863 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
> >> >@@ -116,7 +116,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >> >           '__anonymous_enum__1::c_report_stream' value '143'
> >> >           '__anonymous_enum__1::c_unload_library' value '144'
> >> >-
> >> >         92 enumerator changes:
> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
> >> >@@ -220,7 +219,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >> >            type size hasn't changed
> >> >-
> >> >            1 data member changes (1 filtered):
> >> >             anonymous data member at offset 0 (in bits) changed from:
> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >> >@@ -235,7 +233,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >> >           type size hasn't changed
> >> >-
> >> >           1 data member change:
> >> >            type of 'void ()* InitTableEntry::func' changed:
> >> >              in pointed to type 'function type void ()':
> >> >@@ -264,7 +261,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >                type size changed from 2752 to 5504 (in bits)
> >> >                1 data member deletion:
> >> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
> >> >-
> >> >                7 data member insertions:
> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
> >> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
> >> >@@ -286,20 +282,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >                        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> >
> >> >                               2 data member deletions:
> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
> >> >-
> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
> >> >-
> >> >                               1 data member change:
> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >> >diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
> >> >index 08692c1e..22e614d8 100644
> >> >--- a/tests/data/test-diff-filter/test36-report-0.txt
> >> >+++ b/tests/data/test-diff-filter/test36-report-0.txt
> >> >@@ -13,7 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >            type size hasn't changed
> >> >
> >> >
> >> >-
> >> >   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
> >> >     parameter 1 of type 'S*' has sub-type changes:
> >> >       in pointed to type 'struct S' at test36-2-v1.c:6:1:
> >> >@@ -23,11 +22,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >            type name changed from 'int' to 'unsigned int'
> >> >            type size hasn't changed
> >> >
> >> >-
> >> >          type of 'int S::m1' changed:
> >> >            type name changed from 'int' to 'unsigned int'
> >> >            type size hasn't changed
> >> >
> >> >
> >> >
> >> >-
> >> >diff --git a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
> >> >index 94a0551d..d40a1374 100644
> >> >--- a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
> >> >+++ b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
> >> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >   type size changed from 32 to 64 (in bits)
> >> >   1 data member insertion:
> >> >     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
> >> >-
> >> >   one impacted interface:
> >> >     function void fn(C&)
> >> >diff --git a/tests/data/test-diff-filter/test7-report.txt b/tests/data/test-diff-filter/test7-report.txt
> >> >index 7e3a4d47..26933033 100644
> >> >--- a/tests/data/test-diff-filter/test7-report.txt
> >> >+++ b/tests/data/test-diff-filter/test7-report.txt
> >> >@@ -7,7 +7,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >     return type changed:
> >> >       type name changed from 'return_type' to 'other_return_type'
> >> >       type size hasn't changed
> >> >-
> >> >       no data member change (1 filtered);
> >> >
> >> >
> >> >diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
> >> >index 05d6fcad..873a84cd 100644
> >> >--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
> >> >+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
> >> >@@ -54,9 +54,7 @@
> >> >                                                   struct std::__detail::_List_node_base
> >> >                                                 2 data member deletions:
> >> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
> >> >-
> >> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
> >> >-
> >> >                                                 1 data member insertion:
> >> >                                                   'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
> >> >                                               and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
> >> >diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
> >> >index c227fa5c..a0cc67c2 100644
> >> >--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
> >> >+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
> >> >@@ -10,7 +10,6 @@
> >> >           type size hasn't changed
> >> >           1 enumerator insertion:
> >> >             '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
> >> >-
> >> >           1 enumerator change:
> >> >             '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
> >> >
> >> >@@ -34,7 +33,6 @@
> >> >           type size hasn't changed
> >> >           1 enumerator insertion:
> >> >             '__anonymous_enum__1::ssl_kea_ecdh_psk' value '5'
> >> >-
> >> >           1 enumerator change:
> >> >             '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1
> >> >
> >> >@@ -52,7 +50,6 @@
> >> >                  type size hasn't changed
> >> >                  1 enumerator deletion:
> >> >                    '__anonymous_enum__::ssl_auth_rsa' value '1'
> >> >-
> >> >                  7 enumerator insertions:
> >> >                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
> >> >                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
> >> >@@ -114,7 +111,6 @@
> >> >                                              type size hasn't changed
> >> >                                              1 enumerator insertion:
> >> >                                                '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
> >> >-
> >> >                                              1 enumerator change:
> >> >                                                '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
> >> >
> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
> >> >index bf081f52..70b41ddd 100644
> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
> >> >@@ -25,7 +25,6 @@
> >> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
> >> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >> >           type size hasn't changed
> >> >-
> >> >           7 enumerator deletions:
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >> >@@ -34,7 +33,6 @@
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >> >-
> >> >           9 enumerator insertions:
> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
> >> >index 7b86b964..0b909f90 100644
> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
> >> >@@ -25,7 +25,6 @@
> >> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
> >> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >> >           type size hasn't changed
> >> >-
> >> >           7 enumerator deletions:
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >> >@@ -34,7 +33,6 @@
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >> >-
> >> >           9 enumerator insertions:
> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
> >> >index 3d20caf1..c247ef95 100644
> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
> >> >@@ -239,15 +239,10 @@
> >> >                                                  type size changed from 1280 to 256 (in bits)
> >> >                                                  5 data member deletions:
> >> >                                                    'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
> >> >-
> >> >                                                    'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
> >> >-
> >> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
> >> >-
> >> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
> >> >-
> >> >                                                    'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
> >> >-
> >> >                                                  1 data member change:
> >> >                                                   type of 'SSL* RedsStream::ssl' changed:
> >> >                                                     in pointed to type 'typedef SSL' at reds_stream.h:32:1:
> >> >@@ -257,193 +252,99 @@
> >> >                                                         type size changed from 5504 to 0 (in bits)
> >> >                                                         94 data member deletions:
> >> >                                                           'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
> >> >-
> >> >                                                           'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
> >> >-
> >> >                                                           'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
> >> >-
> >> >                                                           'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
> >> >-
> >> >                                                           'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
> >> >-
> >> >                                                           'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
> >> >-
> >> >                                                           'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
> >> >-
> >> >                                                           'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
> >> >-
> >> >                                                           'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
> >> >-
> >> >                                                           'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
> >> >-
> >> >                                                           'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
> >> >-
> >> >                                                           'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
> >> >-
> >> >                                                           'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
> >> >-
> >> >                                                           'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
> >> >-
> >> >                                                           'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
> >> >-
> >> >                                                           'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
> >> >-
> >> >                                                           'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
> >> >-
> >> >                                                           'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
> >> >-
> >> >                                                           'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
> >> >-
> >> >                                                           'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
> >> >-
> >> >                                                           'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
> >> >-
> >> >                                                           'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
> >> >-
> >> >                                                           'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
> >> >-
> >> >                                                           'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
> >> >-
> >> >                                                           'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
> >> >-
> >> >                                                           'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
> >> >-
> >> >                                                           'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
> >> >-
> >> >                                                           'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
> >> >-
> >> >                                                           'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
> >> >-
> >> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
> >> >-
> >> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
> >> >-
> >> >                                                           'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
> >> >-
> >> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
> >> >-
> >> >                                                           'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
> >> >-
> >> >                                                           'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
> >> >-
> >> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
> >> >-
> >> >                                                           'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
> >> >-
> >> >                                                           'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
> >> >-
> >> >                                                           'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
> >> >-
> >> >                                                           'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
> >> >-
> >> >                                                           'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
> >> >-
> >> >                                                           'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
> >> >-
> >> >                                                           'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
> >> >-
> >> >                                                           'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
> >> >-
> >> >                                                           'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
> >> >-
> >> >                                                           'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
> >> >-
> >> >                                                           'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
> >> >-
> >> >                                                           'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
> >> >-
> >> >                                                           'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
> >> >-
> >> >                                                           'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
> >> >-
> >> >                                                           'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
> >> >-
> >> >                                                           'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
> >> >-
> >> >                                                           'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
> >> >-
> >> >                                                           'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
> >> >-
> >> >                                                           'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
> >> >-
> >> >                                                           'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
> >> >-
> >> >                                                           'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
> >> >-
> >> >                                                           'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
> >> >-
> >> >                                                           'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
> >> >-
> >> >                                                           'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
> >> >-
> >> >                                                           'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
> >> >-
> >> >                                                           'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
> >> >-
> >> >                                                           'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
> >> >-
> >> >                                                           'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
> >> >-
> >> >                                                           'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
> >> >-
> >> >                                                           'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
> >> >-
> >> >                                                           'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
> >> >-
> >> >                                                           'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
> >> >-
> >> >                                                           'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
> >> >-
> >> >                                                           'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
> >> >-
> >> >                                                           'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
> >> >-
> >> >                                                           'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
> >> >-
> >> >                                                           'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
> >> >-
> >> >                                                           'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
> >> >-
> >> >                                                           'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
> >> >-
> >> >                                                           'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
> >> >-
> >> >                                                           'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
> >> >-
> >> >                                                           'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
> >> >-
> >> >                                                           'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
> >> >-
> >> >                                                           'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
> >> >-
> >> >                                                           'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
> >> >-
> >> >                                                           'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
> >> >-
> >> >                                                           'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
> >> >-
> >> >                                                           'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
> >> >-
> >> >                                                           'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
> >> >-
> >> >                                                           'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
> >> >-
> >> >                                                           'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
> >> >-
> >> >                                                           'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
> >> >-
> >> >                                                           'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
> >> >-
> >> >                                                           'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
> >> >-
> >> >                                                           'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
> >> >-
> >> >                                                           'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
> >> >-
> >> >                                                           'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
> >> >-
> >> >                                                           'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
> >> >-
> >> >                                                   and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
> >> >
> >> >
> >> >@@ -558,7 +459,6 @@
> >> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
> >> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >> >           type size hasn't changed
> >> >-
> >> >           7 enumerator deletions:
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >> >@@ -567,7 +467,6 @@
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >> >-
> >> >           9 enumerator insertions:
> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
> >> >index 75ba0a50..11cd5682 100644
> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
> >> >@@ -22,7 +22,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
> >> >   'enum __anonymous_enum__2 at spice.h:471:1' changed:
> >> >     type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >> >     type size hasn't changed
> >> >-
> >> >     7 enumerator deletions:
> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >> >@@ -31,7 +30,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >> >-
> >> >     9 enumerator insertions:
> >> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >> >@@ -48,7 +46,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
> >> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
> >> >   'typedef spice_image_compression_t at spice.h:479:1' changed:
> >> >     typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
> >> >-
> >> >     2 impacted interfaces:
> >> >       function spice_image_compression_t spice_server_get_image_compression(SpiceServer*)
> >> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
> >> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
> >> >index f8e60b50..d0381ce5 100644
> >> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
> >> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
> >> >@@ -60,7 +60,6 @@
> >> >         type size hasn't changed
> >> >         1 enumerator insertion:
> >> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
> >> >-
> >> >         1 enumerator change:
> >> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
> >> >
> >> >@@ -129,7 +128,6 @@
> >> >
> >> >
> >> >
> >> >-
> >> >                1 member function deletion:
> >> >                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
> >> >
> >> >@@ -138,11 +136,8 @@
> >> >
> >> >                3 data member deletions:
> >> >                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
> >> >-
> >> >                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
> >> >-
> >> >                  '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) (by +128 bits)
> >> >                 type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed:
> >> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
> >> >index 10816705..89c8efa3 100644
> >> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
> >> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
> >> >@@ -31,7 +31,6 @@
> >> >         type size hasn't changed
> >> >         1 enumerator insertion:
> >> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
> >> >-
> >> >         1 enumerator change:
> >> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
> >> >
> >> >diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
> >> >index 8f5d0b6b..c39851d3 100644
> >> >--- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
> >> >+++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
> >> >@@ -7,14 +7,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >     return type changed:
> >> >       type name changed from 'int' to 'float'
> >> >       type size hasn't changed
> >> >-
> >> >     parameter 1 of type 'int' changed:
> >> >       type name changed from 'int' to 'float'
> >> >       type size hasn't changed
> >> >-
> >> >     parameter 2 of type 'int' changed:
> >> >       type name changed from 'int' to 'float'
> >> >       type size hasn't changed
> >> >
> >> >
> >> >-
> >> >diff --git a/tests/data/test-diff-suppr/test35-leaf-report-0.txt b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
> >> >index 411cc1b4..244455ae 100644
> >> >--- a/tests/data/test-diff-suppr/test35-leaf-report-0.txt
> >> >+++ b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
> >> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >   type size changed from 32 to 64 (in bits)
> >> >   1 data member insertion:
> >> >     'char leaf::m1', at offset 32 (in bits) at test35-leaf-v1.cc:8:1
> >> >-
> >> >   one impacted interface:
> >> >     function void fn(C&)
> >> >diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
> >> >index b12a8a61..f286cc7b 100644
> >> >--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
> >> >+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
> >> >@@ -7,7 +7,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >   type size changed from 32 to 64 (in bits)
> >> >   1 data member insertion:
> >> >     'char leaf1::m1', at offset 32 (in bits) at test36-leaf-v1.cc:7:1
> >> >-
> >> >   3 impacted interfaces:
> >> >     function void interface1(struct_type*)
> >> >     function void interface2(struct_type&)
> >> >@@ -20,7 +19,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
> >> >    and size changed from 32 to 64 (in bits) (by +32 bits)
> >> >    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
> >> >-
> >> >   3 impacted interfaces:
> >> >     function void interface1(struct_type*)
> >> >     function void interface2(struct_type&)
> >> >diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
> >> >index 4b1681bc..d772bd1d 100644
> >> >--- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
> >> >+++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
> >> >@@ -8,7 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >       type size hasn't changed
> >> >       1 enumerator insertion:
> >> >         'EnumType1::ee3_inserted' value '3'
> >> >-
> >> >       1 enumerator change:
> >> >         'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1
> >> >
> >> >@@ -18,7 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >       type size hasn't changed
> >> >       1 enumerator insertion:
> >> >         'EnumType0::e3_inserted' value '3'
> >> >-
> >> >       1 enumerator change:
> >> >         'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1
> >> >
> >> >--
> >> >2.25.1.481.gfbce0eb801-goog
> >> >
> >> >

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 3/5 v2] [abidiff] Eliminate some unnecessary blank lines in diff output.
  2020-03-12  6:30 ` [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output Giuliano Procida
  2020-03-14 20:09   ` Matthias Maennich
@ 2020-03-16 13:10   ` Giuliano Procida
  2020-03-16 16:10     ` Dodji Seketeli
  1 sibling, 1 reply; 21+ messages in thread
From: Giuliano Procida @ 2020-03-16 13:10 UTC (permalink / raw)
  To: libabigail; +Cc: dodji, kernel-team, gprocida

v2: More code simplification. Tests unchanged.

There is distributed responsibility for horizontal and vertical
whitespace in the reporting code with indent and new line control
information being manipulated by and passed in and out of functions.
Occasionally, this information is ignored or incorrect and the code
tends to err on the side of more rather than fewer new lines.

The outcome is that abidiff output sometimes contains extra blank
lines which can be confusing.

This patch eliminates some of the more obvious cases:

   - after data member deletions
   - in enumerator change lists
   - after "type size hasn't changed"
   - before listing impacted interfaces

A lot of passing of "new line needed" booleans between functions has
been eliminated in the process.

The patch cleans up the reporting of data members. The code will
either emit indentation, a short description and a new line or do
nothing at all.

The patch also removes some stray location reporting code for array
diffs which would have produced some oddly placed output. I could not
get this code to trigger as loc = decl->get_location() was never
present on the array decls in question.

	* src/abg-default-reporter.cc (report): In the type_decl_diff,
	enum_diff, array_diff, class_diff, union_diff and var_diff
	overrides, simplify new line logic which no longer needs to be
	threaded through report_name_size_and_alignment_changes. In
	the distinct_diff override, simplify new line logic which no
	longer needs to be threaded through
	report_size_and_alignment_changes. In the enum_diff override,
	emit just one blank line after each enum. In the array_diff
	override, remove stray location reporting which doesn't appear
	to ever trigger; fix new line logic. In the
	class_or_union_diff override, simplify new line logic for
	deleted members; pass indentation to represent_data_member.
	* src/abg-leaf-reporter.cc (report): In the array_diff,
	class_diff, union_diff and var_diff overrides, simplify new
	line logic which no longer needs to be threaded through
	report_name_size_and_alignment_changes. In the distinct_diff
	override, simplify new line logic which no longer needs to be
	threaded through report_size_and_alignment_changes. In the
	array_diff override, remove stray location reporting which
	doesn't appear to ever trigger; fix new line handling. In the
	class_or_union_diff override, simplify new line logic for
	deleted members; pass indentation to represent_data_member.
	In the corpus_diff override, tabify source indentation.
	* src/abg-reporter-priv.cc (represent_data_member): Handle
	indentation; fix new line logic.
	(report_size_and_alignment_changes): Fix new line logic
	for "type size hasn't changed" message; simplify new line
	logic and replace local bool n with argument bool nl for
	clarity.
	(report_size_and_alignment_changes): Remove bool nl argument
	and associated code as it had become always false; take
	responsibility for emitting terminating new lines and change
	return type to void.
	(report_name_size_and_alignment_changes): Fix new line logic;
	remove bool nl argument and associated code as it had become
	always false; take responsibility for emitting terminating new
	lines and change return type to void.
	(maybe_report_interfaces_impacted_by_diff) In both overrides,
	remove new line prefix code and new_line_prefix argument.
	* src/abg-reporter-priv.h (represent_data_member): Add indent
	argument.
	(report_size_and_alignment_changes) Remove bool nl argument;
	change return type to void.
	(report_name_size_and_alignment_changes) Remove bool nl
	argument; change return type to void.
	(maybe_report_interfaces_impacted_by_diff) In both overrides,
	remove new_line_prefix argument.
	* tests/data/test-*/*report*.txt: Remove some blank lines.

Signed-off-by: Giuliano Procida <gprocida@google.com>
---
 src/abg-default-reporter.cc                   |  85 ++++-------
 src/abg-leaf-reporter.cc                      | 134 ++++++++----------
 src/abg-reporter-priv.cc                      |  73 +++-------
 src/abg-reporter-priv.h                       |  19 ++-
 .../test5-fn-changed-report-0.txt             |   1 -
 .../test5-fn-changed-report-1.txt             |   1 -
 .../test6-var-changed-report-0.txt            |   1 -
 .../test6-var-changed-report-1.txt            |   1 -
 .../test7-fn-changed-report-0.txt             |   1 -
 .../test-abidiff-exit/test-leaf3-report.txt   |   1 -
 .../test-loc-with-locs-report.txt             |   1 -
 .../test-loc-without-locs-report.txt          |   1 -
 .../test-abidiff/test-PR18791-report0.txt     |   2 -
 tests/data/test-abidiff/test-enum0-report.txt |   1 -
 tests/data/test-abidiff/test-enum1-report.txt |   1 -
 .../data/test-abidiff/test-struct1-report.txt |   1 -
 .../PR25058-liblttng-ctl-report-1.txt         |   5 -
 tests/data/test-diff-dwarf/test13-report.txt  |   1 -
 .../test-diff-dwarf/test38-union-report-0.txt |   1 -
 .../data/test-diff-dwarf/test40-report-0.txt  |   2 -
 .../test42-PR21296-clanggcc-report0.txt       |   1 -
 .../test43-PR22913-report-0.txt               |   1 -
 tests/data/test-diff-filter/test10-report.txt |   1 -
 tests/data/test-diff-filter/test18-report.txt |   1 -
 ...st23-redundant-fn-parm-change-report-0.txt |   2 -
 .../test30-pr18904-rvalueref-report0.txt      |   8 --
 .../test30-pr18904-rvalueref-report1.txt      |   8 --
 .../test30-pr18904-rvalueref-report2.txt      |   8 --
 .../test35-pr18754-no-added-syms-report-0.txt |   8 --
 .../data/test-diff-filter/test36-report-0.txt |   3 -
 .../test42-leaf-report-output-0.txt           |   1 -
 tests/data/test-diff-filter/test7-report.txt  |   1 -
 ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt |   2 -
 .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |   4 -
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-0.txt |   2 -
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt |   2 -
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 101 -------------
 ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt |   3 -
 ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt |   5 -
 ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   1 -
 .../test10-changed-parm-c-report-0.txt        |   3 -
 .../test-diff-suppr/test35-leaf-report-0.txt  |   1 -
 .../test-diff-suppr/test36-leaf-report-0.txt  |   2 -
 .../test41-enumerator-changes-report-0.txt    |   2 -
 44 files changed, 113 insertions(+), 391 deletions(-)

diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
index 3bfdfbc4..f6067909 100644
--- a/src/abg-default-reporter.cc
+++ b/src/abg-default-reporter.cc
@@ -55,33 +55,25 @@ default_reporter::report(const type_decl_diff& d,
 
   string name = f->get_pretty_representation();
 
-  bool n = report_name_size_and_alignment_changes(f, s, d.context(),
-						  out, indent,
-						  /*new line=*/false);
+  report_name_size_and_alignment_changes(f, s, d.context(),
+					 out, indent);
 
   if (f->get_visibility() != s->get_visibility())
     {
-      if (n)
-	out << "\n";
       out << indent
 	  << "visibility changed from '"
-	  << f->get_visibility() << "' to '" << s->get_visibility();
-      n = true;
+	  << f->get_visibility() << "' to '" << s->get_visibility()
+	  << "\n";
     }
 
   if (f->get_linkage_name() != s->get_linkage_name())
     {
-      if (n)
-	out << "\n";
       out << indent
 	  << "mangled name changed from '"
 	  << f->get_linkage_name() << "' to "
-	  << s->get_linkage_name();
-      n = true;
+	  << s->get_linkage_name()
+	  << "\n";
     }
-
-  if (n)
-    out << "\n";
 }
 
 /// Report the differences between the two enums.
@@ -106,10 +98,8 @@ default_reporter::report(const enum_diff& d, ostream& out,
 
   enum_type_decl_sptr first = d.first_enum(), second = d.second_enum();
 
-  if (report_name_size_and_alignment_changes(first, second, d.context(),
-					     out, indent,
-					     /*start_with_num_line=*/false))
-    out << "\n";
+  report_name_size_and_alignment_changes(first, second, d.context(),
+					 out, indent);
   maybe_report_diff_for_member(first, second, d.context(), out, indent);
 
   //underlying type
@@ -130,16 +120,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
 	   i != sorted_deleted_enumerators.end();
 	   ++i)
 	{
-	  if (i != sorted_deleted_enumerators.begin())
-	    out << "\n";
 	  out << indent
 	      << "  '"
 	      << i->get_qualified_name()
 	      << "' value '"
 	      << i->get_value()
 	      << "'";
+	  out << "\n";
 	}
-      out << "\n\n";
     }
   if (numins)
     {
@@ -151,16 +139,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
 	   i != sorted_inserted_enumerators.end();
 	   ++i)
 	{
-	  if (i != sorted_inserted_enumerators.begin())
-	    out << "\n";
 	  out << indent
 	      << "  '"
 	      << i->get_qualified_name()
 	      << "' value '"
 	      << i->get_value()
 	      << "'";
+	  out << "\n";
 	}
-      out << "\n\n";
     }
   if (numchanges)
     {
@@ -173,8 +159,6 @@ default_reporter::report(const enum_diff& d, ostream& out,
 	   i != sorted_changed_enumerators.end();
 	   ++i)
 	{
-	  if (i != sorted_changed_enumerators.begin())
-	    out << "\n";
 	  out << indent
 	      << "  '"
 	      << i->first.get_qualified_name()
@@ -182,13 +166,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
 	      << i->first.get_value() << "' to '"
 	      << i->second.get_value() << "'";
 	  report_loc_info(second, *d.context(), out);
+	  out << "\n";
 	}
-      out << "\n\n";
     }
 
+  out << "\n";
+
   if (d.context()->show_leaf_changes_only())
-    maybe_report_interfaces_impacted_by_diff(&d, out, indent,
-					     /*new_line_prefix=*/false);
+    maybe_report_interfaces_impacted_by_diff(&d, out, indent);
 
   d.reported_once(true);
 }
@@ -392,7 +377,7 @@ default_reporter::report(const pointer_diff& d, ostream& out,
 	: string("void");
 
       out << indent
-	  << "in pointed to type '" <<  repr << "'";
+	  << "in pointed to type '" << repr << "'";
       report_loc_info(dif->second_subject(), *d.context(), out);
       out << ":\n";
       dif->report(out, indent + "  ");
@@ -676,9 +661,7 @@ default_reporter::report(const array_diff& d, ostream& out,
   report_name_size_and_alignment_changes(d.first_array(),
 					 d.second_array(),
 					 d.context(),
-					 out, indent,
-					 /*new line=*/false);
-  report_loc_info(d.second_array(), *d.context(), out);
+					 out, indent);
 }
 
 /// Generates a report for an intance of @ref base_diff.
@@ -1014,7 +997,6 @@ default_reporter::report(const class_or_union_diff& d,
 	  sort_data_members
 	    (d.class_or_union_diff::get_priv()->deleted_data_members_,
 	     sorted_dms);
-	  bool emitted = false;
 	  for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
 	       i != sorted_dms.end();
 	       ++i)
@@ -1024,14 +1006,8 @@ default_reporter::report(const class_or_union_diff& d,
 	      ABG_ASSERT(data_mem);
 	      if (get_member_is_static(data_mem))
 		continue;
-	      if (emitted)
-		out << "\n";
-	      out << indent << "  ";
-	      represent_data_member(data_mem, ctxt, out);
-	      emitted = true;
+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
 	    }
-	  if (emitted)
-	    out << "\n";
 	}
 
       //report insertions
@@ -1052,8 +1028,7 @@ default_reporter::report(const class_or_union_diff& d,
 	      var_decl_sptr data_mem =
 		dynamic_pointer_cast<var_decl>(*i);
 	      ABG_ASSERT(data_mem);
-	      out << indent << "  ";
-	      represent_data_member(data_mem, ctxt, out);
+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
 	    }
 	}
 
@@ -1327,10 +1302,8 @@ default_reporter::report(const class_diff& d, ostream& out,
   class_decl_sptr first = d.first_class_decl(),
     second = d.second_class_decl();
 
-  if (report_name_size_and_alignment_changes(first, second, d.context(),
-					     out, indent,
-					     /*start_with_new_line=*/false))
-    out << "\n";
+  report_name_size_and_alignment_changes(first, second, d.context(),
+					 out, indent);
 
   const diff_context_sptr& ctxt = d.context();
   maybe_report_diff_for_member(first, second, ctxt, out, indent);
@@ -1446,10 +1419,8 @@ default_reporter::report(const union_diff& d, ostream& out,
   // Now report the changes about the differents parts of the type.
   union_decl_sptr first = d.first_union_decl(), second = d.second_union_decl();
 
-  if (report_name_size_and_alignment_changes(first, second, d.context(),
-					     out, indent,
-					     /*start_with_new_line=*/false))
-    out << "\n";
+  report_name_size_and_alignment_changes(first, second, d.context(),
+					 out, indent);
 
   maybe_report_diff_for_member(first, second,d. context(), out, indent);
 
@@ -1512,9 +1483,7 @@ default_reporter::report(const distinct_diff& d, ostream& out,
   if (diff)
     diff->report(out, indent + "  ");
   else
-    if (report_size_and_alignment_changes(f, s, d.context(), out, indent,
-					  /*start_with_new_line=*/false))
-      out << "\n";
+    report_size_and_alignment_changes(f, s, d.context(), out, indent);
 }
 
 /// Serialize a report of the changes encapsulated in the current
@@ -1710,11 +1679,9 @@ default_reporter::report(const var_diff& d, ostream& out,
   decl_base_sptr first = d.first_var(), second = d.second_var();
   string n = first->get_pretty_representation();
 
-  if (report_name_size_and_alignment_changes(first, second,
-					     d.context(),
-					     out, indent,
-					     /*start_with_new_line=*/false))
-    out << "\n";
+  report_name_size_and_alignment_changes(first, second,
+					 d.context(),
+					 out, indent);
 
   maybe_report_diff_for_symbol(d.first_var()->get_symbol(),
 			       d.second_var()->get_symbol(),
diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
index 6972d013..ddc84352 100644
--- a/src/abg-leaf-reporter.cc
+++ b/src/abg-leaf-reporter.cc
@@ -78,7 +78,7 @@ report_diffs(const reporter_base& r,
 
 	  string n = (*i)->first_subject()->get_pretty_representation();
 
-	  out << indent << "'" << n ;
+	  out << indent << "'" << n;
 
 	  report_loc_info((*i)->first_subject(),
 			  *(*i)->context(), out);
@@ -428,8 +428,7 @@ leaf_reporter::report(const array_diff& d,
   report_name_size_and_alignment_changes(d.first_array(),
 					 d.second_array(),
 					 d.context(),
-					 out, indent,
-					 /*new line=*/false);
+					 out, indent);
 
   diff_sptr dif = d.element_type_diff();
   if (diff_to_be_reported(dif.get()))
@@ -441,8 +440,6 @@ leaf_reporter::report(const array_diff& d,
       dif->report(out, indent + "  ");
     }
 
-  report_loc_info(d.second_array(), *d.context(), out);
-
   maybe_report_interfaces_impacted_by_diff(&d, out, indent);
 }
 
@@ -592,7 +589,6 @@ leaf_reporter::report(const class_or_union_diff& d,
 	  sort_data_members
 	    (d.class_or_union_diff::get_priv()->deleted_data_members_,
 	     sorted_dms);
-	  bool emitted = false;
 	  for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
 	       i != sorted_dms.end();
 	       ++i)
@@ -602,14 +598,8 @@ leaf_reporter::report(const class_or_union_diff& d,
 	      ABG_ASSERT(data_mem);
 	      if (get_member_is_static(data_mem))
 		continue;
-	      if (emitted)
-		out << "\n";
-	      out << indent << "  ";
-	      represent_data_member(data_mem, ctxt, out);
-	      emitted = true;
+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
 	    }
-	  if (emitted)
-	    out << "\n";
 	}
 
       //report insertions
@@ -630,8 +620,7 @@ leaf_reporter::report(const class_or_union_diff& d,
 	      var_decl_sptr data_mem =
 		dynamic_pointer_cast<var_decl>(*i);
 	      ABG_ASSERT(data_mem);
-	      out << indent << "  ";
-	      represent_data_member(data_mem, ctxt, out);
+	      represent_data_member(data_mem, ctxt, out, indent + "  ");
 	    }
 	}
 
@@ -716,10 +705,8 @@ leaf_reporter::report(const class_diff& d,
   class_decl_sptr first = d.first_class_decl(),
     second = d.second_class_decl();
 
-  if (report_name_size_and_alignment_changes(first, second, d.context(),
-					     out, indent,
-					     /*start_with_new_line=*/false))
-    out << "\n";
+  report_name_size_and_alignment_changes(first, second, d.context(),
+					 out, indent);
 
   const diff_context_sptr& ctxt = d.context();
   maybe_report_diff_for_member(first, second, ctxt, out, indent);
@@ -750,10 +737,8 @@ leaf_reporter::report(const union_diff& d,
   // Now report the changes about the differents parts of the type.
   union_decl_sptr first = d.first_union_decl(), second = d.second_union_decl();
 
-  if (report_name_size_and_alignment_changes(first, second, d.context(),
-					     out, indent,
-					     /*start_with_new_line=*/false))
-    out << "\n";
+  report_name_size_and_alignment_changes(first, second, d.context(),
+					 out, indent);
 
   maybe_report_diff_for_member(first, second,d. context(), out, indent);
 
@@ -789,10 +774,7 @@ leaf_reporter::report(const distinct_diff& d,
   report_loc_info(s, *d.context(), out);
   out << "\n";
 
-  if (report_size_and_alignment_changes(f, s, d.context(), out, indent,
-					/*start_with_new_line=*/false))
-    out << "\n";
-
+  report_size_and_alignment_changes(f, s, d.context(), out, indent);
   maybe_report_interfaces_impacted_by_diff(&d, out, indent);
 }
 
@@ -982,11 +964,9 @@ leaf_reporter::report(const var_diff& d,
   decl_base_sptr first = d.first_var(), second = d.second_var();
   string n = first->get_pretty_representation();
 
-  if (report_name_size_and_alignment_changes(first, second,
-					     d.context(),
-					     out, indent,
-					     /*start_with_new_line=*/false))
-    out << "\n";
+  report_name_size_and_alignment_changes(first, second,
+					 d.context(),
+					 out, indent);
 
   maybe_report_diff_for_symbol(d.first_var()->get_symbol(),
 			       d.second_var()->get_symbol(),
@@ -1107,50 +1087,50 @@ leaf_reporter::report(const corpus_diff& d,
   if (ctxt->show_added_fns())
     {
       if (s.net_num_func_added() == 1)
-        out << indent << "1 Added function:\n\n";
+	out << indent << "1 Added function:\n\n";
       else if (s.net_num_func_added() > 1)
-        out << indent << s.net_num_func_added()
-            << " Added functions:\n\n";
+	out << indent << s.net_num_func_added()
+	    << " Added functions:\n\n";
       bool emitted = false;
       vector<function_decl*> sorted_added_fns;
       sort_string_function_ptr_map(d.priv_->added_fns_, sorted_added_fns);
       for (vector<function_decl*>::const_iterator i = sorted_added_fns.begin();
-           i != sorted_added_fns.end();
-           ++i)
-        {
-          if (d.priv_->added_function_is_suppressed(*i))
-            continue;
-
-          out
-            << indent
-            << "  ";
-          out << "[A] ";
-          out << "'"
-              << (*i)->get_pretty_representation()
-              << "'";
-          if (ctxt->show_linkage_names())
-            {
-              out << "    {";
-              show_linkage_name_and_aliases
-                (out, "", *(*i)->get_symbol(),
-                 d.second_corpus()->get_fun_symbol_map());
-              out << "}";
-            }
-          out << "\n";
-          if (is_member_function(*i) && get_member_function_is_virtual(*i))
-            {
-              class_decl_sptr c =
-                is_class_type(is_method_type((*i)->get_type())->get_class_type());
-              out << indent
-                  << "    "
-                  << "note that this adds a new entry to the vtable of "
-                  << c->get_pretty_representation()
-                  << "\n";
-            }
-          emitted = true;
-        }
+	   i != sorted_added_fns.end();
+	   ++i)
+	{
+	  if (d.priv_->added_function_is_suppressed(*i))
+	    continue;
+
+	  out
+	    << indent
+	    << "  ";
+	  out << "[A] ";
+	  out << "'"
+	      << (*i)->get_pretty_representation()
+	      << "'";
+	  if (ctxt->show_linkage_names())
+	    {
+	      out << "    {";
+	      show_linkage_name_and_aliases
+		(out, "", *(*i)->get_symbol(),
+		 d.second_corpus()->get_fun_symbol_map());
+	      out << "}";
+	    }
+	  out << "\n";
+	  if (is_member_function(*i) && get_member_function_is_virtual(*i))
+	    {
+	      class_decl_sptr c =
+		is_class_type(is_method_type((*i)->get_type())->get_class_type());
+	      out << indent
+		  << "    "
+		  << "note that this adds a new entry to the vtable of "
+		  << c->get_pretty_representation()
+		  << "\n";
+	    }
+	  emitted = true;
+	}
       if (emitted)
-        out << "\n";
+	out << "\n";
     }
 
   if (ctxt->show_changed_fns())
@@ -1262,7 +1242,7 @@ leaf_reporter::report(const corpus_diff& d,
 	  emitted = true;
 	}
       if (emitted)
-        out << "\n";
+	out << "\n";
     }
 
   if (ctxt->show_added_vars())
@@ -1325,7 +1305,7 @@ leaf_reporter::report(const corpus_diff& d,
 	    continue;
 
 	  if (!diff_to_be_reported(diff.get()))
-            continue;
+	    continue;
 
 	  n1 = diff->first_subject()->get_pretty_representation();
 	  n2 = diff->second_subject()->get_pretty_representation();
@@ -1337,7 +1317,7 @@ leaf_reporter::report(const corpus_diff& d,
 	  out << ":\n";
 	  diff->report(out, indent + "    ");
 	  out << "\n";
-          emitted = true;
+	  emitted = true;
 	}
       if (emitted)
 	out << "\n";
@@ -1373,7 +1353,7 @@ leaf_reporter::report(const corpus_diff& d,
 	  show_linkage_name_and_aliases(out, "", **i,
 					d.first_corpus()->get_fun_symbol_map());
 	  out << "\n";
-          emitted = true;
+	  emitted = true;
 	}
       if (emitted)
 	out << "\n";
@@ -1410,7 +1390,7 @@ leaf_reporter::report(const corpus_diff& d,
 					**i,
 					d.second_corpus()->get_fun_symbol_map());
 	  out << "\n";
-          emitted = true;
+	  emitted = true;
 	}
       if (emitted)
 	out << "\n";
@@ -1448,7 +1428,7 @@ leaf_reporter::report(const corpus_diff& d,
 	     d.first_corpus()->get_fun_symbol_map());
 
 	  out << "\n";
-          emitted = true;
+	  emitted = true;
 	}
       if (emitted)
 	out << "\n";
@@ -1484,7 +1464,7 @@ leaf_reporter::report(const corpus_diff& d,
 	  show_linkage_name_and_aliases(out, "", **i,
 					d.second_corpus()->get_fun_symbol_map());
 	  out << "\n";
-          emitted = true;
+	  emitted = true;
 	}
       if (emitted)
 	out << "\n";
diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc
index fbac85f8..7c452877 100644
--- a/src/abg-reporter-priv.cc
+++ b/src/abg-reporter-priv.cc
@@ -242,16 +242,19 @@ represent(const diff_context& ctxt,
 /// @param ctxt the current diff context.
 ///
 /// @param out the output stream to send the representation to
+///
+/// @param indent the indentation string to use for the change report.
 void
 represent_data_member(var_decl_sptr d,
 		      const diff_context_sptr& ctxt,
-		      ostream& out)
+		      ostream& out,
+		      const string& indent)
 {
   if (!is_data_member(d)
       || (!get_member_is_static(d) && !get_data_member_is_laid_out(d)))
     return;
 
-  out << "'" << d->get_pretty_representation() << "'";
+  out << indent << "'" << d->get_pretty_representation() << "'";
   if (!get_member_is_static(d))
     {
       // Do not emit offset information for data member of a union
@@ -262,8 +265,8 @@ represent_data_member(var_decl_sptr d,
 			    get_data_member_offset(d),
 			    *ctxt, out);
       report_loc_info(d, *ctxt, out);
-      out << "\n";
     }
+  out << "\n";
 }
 
 /// If a given @ref var_diff node carries a data member change in
@@ -441,7 +444,7 @@ represent(const var_diff_sptr	&diff,
 	  out << indent << "while looking at anonymous data member '"
 	      << tr1 << "':\n"
 	      << indent << "the internal name of that anonymous data member"
-	                   "changed from:\n"
+			   "changed from:\n"
 	      << indent << " " << get_type_name(o->get_type()) << "\n"
 	      << indent << "to:\n"
 	      << indent << " " << get_type_name(n->get_type()) << "\n"
@@ -699,23 +702,18 @@ represent(const var_diff_sptr	&diff,
 /// @param out the output stream to report the change to.
 ///
 /// @param indent the string to use for indentation.
-///
-/// @param nl whether to start the first report line with a new line.
-///
-/// @return true iff something was reported.
-bool
+void
 report_size_and_alignment_changes(type_or_decl_base_sptr	first,
 				  type_or_decl_base_sptr	second,
 				  diff_context_sptr		ctxt,
 				  ostream&			out,
-				  const string&		indent,
-				  bool				nl)
+				  const string&			indent)
 {
   type_base_sptr f = dynamic_pointer_cast<type_base>(first),
     s = dynamic_pointer_cast<type_base>(second);
 
   if (!s || !f)
-    return false;
+    return;
 
   class_or_union_sptr first_class = is_class_or_union_type(first),
     second_class = is_class_or_union_type(second);
@@ -726,9 +724,8 @@ report_size_and_alignment_changes(type_or_decl_base_sptr	first,
     // declaration-only form of the second.  And the user asked that
     // this kind of change be filtered out, so do not report any size
     // change due to this.
-    return false;
+    return;
 
-  bool n = false;
   unsigned fs = f->get_size_in_bits(), ss = s->get_size_in_bits(),
     fa = f->get_alignment_in_bits(), sa = s->get_alignment_in_bits();
   array_type_def_sptr first_array = is_array_type(is_type(first)),
@@ -736,9 +733,6 @@ report_size_and_alignment_changes(type_or_decl_base_sptr	first,
   unsigned fdc = first_array ? first_array->get_dimension_count(): 0,
     sdc = second_array ? second_array->get_dimension_count(): 0;
 
-  if (nl)
-    out << "\n";
-
   if (ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY)
     {
       if (fs != ss || fdc != sdc)
@@ -801,27 +795,23 @@ report_size_and_alignment_changes(type_or_decl_base_sptr	first,
 	    {
 	      out << indent;
 	      show_numerical_change("type size", fs, ss, *ctxt, out);
-	      n = true;
+	      out << "\n";
 	    }
 	} // end if (fs != ss || fdc != sdc)
       else
 	if (ctxt->show_relative_offset_changes())
-	  out << indent << "type size hasn't changed\n";
+	  {
+	    out << indent << "type size hasn't changed\n";
+	  }
     }
   if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY)
       && (fa != sa))
     {
-      if (n)
-	out << "\n";
       out << indent;
       show_numerical_change("type alignment", fa, sa, *ctxt, out,
 			    /*show_bits_or_bytes=*/false);
-      n = true;
+      out << "\n";
     }
-
-  if (n)
-    return true;
-  return false;
 }
 
 /// @param tod the type or declaration to emit loc info about
@@ -874,17 +864,12 @@ report_loc_info(const type_or_decl_base_sptr& tod,
 /// @param out the output stream to report the change to.
 ///
 /// @param indent the string to use for indentation.
-///
-/// @param nl whether to start the first report line with a new line.
-///
-/// @return true iff something was reported.
-bool
+void
 report_name_size_and_alignment_changes(decl_base_sptr		first,
 				       decl_base_sptr		second,
 				       diff_context_sptr	ctxt,
-				       ostream&		out,
-				       const string&		indent,
-				       bool			nl)
+				       ostream&			out,
+				       const string&		indent)
 {
   string fn = first->get_qualified_name(),
     sn = second->get_qualified_name();
@@ -898,21 +883,17 @@ report_name_size_and_alignment_changes(decl_base_sptr		first,
 	;
       else
 	{
-	  if (nl)
-	    out << "\n";
 	  out << indent;
 	  if (is_type(first))
 	    out << "type";
 	  else
 	    out << "declaration";
 	  out << " name changed from '" << fn << "' to '" << sn << "'";
-	  nl = true;
+	  out << "\n";
 	}
     }
 
-  nl |= report_size_and_alignment_changes(first, second, ctxt,
-					  out, indent, nl);
-  return nl;
+  report_size_and_alignment_changes(first, second, ctxt, out, indent);
 }
 
 /// Output the header preceding the the report for
@@ -1366,14 +1347,10 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
 /// @param out the output stream to report to.
 ///
 /// @param indent the white space string to use for indentation.
-///
-/// @param new_line_prefix if set to true, it means there is going to
-/// be a new line emitted before the report.
 void
 maybe_report_interfaces_impacted_by_diff(const diff	*d,
 					 ostream	&out,
-					 const string	&indent,
-					 bool		new_line_prefix)
+					 const string	&indent)
 {
   const diff_context_sptr &ctxt = d->context();
   const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff();
@@ -1395,9 +1372,6 @@ maybe_report_interfaces_impacted_by_diff(const diff	*d,
   vector<type_or_decl_base_sptr> sorted_impacted_interfaces;
   sort_artifacts_set(*impacted_artifacts, sorted_impacted_interfaces);
 
-  if (new_line_prefix)
-    out << '\n';
-
   size_t num_impacted_interfaces = impacted_artifacts->size();
   if (num_impacted_interfaces == 1)
     out << indent << "one impacted interface:\n";
@@ -1424,9 +1398,6 @@ maybe_report_interfaces_impacted_by_diff(const diff	*d,
 /// @param out the output stream to report to.
 ///
 /// @param indent the white space string to use for indentation.
-///
-/// @param new_line_prefix if set to true, it means there is going to
-/// be a new line emitted before the report.
 void
 maybe_report_interfaces_impacted_by_diff(const diff_sptr	&d,
 					 ostream		&out,
diff --git a/src/abg-reporter-priv.h b/src/abg-reporter-priv.h
index 7471c74f..b6c56fdb 100644
--- a/src/abg-reporter-priv.h
+++ b/src/abg-reporter-priv.h
@@ -151,7 +151,8 @@ represent(const diff_context& ctxt,
 void
 represent_data_member(var_decl_sptr d,
 		      const diff_context_sptr& ctxt,
-		      ostream& out);
+		      ostream& out,
+		      const string& indent);
 
 void
 maybe_show_relative_offset_change(const var_diff_sptr &diff,
@@ -170,26 +171,24 @@ represent(const var_diff_sptr	&diff,
 	  const string&	indent = "",
 	  bool			local_only = false);
 
-bool
+void
 report_size_and_alignment_changes(type_or_decl_base_sptr	first,
 				  type_or_decl_base_sptr	second,
 				  diff_context_sptr		ctxt,
 				  ostream&			out,
-				  const string&		indent,
-				  bool				nl);
+				  const string&			indent);
 
 bool
 report_loc_info(const type_or_decl_base_sptr& tod,
 		const diff_context& ctxt,
 		ostream &out);
 
-bool
+void
 report_name_size_and_alignment_changes(decl_base_sptr		first,
 				       decl_base_sptr		second,
 				       diff_context_sptr	ctxt,
 				       ostream&		out,
-				       const string&		indent,
-				       bool			nl);
+				       const string&		indent);
 
 /// Represent the kind of difference we want report_mem_header() to
 /// report.
@@ -244,14 +243,12 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
 void
 maybe_report_interfaces_impacted_by_diff(const diff		*d,
 					 ostream		&out,
-					 const string		&indent,
-					 bool new_line_prefix = true);
+					 const string		&indent);
 
 void
 maybe_report_interfaces_impacted_by_diff(const diff_sptr	&d,
 					 ostream		&out,
-					 const string		&indent,
-					 bool new_line_prefix = false);
+					 const string		&indent);
 
 } // end namespace comparison
 } // end namespace abigail
diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
index 96d48ccf..04676908 100644
--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt
+++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
         1 data member deletion:
           'unsigned char S1::m1', at offset 32 (in bits)
 
-
diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
index 3c8c4a8f..b39f650d 100644
--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt
+++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
         1 data member deletion:
           'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1
 
-
diff --git a/tests/data/test-abicompat/test6-var-changed-report-0.txt b/tests/data/test-abicompat/test6-var-changed-report-0.txt
index 5d2bd89c..f5077879 100644
--- a/tests/data/test-abicompat/test6-var-changed-report-0.txt
+++ b/tests/data/test-abicompat/test6-var-changed-report-0.txt
@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
       1 data member deletion:
         'unsigned char S1::m1', at offset 32 (in bits)
 
-
diff --git a/tests/data/test-abicompat/test6-var-changed-report-1.txt b/tests/data/test-abicompat/test6-var-changed-report-1.txt
index 697929f0..5b78c83c 100644
--- a/tests/data/test-abicompat/test6-var-changed-report-1.txt
+++ b/tests/data/test-abicompat/test6-var-changed-report-1.txt
@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
       1 data member deletion:
         'unsigned char S1::m1', at offset 32 (in bits) at test6-var-changed-libapp-v0.h:11:1
 
-
diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
index 19db76e3..6a34710d 100644
--- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt
+++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type name changed from 'float' to 'int'
       type size hasn't changed
 
-
   [C] 'function void print(const Student)' has some indirect sub-type changes:
     parameter 1 of type 'const Student' has sub-type changes:
       in unqualified underlying type 'struct Student':
diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
index 138c4b5a..7602e761 100644
--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt
+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
@@ -10,7 +10,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
       type name changed from 'sto1' to 'stn1'
       type size hasn't changed
 
-
   [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
     parameter 1 of type 'struct sto2' changed:
       type name changed from 'sto2' to 'stn2'
diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
index 53672744..bc37ff53 100644
--- a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type size hasn't changed
 
 
-
diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
index 6893e3fc..56c41d79 100644
--- a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type size hasn't changed
 
 
-
diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
index 5758077d..7e16fe32 100644
--- a/tests/data/test-abidiff/test-PR18791-report0.txt
+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
@@ -48,9 +48,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
                                          struct std::__detail::_List_node_base
                                        2 data member deletions:
                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
-
                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
-
                                        1 data member insertion:
                                          'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt
index c7c5a682..1cd7eaaf 100644
--- a/tests/data/test-abidiff/test-enum0-report.txt
+++ b/tests/data/test-abidiff/test-enum0-report.txt
@@ -3,7 +3,6 @@
     type size hasn't changed
     1 enumerator deletion:
       'E::e2' value '1'
-
     1 enumerator insertion:
       'E::e1' value '1'
 
diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt
index f1198ef9..7e8acf80 100644
--- a/tests/data/test-abidiff/test-enum1-report.txt
+++ b/tests/data/test-abidiff/test-enum1-report.txt
@@ -3,7 +3,6 @@
     type size hasn't changed
     1 enumerator insertion:
       'E::e1' value '1'
-
     1 enumerator change:
       'E::e2' from value '1' to '2'
 
diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
index 39b71e55..e334bf1a 100644
--- a/tests/data/test-abidiff/test-struct1-report.txt
+++ b/tests/data/test-abidiff/test-struct1-report.txt
@@ -6,7 +6,6 @@
 
     1 data member deletion:
       'char s0::m1', at offset 96 (in bits)
-
     1 data member insertion:
       'double s0::m01', at offset 128 (in bits)
     2 data member changes:
diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
index 29f823ec..aab271ff 100644
--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
@@ -100,7 +100,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
            type size hasn't changed
-
            3 data member changes:
             name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
             name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
@@ -171,7 +170,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
           type size changed from 35008 to 35072 (in bits)
           1 data member deletion:
             'char lttng_session::padding[12]', at offset 34912 (in bits)
-
           1 data member insertion:
             'union {char padding[12]; void* ptr;} lttng_session::extended', at offset 34944 (in bits)
 
@@ -208,7 +206,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
           1 data member deletion:
             'bool lttng_notification::owns_elements', at offset 128 (in bits)
 
-
   [C] 'function lttng_notification_channel_status lttng_notification_channel_subscribe(lttng_notification_channel*, const lttng_condition*)' has some indirect sub-type changes:
     return type changed:
       enum type 'enum lttng_notification_channel_status' changed, as reported earlier
@@ -289,7 +286,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
                            'op_type::AST_OP_BIN_AND' value '10'
                            'op_type::AST_OP_BIN_OR' value '11'
                            'op_type::AST_OP_BIN_XOR' value '12'
-
                          5 enumerator insertions:
                            'op_type::AST_OP_BIT_RSHIFT' value '6'
                            'op_type::AST_OP_BIT_LSHIFT' value '7'
@@ -319,7 +315,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
                          type size hasn't changed
                          1 enumerator deletion:
                            'unary_op_type::AST_UNARY_BIN_NOT' value '4'
-
                          1 enumerator insertion:
                            'unary_op_type::AST_UNARY_BIT_NOT' value '4'
 
diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
index cf29a4fd..833879c7 100644
--- a/tests/data/test-diff-dwarf/test13-report.txt
+++ b/tests/data/test-diff-dwarf/test13-report.txt
@@ -12,7 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
            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 (in bits)
diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt
index f7a75df7..fd9708e6 100644
--- a/tests/data/test-diff-dwarf/test38-union-report-0.txt
+++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt
@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         type size hasn't changed
         1 data member deletion:
           'int some_union_type::m0'
-
         type changed from:
           union some_union_type{int m0; char m1; S m2;}
         to:
diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
index d0b8c52c..f0f9e1a1 100644
--- a/tests/data/test-diff-dwarf/test40-report-0.txt
+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
         type size changed from 96 to 64 (in 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)
@@ -24,7 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
            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':
diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
index f0a25a2e..44918baa 100644
--- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
+++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
@@ -19,7 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     return type changed:
       type name changed from 'std::tuple<STR&&>' to 'std::tuple<STR &&>'
       type size hasn't changed
-
       1 base class deletion:
         struct std::_Tuple_impl<0ul, STR&&>
       1 base class insertion:
diff --git a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
index 1c0c773d..60681336 100644
--- a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
+++ b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
@@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             'char m2', at offset 8 (in bits)
 
 
-
diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt
index bdc31fd0..5a505fc3 100644
--- a/tests/data/test-diff-filter/test10-report.txt
+++ b/tests/data/test-diff-filter/test10-report.txt
@@ -16,4 +16,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
           'unsigned int S::m', at offset 0 (in bits)
 
 
-
diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
index 0d30ef39..6ade5bdf 100644
--- a/tests/data/test-diff-filter/test18-report.txt
+++ b/tests/data/test-diff-filter/test18-report.txt
@@ -14,4 +14,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
 
 
 
-
diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
index f847d32e..99c14329 100644
--- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
+++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
@@ -7,10 +7,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     parameter 1 of type 'int' changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
-
     parameter 2 of type 'int' changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
 
 
-
diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
index b78215b0..5def3a08 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           '__anonymous_enum__1::c_report_state_stream' value '142'
           '__anonymous_enum__1::c_report_stream' value '143'
           '__anonymous_enum__1::c_unload_library' value '144'
-
         92 enumerator changes:
           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
            type size hasn't changed
-
            1 data member changes (1 filtered):
             anonymous data member at offset 0 (in bits) changed from:
               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
-
           1 data member change:
            type of 'void ()* InitTableEntry::func' changed:
              in pointed to type 'function type void ()':
@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                type size changed from 2752 to 5504 (in bits)
                1 data member deletion:
                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
-
                7 data member insertions:
                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                        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> >
                               2 data member deletions:
                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-
                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-
                               1 data member change:
                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
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 ccaf8126..3bc8f6d7 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           '__anonymous_enum__1::c_report_state_stream' value '142'
           '__anonymous_enum__1::c_report_stream' value '143'
           '__anonymous_enum__1::c_unload_library' value '144'
-
         92 enumerator changes:
           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
            type size hasn't changed
-
            1 data member changes (1 filtered):
             anonymous data member at offset 0 (in bits) changed from:
               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
-
           1 data member change:
            type of 'void ()* InitTableEntry::func' changed:
              in pointed to type 'function type void ()':
@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                type size changed from 2752 to 5504 (in bits)
                1 data member deletion:
                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
-
                7 data member insertions:
                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
                               2 data member deletions:
                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
-
                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
-
                               1 data member change:
                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
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 44e78935..d91de66b 100644
--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           '__anonymous_enum__1::c_report_state_stream' value '142'
           '__anonymous_enum__1::c_report_stream' value '143'
           '__anonymous_enum__1::c_unload_library' value '144'
-
         92 enumerator changes:
           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
            type size hasn't changed
-
            1 data member changes (1 filtered):
             anonymous data member at offset 0 (in bytes) changed from:
               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
-
           1 data member change:
            type of 'void ()* InitTableEntry::func' changed:
              in pointed to type 'function type void ()':
@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                type size changed from 0x158 to 0x2b0 (in bytes)
                1 data member deletion:
                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
-
                7 data member insertions:
                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
                               2 data member deletions:
                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
-
                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
-
                               1 data member change:
                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
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 c9cb9246..306a9863 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
@@ -116,7 +116,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
           '__anonymous_enum__1::c_report_state_stream' value '142'
           '__anonymous_enum__1::c_report_stream' value '143'
           '__anonymous_enum__1::c_unload_library' value '144'
-
         92 enumerator changes:
           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
@@ -220,7 +219,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
            type size hasn't changed
-
            1 data member changes (1 filtered):
             anonymous data member at offset 0 (in bits) changed from:
               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
@@ -235,7 +233,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
           type size hasn't changed
-
           1 data member change:
            type of 'void ()* InitTableEntry::func' changed:
              in pointed to type 'function type void ()':
@@ -264,7 +261,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                type size changed from 2752 to 5504 (in bits)
                1 data member deletion:
                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
-
                7 data member insertions:
                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
@@ -286,20 +282,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
                        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> >
                               2 data member deletions:
                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
-
                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
-
                               1 data member change:
                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
index 08692c1e..22e614d8 100644
--- a/tests/data/test-diff-filter/test36-report-0.txt
+++ b/tests/data/test-diff-filter/test36-report-0.txt
@@ -13,7 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
            type size hasn't changed
 
 
-
   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
     parameter 1 of type 'S*' has sub-type changes:
       in pointed to type 'struct S' at test36-2-v1.c:6:1:
@@ -23,11 +22,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
            type name changed from 'int' to 'unsigned int'
            type size hasn't changed
 
-
          type of 'int S::m1' changed:
            type name changed from 'int' to 'unsigned int'
            type size hasn't changed
 
 
 
-
diff --git a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
index 94a0551d..d40a1374 100644
--- a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
+++ b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
   type size changed from 32 to 64 (in bits)
   1 data member insertion:
     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
-
   one impacted interface:
     function void fn(C&)
diff --git a/tests/data/test-diff-filter/test7-report.txt b/tests/data/test-diff-filter/test7-report.txt
index 7e3a4d47..26933033 100644
--- a/tests/data/test-diff-filter/test7-report.txt
+++ b/tests/data/test-diff-filter/test7-report.txt
@@ -7,7 +7,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     return type changed:
       type name changed from 'return_type' to 'other_return_type'
       type size hasn't changed
-
       no data member change (1 filtered);
 
 
diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
index 05d6fcad..873a84cd 100644
--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
@@ -54,9 +54,7 @@
                                                   struct std::__detail::_List_node_base
                                                 2 data member deletions:
                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
-
                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
-
                                                 1 data member insertion:
                                                   'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
                                               and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
index c227fa5c..a0cc67c2 100644
--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
@@ -10,7 +10,6 @@
           type size hasn't changed
           1 enumerator insertion:
             '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
-
           1 enumerator change:
             '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
 
@@ -34,7 +33,6 @@
           type size hasn't changed
           1 enumerator insertion:
             '__anonymous_enum__1::ssl_kea_ecdh_psk' value '5'
-
           1 enumerator change:
             '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1
 
@@ -52,7 +50,6 @@
                  type size hasn't changed
                  1 enumerator deletion:
                    '__anonymous_enum__::ssl_auth_rsa' value '1'
-
                  7 enumerator insertions:
                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
@@ -114,7 +111,6 @@
                                              type size hasn't changed
                                              1 enumerator insertion:
                                                '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
-
                                              1 enumerator change:
                                                '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
 
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
index bf081f52..70b41ddd 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
@@ -25,7 +25,6 @@
         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
           type size hasn't changed
-
           7 enumerator deletions:
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
@@ -34,7 +33,6 @@
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
-
           9 enumerator insertions:
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
index 7b86b964..0b909f90 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
@@ -25,7 +25,6 @@
         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
           type size hasn't changed
-
           7 enumerator deletions:
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
@@ -34,7 +33,6 @@
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
-
           9 enumerator insertions:
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
index 3d20caf1..c247ef95 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
@@ -239,15 +239,10 @@
                                                  type size changed from 1280 to 256 (in bits)
                                                  5 data member deletions:
                                                    'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
-
                                                    'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
-
                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
-
                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
-
                                                    'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
-
                                                  1 data member change:
                                                   type of 'SSL* RedsStream::ssl' changed:
                                                     in pointed to type 'typedef SSL' at reds_stream.h:32:1:
@@ -257,193 +252,99 @@
                                                         type size changed from 5504 to 0 (in bits)
                                                         94 data member deletions:
                                                           'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
-
                                                           'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
-
                                                           'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
-
                                                           'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
-
                                                           'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
-
                                                           'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
-
                                                           'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
-
                                                           'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
-
                                                           'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
-
                                                           'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
-
                                                           'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
-
                                                           'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
-
                                                           'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
-
                                                           'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
-
                                                           'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
-
                                                           'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
-
                                                           'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
-
                                                           'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
-
                                                           'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
-
                                                           'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
-
                                                           'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
-
                                                           'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
-
                                                           'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
-
                                                           'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
-
                                                           'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
-
                                                           'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
-
                                                           'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
-
                                                           'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
-
                                                           'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
-
                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
-
                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
-
                                                           'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
-
                                                           'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
-
                                                           'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
-
                                                           'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
-
                                                           'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
-
                                                           'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
-
                                                           'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
-
                                                           'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
-
                                                           'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
-
                                                           'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
-
                                                           'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
-
                                                           'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
-
                                                           'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
-
                                                           'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
-
                                                           'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
-
                                                           'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
-
                                                           'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
-
                                                           'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
-
                                                           'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
-
                                                           'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
-
                                                           'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
-
                                                           'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
-
                                                           'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
-
                                                           'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
-
                                                           'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
-
                                                           'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
-
                                                           'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
-
                                                           'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
-
                                                           'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
-
                                                           'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
-
                                                           'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
-
                                                           'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
-
                                                           'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
-
                                                           'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
-
                                                           'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
-
                                                           'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
-
                                                           'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
-
                                                           'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
-
                                                           'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
-
                                                           'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
-
                                                           'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
-
                                                           'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
-
                                                           'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
-
                                                           'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
-
                                                           'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
-
                                                           'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
-
                                                           'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
-
                                                           'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
-
                                                           'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
-
                                                           'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
-
                                                           'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
-
                                                           'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
-
                                                           'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
-
                                                           'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
-
                                                           'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
-
                                                           'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
-
                                                           'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
-
                                                           'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
-
                                                           'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
-
                                                           'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
-
                                                           'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
-
                                                           'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
-
                                                           'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
-
                                                   and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
 
 
@@ -558,7 +459,6 @@
         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
           type size hasn't changed
-
           7 enumerator deletions:
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
@@ -567,7 +467,6 @@
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
-
           9 enumerator insertions:
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
index 75ba0a50..11cd5682 100644
--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
@@ -22,7 +22,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
   'enum __anonymous_enum__2 at spice.h:471:1' changed:
     type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
     type size hasn't changed
-
     7 enumerator deletions:
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
@@ -31,7 +30,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
-
     9 enumerator insertions:
       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
@@ -48,7 +46,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
   'typedef spice_image_compression_t at spice.h:479:1' changed:
     typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
-
     2 impacted interfaces:
       function spice_image_compression_t spice_server_get_image_compression(SpiceServer*)
       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
index f8e60b50..d0381ce5 100644
--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
@@ -60,7 +60,6 @@
         type size hasn't changed
         1 enumerator insertion:
           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
-
         1 enumerator change:
           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
 
@@ -129,7 +128,6 @@
 
 
 
-
                1 member function deletion:
                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
 
@@ -138,11 +136,8 @@
 
                3 data member deletions:
                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
-
                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
-
                  '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) (by +128 bits)
                 type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed:
diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
index 10816705..89c8efa3 100644
--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
@@ -31,7 +31,6 @@
         type size hasn't changed
         1 enumerator insertion:
           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
-
         1 enumerator change:
           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
 
diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
index 8f5d0b6b..c39851d3 100644
--- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
+++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
@@ -7,14 +7,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
     return type changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
-
     parameter 1 of type 'int' changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
-
     parameter 2 of type 'int' changed:
       type name changed from 'int' to 'float'
       type size hasn't changed
 
 
-
diff --git a/tests/data/test-diff-suppr/test35-leaf-report-0.txt b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
index 411cc1b4..244455ae 100644
--- a/tests/data/test-diff-suppr/test35-leaf-report-0.txt
+++ b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
   type size changed from 32 to 64 (in bits)
   1 data member insertion:
     'char leaf::m1', at offset 32 (in bits) at test35-leaf-v1.cc:8:1
-
   one impacted interface:
     function void fn(C&)
diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
index b12a8a61..f286cc7b 100644
--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
@@ -7,7 +7,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
   type size changed from 32 to 64 (in bits)
   1 data member insertion:
     'char leaf1::m1', at offset 32 (in bits) at test36-leaf-v1.cc:7:1
-
   3 impacted interfaces:
     function void interface1(struct_type*)
     function void interface2(struct_type&)
@@ -20,7 +19,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
    and size changed from 32 to 64 (in bits) (by +32 bits)
    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
-
   3 impacted interfaces:
     function void interface1(struct_type*)
     function void interface2(struct_type&)
diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
index 4b1681bc..d772bd1d 100644
--- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
+++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
@@ -8,7 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type size hasn't changed
       1 enumerator insertion:
         'EnumType1::ee3_inserted' value '3'
-
       1 enumerator change:
         'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1
 
@@ -18,7 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
       type size hasn't changed
       1 enumerator insertion:
         'EnumType0::e3_inserted' value '3'
-
       1 enumerator change:
         'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1
 
-- 
2.25.1.481.gfbce0eb801-goog


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output.
  2020-03-16 13:04         ` Giuliano Procida
@ 2020-03-16 13:44           ` Matthias Maennich
  2020-03-16 14:32             ` Giuliano Procida
  0 siblings, 1 reply; 21+ messages in thread
From: Matthias Maennich @ 2020-03-16 13:44 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, Dodji Seketeli, kernel-team

On Mon, Mar 16, 2020 at 01:04:31PM +0000, Giuliano Procida wrote:
>Hi.
>
>On Mon, 16 Mar 2020 at 12:29, Matthias Maennich <maennich@google.com> wrote:
>>
>> On Mon, Mar 16, 2020 at 10:51:22AM +0000, Giuliano Procida wrote:
>> >Hi Matthias.
>> >
>> >On Sat, 14 Mar 2020 at 20:09, Matthias Maennich <maennich@google.com> wrote:
>> >>
>> >> On Thu, Mar 12, 2020 at 06:30:34AM +0000, Android Kernel Team wrote:
>> >> >There is distributed responsibility for horizontal and vertical
>> >> >whitespace in the reporting code with indent and new line control
>> >> >information being manipulated by and passed in and out of functions.
>> >> >Occasionally, this information is ignored or incorrect and the code
>> >> >tends to err on the side of more rather than fewer new lines.
>> >> >
>> >> >The outcome is that abidiff output sometimes contains extra blank
>> >> >lines which can be confusing.
>> >> >
>> >> >This patch eliminates some of the more obvious cases:
>> >> >
>> >> >   - after data member deletions
>> >> >   - in enumerator change lists
>> >> >   - after "type size hasn't changed"
>> >> >   - before listing impacted interfaces
>> >> >
>> >> >The patch cleans up the reporting of data members. The code will
>> >> >either emit indentation, a short description and a new line or do
>> >> >nothing at all.
>> >> >
>> >> >The patch also removes some stray location reporting code for array
>> >> >diffs which would have produced some oddly placed output. I could not
>> >> >get this code to trigger as loc = decl->get_location() was never
>> >> >present on the array decls in question.
>> >> >
>> >> >       * src/abg-default-reporter.cc (report): In the enum_diff
>> >> >       override, simplify new line logic; emit just one
>> >> >       blank line after each enum. In the array_diff override, remove
>> >> >       stray location reporting which doesn't appear to ever trigger;
>> >> >       fix new line logic. In the class_or_union_diff override,
>> >> >       simplify new line logic for deleted members; pass indentation
>> >> >       to represent_data_member.
>> >> >       * src/abg-leaf-reporter.cc (report): In the array_diff
>> >> >       override, remove stray location reporting which doesn't appear
>> >> >       to ever trigger; fix new line handling. In the
>> >> >       class_or_union_diff override, simplify new line logic for
>> >> >       deleted members; pass indentation to represent_data_member.
>> >> >       * src/abg-reporter-priv.cc (represent_data_member): Handle
>> >> >       indentation; fix new line logic.
>> >> >       (report_size_and_alignment_changes): Fix new line logic
>> >> >       for "type size hasn't changed" message; simplify new line
>> >> >       logic.
>> >> >       (report_name_size_and_alignment_changes): Fix new line logic.
>> >> >       (maybe_report_interfaces_impacted_by_diff) Remove new line
>> >> >       prefix code and new_line_prefix argument.
>> >> >       * src/abg-reporter-priv.h (represent_data_member): Add indent
>> >> >       argument.
>> >> >       (maybe_report_interfaces_impacted_by_diff) Remove
>> >> >       new_line_prefix argument.
>> >> >       * tests/data/test-*/*report*.txt: Remove some blank lines.
>> >> >
>> >> >Signed-off-by: Giuliano Procida <gprocida@google.com>
>> >> >---
>> >> > src/abg-default-reporter.cc                   |  43 +++-----
>> >> > src/abg-leaf-reporter.cc                      |  27 ++---
>> >> > src/abg-reporter-priv.cc                      |  34 +++---
>> >> > src/abg-reporter-priv.h                       |   9 +-
>> >> > .../test5-fn-changed-report-0.txt             |   1 -
>> >> > .../test5-fn-changed-report-1.txt             |   1 -
>> >> > .../test6-var-changed-report-0.txt            |   1 -
>> >> > .../test6-var-changed-report-1.txt            |   1 -
>> >> > .../test7-fn-changed-report-0.txt             |   1 -
>> >> > .../test-abidiff-exit/test-leaf3-report.txt   |   1 -
>> >> > .../test-loc-with-locs-report.txt             |   1 -
>> >> > .../test-loc-without-locs-report.txt          |   1 -
>> >> > .../test-abidiff/test-PR18791-report0.txt     |   2 -
>> >> > tests/data/test-abidiff/test-enum0-report.txt |   1 -
>> >> > tests/data/test-abidiff/test-enum1-report.txt |   1 -
>> >> > .../data/test-abidiff/test-struct1-report.txt |   1 -
>> >> > .../PR25058-liblttng-ctl-report-1.txt         |   5 -
>> >> > tests/data/test-diff-dwarf/test13-report.txt  |   1 -
>> >> > .../test-diff-dwarf/test38-union-report-0.txt |   1 -
>> >> > .../data/test-diff-dwarf/test40-report-0.txt  |   2 -
>> >> > .../test42-PR21296-clanggcc-report0.txt       |   1 -
>> >> > .../test43-PR22913-report-0.txt               |   1 -
>> >> > tests/data/test-diff-filter/test10-report.txt |   1 -
>> >> > tests/data/test-diff-filter/test18-report.txt |   1 -
>> >> > ...st23-redundant-fn-parm-change-report-0.txt |   2 -
>> >> > .../test30-pr18904-rvalueref-report0.txt      |   8 --
>> >> > .../test30-pr18904-rvalueref-report1.txt      |   8 --
>> >> > .../test30-pr18904-rvalueref-report2.txt      |   8 --
>> >> > .../test35-pr18754-no-added-syms-report-0.txt |   8 --
>> >> > .../data/test-diff-filter/test36-report-0.txt |   3 -
>> >> > .../test42-leaf-report-output-0.txt           |   1 -
>> >> > tests/data/test-diff-filter/test7-report.txt  |   1 -
>> >> > ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt |   2 -
>> >> > .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |   4 -
>> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-0.txt |   2 -
>> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt |   2 -
>> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 101 ------------------
>> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt |   3 -
>> >> > ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt |   5 -
>> >> > ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   1 -
>> >> > .../test10-changed-parm-c-report-0.txt        |   3 -
>> >> > .../test-diff-suppr/test35-leaf-report-0.txt  |   1 -
>> >> > .../test-diff-suppr/test36-leaf-report-0.txt  |   2 -
>> >> > .../test41-enumerator-changes-report-0.txt    |   2 -
>> >> > 44 files changed, 42 insertions(+), 264 deletions(-)
>> >> >
>> >> >diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
>> >> >index 3bfdfbc4..a0b9eeea 100644
>> >> >--- a/src/abg-default-reporter.cc
>> >> >+++ b/src/abg-default-reporter.cc
>> >> >@@ -130,16 +130,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
>> >> >          i != sorted_deleted_enumerators.end();
>> >> >          ++i)
>> >> >       {
>> >> >-        if (i != sorted_deleted_enumerators.begin())
>> >> >-          out << "\n";
>> >> >         out << indent
>> >> >             << "  '"
>> >> >             << i->get_qualified_name()
>> >> >             << "' value '"
>> >> >             << i->get_value()
>> >> >             << "'";
>> >> >+        out << "\n";
>> >> >       }
>> >> >-      out << "\n\n";
>> >> >     }
>> >> >   if (numins)
>> >> >     {
>> >> >@@ -151,16 +149,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
>> >> >          i != sorted_inserted_enumerators.end();
>> >> >          ++i)
>> >> >       {
>> >> >-        if (i != sorted_inserted_enumerators.begin())
>> >> >-          out << "\n";
>> >> >         out << indent
>> >> >             << "  '"
>> >> >             << i->get_qualified_name()
>> >> >             << "' value '"
>> >> >             << i->get_value()
>> >> >             << "'";
>> >> >+        out << "\n";
>> >> >       }
>> >> >-      out << "\n\n";
>> >> >     }
>> >> >   if (numchanges)
>> >> >     {
>> >> >@@ -173,8 +169,6 @@ default_reporter::report(const enum_diff& d, ostream& out,
>> >> >          i != sorted_changed_enumerators.end();
>> >> >          ++i)
>> >> >       {
>> >> >-        if (i != sorted_changed_enumerators.begin())
>> >> >-          out << "\n";
>> >> >         out << indent
>> >> >             << "  '"
>> >> >             << i->first.get_qualified_name()
>> >> >@@ -182,13 +176,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
>> >> >             << i->first.get_value() << "' to '"
>> >> >             << i->second.get_value() << "'";
>> >> >         report_loc_info(second, *d.context(), out);
>> >> >+        out << "\n";
>> >> >       }
>> >> >-      out << "\n\n";
>> >> >     }
>> >> >
>> >> >+  out << "\n";
>> >> >+
>> >> >   if (d.context()->show_leaf_changes_only())
>> >> >-    maybe_report_interfaces_impacted_by_diff(&d, out, indent,
>> >> >-                                           /*new_line_prefix=*/false);
>> >> >+    maybe_report_interfaces_impacted_by_diff(&d, out, indent);
>> >> >
>> >> >   d.reported_once(true);
>> >> > }
>> >> >@@ -392,7 +387,7 @@ default_reporter::report(const pointer_diff& d, ostream& out,
>> >> >       : string("void");
>> >> >
>> >> >       out << indent
>> >> >-        << "in pointed to type '" <<  repr << "'";
>> >> >+        << "in pointed to type '" << repr << "'";
>> >> >       report_loc_info(dif->second_subject(), *d.context(), out);
>> >> >       out << ":\n";
>> >> >       dif->report(out, indent + "  ");
>> >> >@@ -673,12 +668,12 @@ default_reporter::report(const array_diff& d, ostream& out,
>> >> >       dif->report(out, indent + "  ");
>> >> >     }
>> >> >
>> >> >-  report_name_size_and_alignment_changes(d.first_array(),
>> >> >-                                       d.second_array(),
>> >> >-                                       d.context(),
>> >> >-                                       out, indent,
>> >> >-                                       /*new line=*/false);
>> >> >-  report_loc_info(d.second_array(), *d.context(), out);
>> >> >+  if (report_name_size_and_alignment_changes(d.first_array(),
>> >> >+                                           d.second_array(),
>> >> >+                                           d.context(),
>> >> >+                                           out, indent,
>> >> >+                                           /*new line=*/false))
>> >>
>> >> Though it is not required here, I would prefer braces for readability.
>> >
>> >Agreed, I think it's sensible here. In other places, with the coding
>> >style in use, we'd end up with:
>> >
>> >if (emitted)
>> >  {
>> >    out << "\n";
>> >  }
>>
>> Let's take this one at this location.
>
>I've been able to eliminate it.
>
>> >
>> >which is pretty verbose. The following would be fine by me:
>> >
>> >if (emitted) out << "\n";
>> >
>> >Lastly, short but ugly:
>> >
>> >  emitted && (out << "\n");
>> >
>> >> >+    out << "\n";
>> >> > }
>> >> >
>> >> > /// Generates a report for an intance of @ref base_diff.
>> >> >@@ -1014,7 +1009,6 @@ default_reporter::report(const class_or_union_diff& d,
>> >> >         sort_data_members
>> >> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
>> >> >            sorted_dms);
>> >> >-        bool emitted = false;
>> >> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
>> >> >              i != sorted_dms.end();
>> >> >              ++i)
>> >> >@@ -1024,14 +1018,8 @@ default_reporter::report(const class_or_union_diff& d,
>> >> >             ABG_ASSERT(data_mem);
>> >> >             if (get_member_is_static(data_mem))
>> >> >               continue;
>> >> >-            if (emitted)
>> >> >-              out << "\n";
>> >> >-            out << indent << "  ";
>> >> >-            represent_data_member(data_mem, ctxt, out);
>> >> >-            emitted = true;
>> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
>> >> >           }
>> >> >-        if (emitted)
>> >> >-          out << "\n";
>> >> >       }
>> >> >
>> >> >       //report insertions
>> >> >@@ -1052,8 +1040,7 @@ default_reporter::report(const class_or_union_diff& d,
>> >> >             var_decl_sptr data_mem =
>> >> >               dynamic_pointer_cast<var_decl>(*i);
>> >> >             ABG_ASSERT(data_mem);
>> >> >-            out << indent << "  ";
>> >> >-            represent_data_member(data_mem, ctxt, out);
>> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
>> >> >           }
>> >> >       }
>> >> >
>> >> >diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
>> >> >index bbd51dcb..f706bd21 100644
>> >> >--- a/src/abg-leaf-reporter.cc
>> >> >+++ b/src/abg-leaf-reporter.cc
>> >> >@@ -78,7 +78,7 @@ report_diffs(const reporter_base& r,
>> >> >
>> >> >         string n = (*i)->first_subject()->get_pretty_representation();
>> >> >
>> >> >-        out << indent << "'" << n ;
>> >> >+        out << indent << "'" << n;
>> >> >
>> >> >         report_loc_info((*i)->first_subject(),
>> >> >                         *(*i)->context(), out);
>> >> >@@ -425,11 +425,12 @@ leaf_reporter::report(const array_diff& d,
>> >> >                                                   d.second_array(),
>> >> >                                                   "array type");
>> >> >
>> >> >-  report_name_size_and_alignment_changes(d.first_array(),
>> >> >-                                       d.second_array(),
>> >> >-                                       d.context(),
>> >> >-                                       out, indent,
>> >> >-                                       /*new line=*/false);
>> >> >+  if (report_name_size_and_alignment_changes(d.first_array(),
>> >> >+                                           d.second_array(),
>> >> >+                                           d.context(),
>> >> >+                                           out, indent,
>> >> >+                                           /*new line=*/false))
>> >>
>> >> As above.
>> >
>> >Agreed.
>> >
>> >> >+    out << "\n";
>> >> >
>> >> >   diff_sptr dif = d.element_type_diff();
>> >> >   if (diff_to_be_reported(dif.get()))
>> >> >@@ -441,8 +442,6 @@ leaf_reporter::report(const array_diff& d,
>> >> >       dif->report(out, indent + "  ");
>> >> >     }
>> >> >
>> >> >-  report_loc_info(d.second_array(), *d.context(), out);
>> >> >-
>> >> >   maybe_report_interfaces_impacted_by_diff(&d, out, indent);
>> >> > }
>> >> >
>> >> >@@ -592,7 +591,6 @@ leaf_reporter::report(const class_or_union_diff& d,
>> >> >         sort_data_members
>> >> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
>> >> >            sorted_dms);
>> >> >-        bool emitted = false;
>> >> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
>> >> >              i != sorted_dms.end();
>> >> >              ++i)
>> >> >@@ -602,14 +600,8 @@ leaf_reporter::report(const class_or_union_diff& d,
>> >> >             ABG_ASSERT(data_mem);
>> >> >             if (get_member_is_static(data_mem))
>> >> >               continue;
>> >> >-            if (emitted)
>> >> >-              out << "\n";
>> >> >-            out << indent << "  ";
>> >> >-            represent_data_member(data_mem, ctxt, out);
>> >> >-            emitted = true;
>> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
>> >> >           }
>> >> >-        if (emitted)
>> >> >-          out << "\n";
>> >> >       }
>> >> >
>> >> >       //report insertions
>> >> >@@ -630,8 +622,7 @@ leaf_reporter::report(const class_or_union_diff& d,
>> >> >             var_decl_sptr data_mem =
>> >> >               dynamic_pointer_cast<var_decl>(*i);
>> >> >             ABG_ASSERT(data_mem);
>> >> >-            out << indent << "  ";
>> >> >-            represent_data_member(data_mem, ctxt, out);
>> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
>> >> >           }
>> >> >       }
>> >> >
>> >> >diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc
>> >> >index fbac85f8..948a32fc 100644
>> >> >--- a/src/abg-reporter-priv.cc
>> >> >+++ b/src/abg-reporter-priv.cc
>> >> >@@ -242,16 +242,19 @@ represent(const diff_context& ctxt,
>> >> > /// @param ctxt the current diff context.
>> >> > ///
>> >> > /// @param out the output stream to send the representation to
>> >> >+///
>> >> >+/// @param indent the indentation string to use for the change report.
>> >> > void
>> >> > represent_data_member(var_decl_sptr d,
>> >> >                     const diff_context_sptr& ctxt,
>> >> >-                    ostream& out)
>> >> >+                    ostream& out,
>> >> >+                    const string& indent)
>> >>
>> >> I would prefer out parameters after all input parameters. Since this is
>> >> a private implementation detail, we should be good to change that
>> >> interface.
>> >
>> >I looked at the existing functions and copied an existing order for
>> >consistency. out and indent belong together morally as well (writer
>> >monad). If we switch to an indenting ostream, this issue goes away.
>> >
>> >> > {
>> >> >   if (!is_data_member(d)
>> >> >       || (!get_member_is_static(d) && !get_data_member_is_laid_out(d)))
>> >> >     return;
>> >> >
>> >> >-  out << "'" << d->get_pretty_representation() << "'";
>> >> >+  out << indent << "'" << d->get_pretty_representation() << "'";
>> >> >   if (!get_member_is_static(d))
>> >> >     {
>> >> >       // Do not emit offset information for data member of a union
>> >> >@@ -262,8 +265,8 @@ represent_data_member(var_decl_sptr d,
>> >> >                           get_data_member_offset(d),
>> >> >                           *ctxt, out);
>> >> >       report_loc_info(d, *ctxt, out);
>> >> >-      out << "\n";
>> >> >     }
>> >> >+  out << "\n";
>> >> > }
>> >> >
>> >> > /// If a given @ref var_diff node carries a data member change in
>> >> >@@ -806,7 +809,10 @@ report_size_and_alignment_changes(type_or_decl_base_sptr  first,
>> >> >       } // end if (fs != ss || fdc != sdc)
>> >> >       else
>> >> >       if (ctxt->show_relative_offset_changes())
>> >> >-        out << indent << "type size hasn't changed\n";
>> >> >+        {
>> >> >+          out << indent << "type size hasn't changed";
>> >> >+          n = true;
>> >> >+        }
>> >> >     }
>> >> >   if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY)
>> >> >       && (fa != sa))
>> >> >@@ -819,9 +825,7 @@ report_size_and_alignment_changes(type_or_decl_base_sptr   first,
>> >> >       n = true;
>> >> >     }
>> >> >
>> >> >-  if (n)
>> >> >-    return true;
>> >> >-  return false;
>> >> >+  return n;
>> >>
>> >> We should give 'n' a better name. Not necessarily part of this change.
>> >
>> >Acknowledged. If we are going to review newline handling we should do
>> >it everywhere and consistently. Ideally we should get to the point
>> >where we don't have to pass information about newlines around (this
>> >will likely be possible with an indenting ostream but may be doable
>> >even without that).
>> >
>> >> > }
>> >> >
>> >> > /// @param tod the type or declaration to emit loc info about
>> >> >@@ -910,8 +914,8 @@ report_name_size_and_alignment_changes(decl_base_sptr              first,
>> >> >       }
>> >> >     }
>> >> >
>> >> >-  nl |= report_size_and_alignment_changes(first, second, ctxt,
>> >> >-                                        out, indent, nl);
>> >> >+  nl = report_size_and_alignment_changes(first, second, ctxt,
>> >> >+                                         out, indent, nl);
>> >> >   return nl;
>> >> > }
>> >> >
>> >> >@@ -1366,14 +1370,10 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
>> >> > /// @param out the output stream to report to.
>> >> > ///
>> >> > /// @param indent the white space string to use for indentation.
>> >> >-///
>> >> >-/// @param new_line_prefix if set to true, it means there is going to
>> >> >-/// be a new line emitted before the report.
>> >> > void
>> >> > maybe_report_interfaces_impacted_by_diff(const diff   *d,
>> >> >                                        ostream        &out,
>> >> >-                                       const string   &indent,
>> >> >-                                       bool           new_line_prefix)
>> >> >+                                       const string   &indent)
>> >> > {
>> >> >   const diff_context_sptr &ctxt = d->context();
>> >> >   const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff();
>> >> >@@ -1395,9 +1395,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
>> >> >   vector<type_or_decl_base_sptr> sorted_impacted_interfaces;
>> >> >   sort_artifacts_set(*impacted_artifacts, sorted_impacted_interfaces);
>> >> >
>> >> >-  if (new_line_prefix)
>> >> >-    out << '\n';
>> >> >-
>> >>
>> >> I think we need to keep this newline. It separates the cause (the leaf
>> >> node change) from the impacted interfaces (the top level nodes).
>> >
>> >I disagree.
>> >
>> >I think the "impacted interfaces" block should be indented w.r.t leaf
>> >node change's introductory text or separated from the whole node
>> >change section by an extra new line, but not both. I'd prefer the
>> >former as this should be a parent-child relationship in the text
>> >output tree rather than a sibling one.
>> >
>> >Phrased another way, the text would be equally meaningful like this
>> >(adapting tests/data/test-diff-filter/test42-leaf-report-output-0.txt;
>> >though abitool.py's short report would need a tweak; it needs a tweak
>>
>> Just for the context: abitool.py we use in Android to monitor the kernel
>> ABI with libabigail :-) See
>> https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/
>>
>> >anyway for the case of 1 impacted interface):
>> >
>> >'struct leaf at test42-leaf-report-v0.cc:4:1' changed:
>> >  one impacted interface:
>> >    function void fn(C&)
>> > type size changed from 32 to 64 (in bits)
>> >  1 data member insertion:
>> >    'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
>> >
>>
>> The only concern I have and that I would like to see addressed is that
>> the list of impacted interfaces can be considerably long (thousands for
>> a central struct). That can get difficult to work with if this is
>> 'embedded' there.
>> In order to better address abi differences like that, I would prefer the
>> current format:
>>
>> # what changed
>> 'struct leaf at test42-leaf-report-v0.cc:4:1' changed:
>>  type size changed from 32 to 64 (in bits)
>>   1 data member insertion:
>>     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
>>
>> # impact
>>   one impacted interface:
>>     function void fn(C&)
>
>Just to clear, I wasn't advocating moving impacted interfaces up in
>any way. I was just pointing out that it is really a child of
>"changed" and I suppose it would be safer to prune based on
>indentation if you are going to post-process the output.
>
># untested Perl
>$text =~ s/^( *)([^ ]* impacted interfaces?):\n(\g1 .*\n)+:/$1$2\n/g;
>
>Anyway, the format is (previous to my patch) looks like:
>
>foo changed:
>  detailsA
>
>  M impacted interface(s):
>   detailsB
>
>bar changed:
>  detailsC
>
>  N impacted interface(s):
>    detailsD
>
>We want to post-process to remove detailsB and detailsD. This is
>equally easy so long as we just consume non-empty lines following
>"impacted interfaces". My patch to remove the blank line between
>detailsA/C and "impacted interfaces" doesn't change this.

I definitely agree it belongs to the 'changed' block (hence the
indentation). Yet I have the feeling the newline belongs there since the
structural change and the impact are separable things. But I am not
crazy picky on this and making it consistent with all the other removed
newlines is also an agreeable way as thinking about it (as long as we
still can truncate it properly). I like consistency :-)

Cheers,
Matthias

>
>> There we can also truncate the list of impacted interfaces.
>>
>> Cheers,
>> Matthias
>>
>> >Happy to discuss further.
>> >
>> >> With the above addressed, feel free to add
>> >> Reviewed-by: Matthias Maennich <maennich@google.com>
>> >>
>> >> Cheers,
>> >> Matthias
>> >
>> >Regards,
>> >Giuliano.
>> >
>> >> >   size_t num_impacted_interfaces = impacted_artifacts->size();
>> >> >   if (num_impacted_interfaces == 1)
>> >> >     out << indent << "one impacted interface:\n";
>> >> >@@ -1424,9 +1421,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
>> >> > /// @param out the output stream to report to.
>> >> > ///
>> >> > /// @param indent the white space string to use for indentation.
>> >> >-///
>> >> >-/// @param new_line_prefix if set to true, it means there is going to
>> >> >-/// be a new line emitted before the report.
>> >> > void
>> >> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
>> >> >                                        ostream                &out,
>> >> >diff --git a/src/abg-reporter-priv.h b/src/abg-reporter-priv.h
>> >> >index 7471c74f..04803f43 100644
>> >> >--- a/src/abg-reporter-priv.h
>> >> >+++ b/src/abg-reporter-priv.h
>> >> >@@ -151,7 +151,8 @@ represent(const diff_context& ctxt,
>> >> > void
>> >> > represent_data_member(var_decl_sptr d,
>> >> >                     const diff_context_sptr& ctxt,
>> >> >-                    ostream& out);
>> >> >+                    ostream& out,
>> >> >+                    const string& indent);
>> >> >
>> >> > void
>> >> > maybe_show_relative_offset_change(const var_diff_sptr &diff,
>> >> >@@ -244,14 +245,12 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
>> >> > void
>> >> > maybe_report_interfaces_impacted_by_diff(const diff           *d,
>> >> >                                        ostream                &out,
>> >> >-                                       const string           &indent,
>> >> >-                                       bool new_line_prefix = true);
>> >> >+                                       const string           &indent);
>> >> >
>> >> > void
>> >> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
>> >> >                                        ostream                &out,
>> >> >-                                       const string           &indent,
>> >> >-                                       bool new_line_prefix = false);
>> >> >+                                       const string           &indent);
>> >> >
>> >> > } // end namespace comparison
>> >> > } // end namespace abigail
>> >> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
>> >> >index 96d48ccf..04676908 100644
>> >> >--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt
>> >> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
>> >> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
>> >> >         1 data member deletion:
>> >> >           'unsigned char S1::m1', at offset 32 (in bits)
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
>> >> >index 3c8c4a8f..b39f650d 100644
>> >> >--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt
>> >> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
>> >> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
>> >> >         1 data member deletion:
>> >> >           'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-0.txt b/tests/data/test-abicompat/test6-var-changed-report-0.txt
>> >> >index 5d2bd89c..f5077879 100644
>> >> >--- a/tests/data/test-abicompat/test6-var-changed-report-0.txt
>> >> >+++ b/tests/data/test-abicompat/test6-var-changed-report-0.txt
>> >> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
>> >> >       1 data member deletion:
>> >> >         'unsigned char S1::m1', at offset 32 (in bits)
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-1.txt b/tests/data/test-abicompat/test6-var-changed-report-1.txt
>> >> >index 697929f0..5b78c83c 100644
>> >> >--- a/tests/data/test-abicompat/test6-var-changed-report-1.txt
>> >> >+++ b/tests/data/test-abicompat/test6-var-changed-report-1.txt
>> >> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
>> >> >       1 data member deletion:
>> >> >         'unsigned char S1::m1', at offset 32 (in bits) at test6-var-changed-libapp-v0.h:11:1
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
>> >> >index 19db76e3..6a34710d 100644
>> >> >--- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt
>> >> >+++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
>> >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >       type name changed from 'float' to 'int'
>> >> >       type size hasn't changed
>> >> >
>> >> >-
>> >> >   [C] 'function void print(const Student)' has some indirect sub-type changes:
>> >> >     parameter 1 of type 'const Student' has sub-type changes:
>> >> >       in unqualified underlying type 'struct Student':
>> >> >diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
>> >> >index 138c4b5a..7602e761 100644
>> >> >--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt
>> >> >+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
>> >> >@@ -10,7 +10,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >       type name changed from 'sto1' to 'stn1'
>> >> >       type size hasn't changed
>> >> >
>> >> >-
>> >> >   [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
>> >> >     parameter 1 of type 'struct sto2' changed:
>> >> >       type name changed from 'sto2' to 'stn2'
>> >> >diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
>> >> >index 53672744..bc37ff53 100644
>> >> >--- a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
>> >> >+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
>> >> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >       type size hasn't changed
>> >> >
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
>> >> >index 6893e3fc..56c41d79 100644
>> >> >--- a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
>> >> >+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
>> >> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >       type size hasn't changed
>> >> >
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
>> >> >index 5758077d..7e16fe32 100644
>> >> >--- a/tests/data/test-abidiff/test-PR18791-report0.txt
>> >> >+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
>> >> >@@ -48,9 +48,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >                                          struct std::__detail::_List_node_base
>> >> >                                        2 data member deletions:
>> >> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>> >> >-
>> >> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>> >> >-
>> >> >                                        1 data member insertion:
>> >> >                                          'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>> >> >                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>> >> >diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt
>> >> >index c7c5a682..1cd7eaaf 100644
>> >> >--- a/tests/data/test-abidiff/test-enum0-report.txt
>> >> >+++ b/tests/data/test-abidiff/test-enum0-report.txt
>> >> >@@ -3,7 +3,6 @@
>> >> >     type size hasn't changed
>> >> >     1 enumerator deletion:
>> >> >       'E::e2' value '1'
>> >> >-
>> >> >     1 enumerator insertion:
>> >> >       'E::e1' value '1'
>> >> >
>> >> >diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt
>> >> >index f1198ef9..7e8acf80 100644
>> >> >--- a/tests/data/test-abidiff/test-enum1-report.txt
>> >> >+++ b/tests/data/test-abidiff/test-enum1-report.txt
>> >> >@@ -3,7 +3,6 @@
>> >> >     type size hasn't changed
>> >> >     1 enumerator insertion:
>> >> >       'E::e1' value '1'
>> >> >-
>> >> >     1 enumerator change:
>> >> >       'E::e2' from value '1' to '2'
>> >> >
>> >> >diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
>> >> >index 39b71e55..e334bf1a 100644
>> >> >--- a/tests/data/test-abidiff/test-struct1-report.txt
>> >> >+++ b/tests/data/test-abidiff/test-struct1-report.txt
>> >> >@@ -6,7 +6,6 @@
>> >> >
>> >> >     1 data member deletion:
>> >> >       'char s0::m1', at offset 96 (in bits)
>> >> >-
>> >> >     1 data member insertion:
>> >> >       'double s0::m01', at offset 128 (in bits)
>> >> >     2 data member changes:
>> >> >diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>> >> >index 29f823ec..aab271ff 100644
>> >> >--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>> >> >+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
>> >> >@@ -100,7 +100,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >> >          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
>> >> >            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
>> >> >            type size hasn't changed
>> >> >-
>> >> >            3 data member changes:
>> >> >             name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
>> >> >             name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
>> >> >@@ -171,7 +170,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >> >           type size changed from 35008 to 35072 (in bits)
>> >> >           1 data member deletion:
>> >> >             'char lttng_session::padding[12]', at offset 34912 (in bits)
>> >> >-
>> >> >           1 data member insertion:
>> >> >             'union {char padding[12]; void* ptr;} lttng_session::extended', at offset 34944 (in bits)
>> >> >
>> >> >@@ -208,7 +206,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >> >           1 data member deletion:
>> >> >             'bool lttng_notification::owns_elements', at offset 128 (in bits)
>> >> >
>> >> >-
>> >> >   [C] 'function lttng_notification_channel_status lttng_notification_channel_subscribe(lttng_notification_channel*, const lttng_condition*)' has some indirect sub-type changes:
>> >> >     return type changed:
>> >> >       enum type 'enum lttng_notification_channel_status' changed, as reported earlier
>> >> >@@ -289,7 +286,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >> >                            'op_type::AST_OP_BIN_AND' value '10'
>> >> >                            'op_type::AST_OP_BIN_OR' value '11'
>> >> >                            'op_type::AST_OP_BIN_XOR' value '12'
>> >> >-
>> >> >                          5 enumerator insertions:
>> >> >                            'op_type::AST_OP_BIT_RSHIFT' value '6'
>> >> >                            'op_type::AST_OP_BIT_LSHIFT' value '7'
>> >> >@@ -319,7 +315,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
>> >> >                          type size hasn't changed
>> >> >                          1 enumerator deletion:
>> >> >                            'unary_op_type::AST_UNARY_BIN_NOT' value '4'
>> >> >-
>> >> >                          1 enumerator insertion:
>> >> >                            'unary_op_type::AST_UNARY_BIT_NOT' value '4'
>> >> >
>> >> >diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
>> >> >index cf29a4fd..833879c7 100644
>> >> >--- a/tests/data/test-diff-dwarf/test13-report.txt
>> >> >+++ b/tests/data/test-diff-dwarf/test13-report.txt
>> >> >@@ -12,7 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >            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 (in bits)
>> >> >diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt
>> >> >index f7a75df7..fd9708e6 100644
>> >> >--- a/tests/data/test-diff-dwarf/test38-union-report-0.txt
>> >> >+++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt
>> >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >         type size hasn't changed
>> >> >         1 data member deletion:
>> >> >           'int some_union_type::m0'
>> >> >-
>> >> >         type changed from:
>> >> >           union some_union_type{int m0; char m1; S m2;}
>> >> >         to:
>> >> >diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
>> >> >index d0b8c52c..f0f9e1a1 100644
>> >> >--- a/tests/data/test-diff-dwarf/test40-report-0.txt
>> >> >+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
>> >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >         type size changed from 96 to 64 (in 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)
>> >> >@@ -24,7 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >            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':
>> >> >diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
>> >> >index f0a25a2e..44918baa 100644
>> >> >--- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
>> >> >+++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
>> >> >@@ -19,7 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >     return type changed:
>> >> >       type name changed from 'std::tuple<STR&&>' to 'std::tuple<STR &&>'
>> >> >       type size hasn't changed
>> >> >-
>> >> >       1 base class deletion:
>> >> >         struct std::_Tuple_impl<0ul, STR&&>
>> >> >       1 base class insertion:
>> >> >diff --git a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
>> >> >index 1c0c773d..60681336 100644
>> >> >--- a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
>> >> >+++ b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
>> >> >@@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >             'char m2', at offset 8 (in bits)
>> >> >
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt
>> >> >index bdc31fd0..5a505fc3 100644
>> >> >--- a/tests/data/test-diff-filter/test10-report.txt
>> >> >+++ b/tests/data/test-diff-filter/test10-report.txt
>> >> >@@ -16,4 +16,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >           'unsigned int S::m', at offset 0 (in bits)
>> >> >
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
>> >> >index 0d30ef39..6ade5bdf 100644
>> >> >--- a/tests/data/test-diff-filter/test18-report.txt
>> >> >+++ b/tests/data/test-diff-filter/test18-report.txt
>> >> >@@ -14,4 +14,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >
>> >> >
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
>> >> >index f847d32e..99c14329 100644
>> >> >--- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
>> >> >+++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
>> >> >@@ -7,10 +7,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >     parameter 1 of type 'int' changed:
>> >> >       type name changed from 'int' to 'float'
>> >> >       type size hasn't changed
>> >> >-
>> >> >     parameter 2 of type 'int' changed:
>> >> >       type name changed from 'int' to 'float'
>> >> >       type size hasn't changed
>> >> >
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>> >> >index b78215b0..5def3a08 100644
>> >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>> >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
>> >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
>> >> >           '__anonymous_enum__1::c_report_stream' value '143'
>> >> >           '__anonymous_enum__1::c_unload_library' value '144'
>> >> >-
>> >> >         92 enumerator changes:
>> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
>> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
>> >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>> >> >            type size hasn't changed
>> >> >-
>> >> >            1 data member changes (1 filtered):
>> >> >             anonymous data member at offset 0 (in bits) changed from:
>> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>> >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
>> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>> >> >           type size hasn't changed
>> >> >-
>> >> >           1 data member change:
>> >> >            type of 'void ()* InitTableEntry::func' changed:
>> >> >              in pointed to type 'function type void ()':
>> >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >                type size changed from 2752 to 5504 (in bits)
>> >> >                1 data member deletion:
>> >> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>> >> >-
>> >> >                7 data member insertions:
>> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>> >> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>> >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >                        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> >
>> >> >                               2 data member deletions:
>> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>> >> >-
>> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>> >> >-
>> >> >                               1 data member change:
>> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>> >> >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 ccaf8126..3bc8f6d7 100644
>> >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
>> >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
>> >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
>> >> >           '__anonymous_enum__1::c_report_stream' value '143'
>> >> >           '__anonymous_enum__1::c_unload_library' value '144'
>> >> >-
>> >> >         92 enumerator changes:
>> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
>> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
>> >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>> >> >            type size hasn't changed
>> >> >-
>> >> >            1 data member changes (1 filtered):
>> >> >             anonymous data member at offset 0 (in bits) changed from:
>> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>> >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
>> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>> >> >           type size hasn't changed
>> >> >-
>> >> >           1 data member change:
>> >> >            type of 'void ()* InitTableEntry::func' changed:
>> >> >              in pointed to type 'function type void ()':
>> >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >                type size changed from 2752 to 5504 (in bits)
>> >> >                1 data member deletion:
>> >> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
>> >> >-
>> >> >                7 data member insertions:
>> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
>> >> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
>> >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>> >> >                               2 data member deletions:
>> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
>> >> >-
>> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
>> >> >-
>> >> >                               1 data member change:
>> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>> >> >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 44e78935..d91de66b 100644
>> >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
>> >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
>> >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
>> >> >           '__anonymous_enum__1::c_report_stream' value '143'
>> >> >           '__anonymous_enum__1::c_unload_library' value '144'
>> >> >-
>> >> >         92 enumerator changes:
>> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
>> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
>> >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>> >> >            type size hasn't changed
>> >> >-
>> >> >            1 data member changes (1 filtered):
>> >> >             anonymous data member at offset 0 (in bytes) changed from:
>> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>> >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
>> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>> >> >           type size hasn't changed
>> >> >-
>> >> >           1 data member change:
>> >> >            type of 'void ()* InitTableEntry::func' changed:
>> >> >              in pointed to type 'function type void ()':
>> >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >                type size changed from 0x158 to 0x2b0 (in bytes)
>> >> >                1 data member deletion:
>> >> >                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
>> >> >-
>> >> >                7 data member insertions:
>> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
>> >> >                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
>> >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
>> >> >                               2 data member deletions:
>> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
>> >> >-
>> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
>> >> >-
>> >> >                               1 data member change:
>> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>> >> >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 c9cb9246..306a9863 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
>> >> >@@ -116,7 +116,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
>> >> >           '__anonymous_enum__1::c_report_stream' value '143'
>> >> >           '__anonymous_enum__1::c_unload_library' value '144'
>> >> >-
>> >> >         92 enumerator changes:
>> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
>> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
>> >> >@@ -220,7 +219,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
>> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
>> >> >            type size hasn't changed
>> >> >-
>> >> >            1 data member changes (1 filtered):
>> >> >             anonymous data member at offset 0 (in bits) changed from:
>> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
>> >> >@@ -235,7 +233,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
>> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
>> >> >           type size hasn't changed
>> >> >-
>> >> >           1 data member change:
>> >> >            type of 'void ()* InitTableEntry::func' changed:
>> >> >              in pointed to type 'function type void ()':
>> >> >@@ -264,7 +261,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >                type size changed from 2752 to 5504 (in bits)
>> >> >                1 data member deletion:
>> >> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
>> >> >-
>> >> >                7 data member insertions:
>> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
>> >> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
>> >> >@@ -286,20 +282,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
>> >> >                        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> >
>> >> >                               2 data member deletions:
>> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
>> >> >-
>> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
>> >> >-
>> >> >                               1 data member change:
>> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
>> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
>> >> >diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
>> >> >index 08692c1e..22e614d8 100644
>> >> >--- a/tests/data/test-diff-filter/test36-report-0.txt
>> >> >+++ b/tests/data/test-diff-filter/test36-report-0.txt
>> >> >@@ -13,7 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >            type size hasn't changed
>> >> >
>> >> >
>> >> >-
>> >> >   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
>> >> >     parameter 1 of type 'S*' has sub-type changes:
>> >> >       in pointed to type 'struct S' at test36-2-v1.c:6:1:
>> >> >@@ -23,11 +22,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >            type name changed from 'int' to 'unsigned int'
>> >> >            type size hasn't changed
>> >> >
>> >> >-
>> >> >          type of 'int S::m1' changed:
>> >> >            type name changed from 'int' to 'unsigned int'
>> >> >            type size hasn't changed
>> >> >
>> >> >
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
>> >> >index 94a0551d..d40a1374 100644
>> >> >--- a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
>> >> >+++ b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
>> >> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >   type size changed from 32 to 64 (in bits)
>> >> >   1 data member insertion:
>> >> >     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
>> >> >-
>> >> >   one impacted interface:
>> >> >     function void fn(C&)
>> >> >diff --git a/tests/data/test-diff-filter/test7-report.txt b/tests/data/test-diff-filter/test7-report.txt
>> >> >index 7e3a4d47..26933033 100644
>> >> >--- a/tests/data/test-diff-filter/test7-report.txt
>> >> >+++ b/tests/data/test-diff-filter/test7-report.txt
>> >> >@@ -7,7 +7,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >     return type changed:
>> >> >       type name changed from 'return_type' to 'other_return_type'
>> >> >       type size hasn't changed
>> >> >-
>> >> >       no data member change (1 filtered);
>> >> >
>> >> >
>> >> >diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>> >> >index 05d6fcad..873a84cd 100644
>> >> >--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>> >> >+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
>> >> >@@ -54,9 +54,7 @@
>> >> >                                                   struct std::__detail::_List_node_base
>> >> >                                                 2 data member deletions:
>> >> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
>> >> >-
>> >> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
>> >> >-
>> >> >                                                 1 data member insertion:
>> >> >                                                   'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
>> >> >                                               and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
>> >> >diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>> >> >index c227fa5c..a0cc67c2 100644
>> >> >--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>> >> >+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
>> >> >@@ -10,7 +10,6 @@
>> >> >           type size hasn't changed
>> >> >           1 enumerator insertion:
>> >> >             '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
>> >> >-
>> >> >           1 enumerator change:
>> >> >             '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
>> >> >
>> >> >@@ -34,7 +33,6 @@
>> >> >           type size hasn't changed
>> >> >           1 enumerator insertion:
>> >> >             '__anonymous_enum__1::ssl_kea_ecdh_psk' value '5'
>> >> >-
>> >> >           1 enumerator change:
>> >> >             '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1
>> >> >
>> >> >@@ -52,7 +50,6 @@
>> >> >                  type size hasn't changed
>> >> >                  1 enumerator deletion:
>> >> >                    '__anonymous_enum__::ssl_auth_rsa' value '1'
>> >> >-
>> >> >                  7 enumerator insertions:
>> >> >                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
>> >> >                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
>> >> >@@ -114,7 +111,6 @@
>> >> >                                              type size hasn't changed
>> >> >                                              1 enumerator insertion:
>> >> >                                                '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
>> >> >-
>> >> >                                              1 enumerator change:
>> >> >                                                '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
>> >> >
>> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
>> >> >index bf081f52..70b41ddd 100644
>> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
>> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
>> >> >@@ -25,7 +25,6 @@
>> >> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
>> >> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>> >> >           type size hasn't changed
>> >> >-
>> >> >           7 enumerator deletions:
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>> >> >@@ -34,7 +33,6 @@
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>> >> >-
>> >> >           9 enumerator insertions:
>> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
>> >> >index 7b86b964..0b909f90 100644
>> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
>> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
>> >> >@@ -25,7 +25,6 @@
>> >> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
>> >> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>> >> >           type size hasn't changed
>> >> >-
>> >> >           7 enumerator deletions:
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>> >> >@@ -34,7 +33,6 @@
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>> >> >-
>> >> >           9 enumerator insertions:
>> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>> >> >index 3d20caf1..c247ef95 100644
>> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
>> >> >@@ -239,15 +239,10 @@
>> >> >                                                  type size changed from 1280 to 256 (in bits)
>> >> >                                                  5 data member deletions:
>> >> >                                                    'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
>> >> >-
>> >> >                                                    'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
>> >> >-
>> >> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
>> >> >-
>> >> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
>> >> >-
>> >> >                                                    'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
>> >> >-
>> >> >                                                  1 data member change:
>> >> >                                                   type of 'SSL* RedsStream::ssl' changed:
>> >> >                                                     in pointed to type 'typedef SSL' at reds_stream.h:32:1:
>> >> >@@ -257,193 +252,99 @@
>> >> >                                                         type size changed from 5504 to 0 (in bits)
>> >> >                                                         94 data member deletions:
>> >> >                                                           'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
>> >> >-
>> >> >                                                           'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
>> >> >-
>> >> >                                                           'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
>> >> >-
>> >> >                                                           'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
>> >> >-
>> >> >                                                           'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
>> >> >-
>> >> >                                                           'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
>> >> >-
>> >> >                                                           'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
>> >> >-
>> >> >                                                           'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
>> >> >-
>> >> >                                                           'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
>> >> >-
>> >> >                                                           'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
>> >> >-
>> >> >                                                           'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
>> >> >-
>> >> >                                                           'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
>> >> >-
>> >> >                                                           'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
>> >> >-
>> >> >                                                           'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
>> >> >-
>> >> >                                                           'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
>> >> >-
>> >> >                                                           'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
>> >> >-
>> >> >                                                           'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
>> >> >-
>> >> >                                                           'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
>> >> >-
>> >> >                                                           'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
>> >> >-
>> >> >                                                           'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
>> >> >-
>> >> >                                                           'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
>> >> >-
>> >> >                                                           'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
>> >> >-
>> >> >                                                           'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
>> >> >-
>> >> >                                                           'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
>> >> >-
>> >> >                                                           'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
>> >> >-
>> >> >                                                           'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
>> >> >-
>> >> >                                                           'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
>> >> >-
>> >> >                                                           'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
>> >> >-
>> >> >                                                           'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
>> >> >-
>> >> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
>> >> >-
>> >> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
>> >> >-
>> >> >                                                           'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
>> >> >-
>> >> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
>> >> >-
>> >> >                                                           'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
>> >> >-
>> >> >                                                           'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
>> >> >-
>> >> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
>> >> >-
>> >> >                                                           'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
>> >> >-
>> >> >                                                           'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
>> >> >-
>> >> >                                                           'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
>> >> >-
>> >> >                                                           'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
>> >> >-
>> >> >                                                           'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
>> >> >-
>> >> >                                                           'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
>> >> >-
>> >> >                                                           'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
>> >> >-
>> >> >                                                           'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
>> >> >-
>> >> >                                                           'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
>> >> >-
>> >> >                                                           'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
>> >> >-
>> >> >                                                           'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
>> >> >-
>> >> >                                                           'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
>> >> >-
>> >> >                                                           'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
>> >> >-
>> >> >                                                           'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
>> >> >-
>> >> >                                                           'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
>> >> >-
>> >> >                                                           'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
>> >> >-
>> >> >                                                           'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
>> >> >-
>> >> >                                                           'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
>> >> >-
>> >> >                                                           'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
>> >> >-
>> >> >                                                           'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
>> >> >-
>> >> >                                                           'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
>> >> >-
>> >> >                                                           'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
>> >> >-
>> >> >                                                           'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
>> >> >-
>> >> >                                                           'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
>> >> >-
>> >> >                                                           'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
>> >> >-
>> >> >                                                           'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
>> >> >-
>> >> >                                                           'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
>> >> >-
>> >> >                                                           'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
>> >> >-
>> >> >                                                           'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
>> >> >-
>> >> >                                                           'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
>> >> >-
>> >> >                                                           'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
>> >> >-
>> >> >                                                           'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
>> >> >-
>> >> >                                                           'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
>> >> >-
>> >> >                                                           'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
>> >> >-
>> >> >                                                           'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
>> >> >-
>> >> >                                                           'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
>> >> >-
>> >> >                                                           'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
>> >> >-
>> >> >                                                           'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
>> >> >-
>> >> >                                                           'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
>> >> >-
>> >> >                                                           'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
>> >> >-
>> >> >                                                           'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
>> >> >-
>> >> >                                                           'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
>> >> >-
>> >> >                                                           'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
>> >> >-
>> >> >                                                           'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
>> >> >-
>> >> >                                                           'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
>> >> >-
>> >> >                                                           'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
>> >> >-
>> >> >                                                           'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
>> >> >-
>> >> >                                                           'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
>> >> >-
>> >> >                                                           'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
>> >> >-
>> >> >                                                           'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
>> >> >-
>> >> >                                                           'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
>> >> >-
>> >> >                                                           'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
>> >> >-
>> >> >                                                           'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
>> >> >-
>> >> >                                                           'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
>> >> >-
>> >> >                                                           'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
>> >> >-
>> >> >                                                           'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
>> >> >-
>> >> >                                                           'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
>> >> >-
>> >> >                                                           'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
>> >> >-
>> >> >                                                   and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
>> >> >
>> >> >
>> >> >@@ -558,7 +459,6 @@
>> >> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
>> >> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>> >> >           type size hasn't changed
>> >> >-
>> >> >           7 enumerator deletions:
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>> >> >@@ -567,7 +467,6 @@
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>> >> >-
>> >> >           9 enumerator insertions:
>> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
>> >> >index 75ba0a50..11cd5682 100644
>> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
>> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
>> >> >@@ -22,7 +22,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
>> >> >   'enum __anonymous_enum__2 at spice.h:471:1' changed:
>> >> >     type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
>> >> >     type size hasn't changed
>> >> >-
>> >> >     7 enumerator deletions:
>> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
>> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
>> >> >@@ -31,7 +30,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
>> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
>> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
>> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
>> >> >-
>> >> >     9 enumerator insertions:
>> >> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
>> >> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
>> >> >@@ -48,7 +46,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
>> >> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
>> >> >   'typedef spice_image_compression_t at spice.h:479:1' changed:
>> >> >     typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
>> >> >-
>> >> >     2 impacted interfaces:
>> >> >       function spice_image_compression_t spice_server_get_image_compression(SpiceServer*)
>> >> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
>> >> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>> >> >index f8e60b50..d0381ce5 100644
>> >> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>> >> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
>> >> >@@ -60,7 +60,6 @@
>> >> >         type size hasn't changed
>> >> >         1 enumerator insertion:
>> >> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
>> >> >-
>> >> >         1 enumerator change:
>> >> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
>> >> >
>> >> >@@ -129,7 +128,6 @@
>> >> >
>> >> >
>> >> >
>> >> >-
>> >> >                1 member function deletion:
>> >> >                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
>> >> >
>> >> >@@ -138,11 +136,8 @@
>> >> >
>> >> >                3 data member deletions:
>> >> >                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
>> >> >-
>> >> >                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
>> >> >-
>> >> >                  '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) (by +128 bits)
>> >> >                 type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed:
>> >> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>> >> >index 10816705..89c8efa3 100644
>> >> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>> >> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
>> >> >@@ -31,7 +31,6 @@
>> >> >         type size hasn't changed
>> >> >         1 enumerator insertion:
>> >> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
>> >> >-
>> >> >         1 enumerator change:
>> >> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
>> >> >
>> >> >diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
>> >> >index 8f5d0b6b..c39851d3 100644
>> >> >--- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
>> >> >+++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
>> >> >@@ -7,14 +7,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >     return type changed:
>> >> >       type name changed from 'int' to 'float'
>> >> >       type size hasn't changed
>> >> >-
>> >> >     parameter 1 of type 'int' changed:
>> >> >       type name changed from 'int' to 'float'
>> >> >       type size hasn't changed
>> >> >-
>> >> >     parameter 2 of type 'int' changed:
>> >> >       type name changed from 'int' to 'float'
>> >> >       type size hasn't changed
>> >> >
>> >> >
>> >> >-
>> >> >diff --git a/tests/data/test-diff-suppr/test35-leaf-report-0.txt b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
>> >> >index 411cc1b4..244455ae 100644
>> >> >--- a/tests/data/test-diff-suppr/test35-leaf-report-0.txt
>> >> >+++ b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
>> >> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >   type size changed from 32 to 64 (in bits)
>> >> >   1 data member insertion:
>> >> >     'char leaf::m1', at offset 32 (in bits) at test35-leaf-v1.cc:8:1
>> >> >-
>> >> >   one impacted interface:
>> >> >     function void fn(C&)
>> >> >diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>> >> >index b12a8a61..f286cc7b 100644
>> >> >--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>> >> >+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
>> >> >@@ -7,7 +7,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >   type size changed from 32 to 64 (in bits)
>> >> >   1 data member insertion:
>> >> >     'char leaf1::m1', at offset 32 (in bits) at test36-leaf-v1.cc:7:1
>> >> >-
>> >> >   3 impacted interfaces:
>> >> >     function void interface1(struct_type*)
>> >> >     function void interface2(struct_type&)
>> >> >@@ -20,7 +19,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
>> >> >    and size changed from 32 to 64 (in bits) (by +32 bits)
>> >> >    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
>> >> >-
>> >> >   3 impacted interfaces:
>> >> >     function void interface1(struct_type*)
>> >> >     function void interface2(struct_type&)
>> >> >diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
>> >> >index 4b1681bc..d772bd1d 100644
>> >> >--- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
>> >> >+++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
>> >> >@@ -8,7 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >       type size hasn't changed
>> >> >       1 enumerator insertion:
>> >> >         'EnumType1::ee3_inserted' value '3'
>> >> >-
>> >> >       1 enumerator change:
>> >> >         'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1
>> >> >
>> >> >@@ -18,7 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
>> >> >       type size hasn't changed
>> >> >       1 enumerator insertion:
>> >> >         'EnumType0::e3_inserted' value '3'
>> >> >-
>> >> >       1 enumerator change:
>> >> >         'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1
>> >> >
>> >> >--
>> >> >2.25.1.481.gfbce0eb801-goog
>> >> >
>> >> >

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output.
  2020-03-16 13:44           ` Matthias Maennich
@ 2020-03-16 14:32             ` Giuliano Procida
  0 siblings, 0 replies; 21+ messages in thread
From: Giuliano Procida @ 2020-03-16 14:32 UTC (permalink / raw)
  To: Matthias Maennich; +Cc: libabigail, Dodji Seketeli, kernel-team

Hi.

On Mon, 16 Mar 2020 at 13:45, Matthias Maennich <maennich@google.com> wrote:
>
> On Mon, Mar 16, 2020 at 01:04:31PM +0000, Giuliano Procida wrote:
> >Hi.
> >
> >On Mon, 16 Mar 2020 at 12:29, Matthias Maennich <maennich@google.com> wrote:
> >>
> >> On Mon, Mar 16, 2020 at 10:51:22AM +0000, Giuliano Procida wrote:
> >> >Hi Matthias.
> >> >
> >> >On Sat, 14 Mar 2020 at 20:09, Matthias Maennich <maennich@google.com> wrote:
> >> >>
> >> >> On Thu, Mar 12, 2020 at 06:30:34AM +0000, Android Kernel Team wrote:
> >> >> >There is distributed responsibility for horizontal and vertical
> >> >> >whitespace in the reporting code with indent and new line control
> >> >> >information being manipulated by and passed in and out of functions.
> >> >> >Occasionally, this information is ignored or incorrect and the code
> >> >> >tends to err on the side of more rather than fewer new lines.
> >> >> >
> >> >> >The outcome is that abidiff output sometimes contains extra blank
> >> >> >lines which can be confusing.
> >> >> >
> >> >> >This patch eliminates some of the more obvious cases:
> >> >> >
> >> >> >   - after data member deletions
> >> >> >   - in enumerator change lists
> >> >> >   - after "type size hasn't changed"
> >> >> >   - before listing impacted interfaces
> >> >> >
> >> >> >The patch cleans up the reporting of data members. The code will
> >> >> >either emit indentation, a short description and a new line or do
> >> >> >nothing at all.
> >> >> >
> >> >> >The patch also removes some stray location reporting code for array
> >> >> >diffs which would have produced some oddly placed output. I could not
> >> >> >get this code to trigger as loc = decl->get_location() was never
> >> >> >present on the array decls in question.
> >> >> >
> >> >> >       * src/abg-default-reporter.cc (report): In the enum_diff
> >> >> >       override, simplify new line logic; emit just one
> >> >> >       blank line after each enum. In the array_diff override, remove
> >> >> >       stray location reporting which doesn't appear to ever trigger;
> >> >> >       fix new line logic. In the class_or_union_diff override,
> >> >> >       simplify new line logic for deleted members; pass indentation
> >> >> >       to represent_data_member.
> >> >> >       * src/abg-leaf-reporter.cc (report): In the array_diff
> >> >> >       override, remove stray location reporting which doesn't appear
> >> >> >       to ever trigger; fix new line handling. In the
> >> >> >       class_or_union_diff override, simplify new line logic for
> >> >> >       deleted members; pass indentation to represent_data_member.
> >> >> >       * src/abg-reporter-priv.cc (represent_data_member): Handle
> >> >> >       indentation; fix new line logic.
> >> >> >       (report_size_and_alignment_changes): Fix new line logic
> >> >> >       for "type size hasn't changed" message; simplify new line
> >> >> >       logic.
> >> >> >       (report_name_size_and_alignment_changes): Fix new line logic.
> >> >> >       (maybe_report_interfaces_impacted_by_diff) Remove new line
> >> >> >       prefix code and new_line_prefix argument.
> >> >> >       * src/abg-reporter-priv.h (represent_data_member): Add indent
> >> >> >       argument.
> >> >> >       (maybe_report_interfaces_impacted_by_diff) Remove
> >> >> >       new_line_prefix argument.
> >> >> >       * tests/data/test-*/*report*.txt: Remove some blank lines.
> >> >> >
> >> >> >Signed-off-by: Giuliano Procida <gprocida@google.com>
> >> >> >---
> >> >> > src/abg-default-reporter.cc                   |  43 +++-----
> >> >> > src/abg-leaf-reporter.cc                      |  27 ++---
> >> >> > src/abg-reporter-priv.cc                      |  34 +++---
> >> >> > src/abg-reporter-priv.h                       |   9 +-
> >> >> > .../test5-fn-changed-report-0.txt             |   1 -
> >> >> > .../test5-fn-changed-report-1.txt             |   1 -
> >> >> > .../test6-var-changed-report-0.txt            |   1 -
> >> >> > .../test6-var-changed-report-1.txt            |   1 -
> >> >> > .../test7-fn-changed-report-0.txt             |   1 -
> >> >> > .../test-abidiff-exit/test-leaf3-report.txt   |   1 -
> >> >> > .../test-loc-with-locs-report.txt             |   1 -
> >> >> > .../test-loc-without-locs-report.txt          |   1 -
> >> >> > .../test-abidiff/test-PR18791-report0.txt     |   2 -
> >> >> > tests/data/test-abidiff/test-enum0-report.txt |   1 -
> >> >> > tests/data/test-abidiff/test-enum1-report.txt |   1 -
> >> >> > .../data/test-abidiff/test-struct1-report.txt |   1 -
> >> >> > .../PR25058-liblttng-ctl-report-1.txt         |   5 -
> >> >> > tests/data/test-diff-dwarf/test13-report.txt  |   1 -
> >> >> > .../test-diff-dwarf/test38-union-report-0.txt |   1 -
> >> >> > .../data/test-diff-dwarf/test40-report-0.txt  |   2 -
> >> >> > .../test42-PR21296-clanggcc-report0.txt       |   1 -
> >> >> > .../test43-PR22913-report-0.txt               |   1 -
> >> >> > tests/data/test-diff-filter/test10-report.txt |   1 -
> >> >> > tests/data/test-diff-filter/test18-report.txt |   1 -
> >> >> > ...st23-redundant-fn-parm-change-report-0.txt |   2 -
> >> >> > .../test30-pr18904-rvalueref-report0.txt      |   8 --
> >> >> > .../test30-pr18904-rvalueref-report1.txt      |   8 --
> >> >> > .../test30-pr18904-rvalueref-report2.txt      |   8 --
> >> >> > .../test35-pr18754-no-added-syms-report-0.txt |   8 --
> >> >> > .../data/test-diff-filter/test36-report-0.txt |   3 -
> >> >> > .../test42-leaf-report-output-0.txt           |   1 -
> >> >> > tests/data/test-diff-filter/test7-report.txt  |   1 -
> >> >> > ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt |   2 -
> >> >> > .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt   |   4 -
> >> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-0.txt |   2 -
> >> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt |   2 -
> >> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 101 ------------------
> >> >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt |   3 -
> >> >> > ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt |   5 -
> >> >> > ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt |   1 -
> >> >> > .../test10-changed-parm-c-report-0.txt        |   3 -
> >> >> > .../test-diff-suppr/test35-leaf-report-0.txt  |   1 -
> >> >> > .../test-diff-suppr/test36-leaf-report-0.txt  |   2 -
> >> >> > .../test41-enumerator-changes-report-0.txt    |   2 -
> >> >> > 44 files changed, 42 insertions(+), 264 deletions(-)
> >> >> >
> >> >> >diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
> >> >> >index 3bfdfbc4..a0b9eeea 100644
> >> >> >--- a/src/abg-default-reporter.cc
> >> >> >+++ b/src/abg-default-reporter.cc
> >> >> >@@ -130,16 +130,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >> >> >          i != sorted_deleted_enumerators.end();
> >> >> >          ++i)
> >> >> >       {
> >> >> >-        if (i != sorted_deleted_enumerators.begin())
> >> >> >-          out << "\n";
> >> >> >         out << indent
> >> >> >             << "  '"
> >> >> >             << i->get_qualified_name()
> >> >> >             << "' value '"
> >> >> >             << i->get_value()
> >> >> >             << "'";
> >> >> >+        out << "\n";
> >> >> >       }
> >> >> >-      out << "\n\n";
> >> >> >     }
> >> >> >   if (numins)
> >> >> >     {
> >> >> >@@ -151,16 +149,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >> >> >          i != sorted_inserted_enumerators.end();
> >> >> >          ++i)
> >> >> >       {
> >> >> >-        if (i != sorted_inserted_enumerators.begin())
> >> >> >-          out << "\n";
> >> >> >         out << indent
> >> >> >             << "  '"
> >> >> >             << i->get_qualified_name()
> >> >> >             << "' value '"
> >> >> >             << i->get_value()
> >> >> >             << "'";
> >> >> >+        out << "\n";
> >> >> >       }
> >> >> >-      out << "\n\n";
> >> >> >     }
> >> >> >   if (numchanges)
> >> >> >     {
> >> >> >@@ -173,8 +169,6 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >> >> >          i != sorted_changed_enumerators.end();
> >> >> >          ++i)
> >> >> >       {
> >> >> >-        if (i != sorted_changed_enumerators.begin())
> >> >> >-          out << "\n";
> >> >> >         out << indent
> >> >> >             << "  '"
> >> >> >             << i->first.get_qualified_name()
> >> >> >@@ -182,13 +176,14 @@ default_reporter::report(const enum_diff& d, ostream& out,
> >> >> >             << i->first.get_value() << "' to '"
> >> >> >             << i->second.get_value() << "'";
> >> >> >         report_loc_info(second, *d.context(), out);
> >> >> >+        out << "\n";
> >> >> >       }
> >> >> >-      out << "\n\n";
> >> >> >     }
> >> >> >
> >> >> >+  out << "\n";
> >> >> >+
> >> >> >   if (d.context()->show_leaf_changes_only())
> >> >> >-    maybe_report_interfaces_impacted_by_diff(&d, out, indent,
> >> >> >-                                           /*new_line_prefix=*/false);
> >> >> >+    maybe_report_interfaces_impacted_by_diff(&d, out, indent);
> >> >> >
> >> >> >   d.reported_once(true);
> >> >> > }
> >> >> >@@ -392,7 +387,7 @@ default_reporter::report(const pointer_diff& d, ostream& out,
> >> >> >       : string("void");
> >> >> >
> >> >> >       out << indent
> >> >> >-        << "in pointed to type '" <<  repr << "'";
> >> >> >+        << "in pointed to type '" << repr << "'";
> >> >> >       report_loc_info(dif->second_subject(), *d.context(), out);
> >> >> >       out << ":\n";
> >> >> >       dif->report(out, indent + "  ");
> >> >> >@@ -673,12 +668,12 @@ default_reporter::report(const array_diff& d, ostream& out,
> >> >> >       dif->report(out, indent + "  ");
> >> >> >     }
> >> >> >
> >> >> >-  report_name_size_and_alignment_changes(d.first_array(),
> >> >> >-                                       d.second_array(),
> >> >> >-                                       d.context(),
> >> >> >-                                       out, indent,
> >> >> >-                                       /*new line=*/false);
> >> >> >-  report_loc_info(d.second_array(), *d.context(), out);
> >> >> >+  if (report_name_size_and_alignment_changes(d.first_array(),
> >> >> >+                                           d.second_array(),
> >> >> >+                                           d.context(),
> >> >> >+                                           out, indent,
> >> >> >+                                           /*new line=*/false))
> >> >>
> >> >> Though it is not required here, I would prefer braces for readability.
> >> >
> >> >Agreed, I think it's sensible here. In other places, with the coding
> >> >style in use, we'd end up with:
> >> >
> >> >if (emitted)
> >> >  {
> >> >    out << "\n";
> >> >  }
> >>
> >> Let's take this one at this location.
> >
> >I've been able to eliminate it.
> >
> >> >
> >> >which is pretty verbose. The following would be fine by me:
> >> >
> >> >if (emitted) out << "\n";
> >> >
> >> >Lastly, short but ugly:
> >> >
> >> >  emitted && (out << "\n");
> >> >
> >> >> >+    out << "\n";
> >> >> > }
> >> >> >
> >> >> > /// Generates a report for an intance of @ref base_diff.
> >> >> >@@ -1014,7 +1009,6 @@ default_reporter::report(const class_or_union_diff& d,
> >> >> >         sort_data_members
> >> >> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
> >> >> >            sorted_dms);
> >> >> >-        bool emitted = false;
> >> >> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
> >> >> >              i != sorted_dms.end();
> >> >> >              ++i)
> >> >> >@@ -1024,14 +1018,8 @@ default_reporter::report(const class_or_union_diff& d,
> >> >> >             ABG_ASSERT(data_mem);
> >> >> >             if (get_member_is_static(data_mem))
> >> >> >               continue;
> >> >> >-            if (emitted)
> >> >> >-              out << "\n";
> >> >> >-            out << indent << "  ";
> >> >> >-            represent_data_member(data_mem, ctxt, out);
> >> >> >-            emitted = true;
> >> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >> >> >           }
> >> >> >-        if (emitted)
> >> >> >-          out << "\n";
> >> >> >       }
> >> >> >
> >> >> >       //report insertions
> >> >> >@@ -1052,8 +1040,7 @@ default_reporter::report(const class_or_union_diff& d,
> >> >> >             var_decl_sptr data_mem =
> >> >> >               dynamic_pointer_cast<var_decl>(*i);
> >> >> >             ABG_ASSERT(data_mem);
> >> >> >-            out << indent << "  ";
> >> >> >-            represent_data_member(data_mem, ctxt, out);
> >> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >> >> >           }
> >> >> >       }
> >> >> >
> >> >> >diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
> >> >> >index bbd51dcb..f706bd21 100644
> >> >> >--- a/src/abg-leaf-reporter.cc
> >> >> >+++ b/src/abg-leaf-reporter.cc
> >> >> >@@ -78,7 +78,7 @@ report_diffs(const reporter_base& r,
> >> >> >
> >> >> >         string n = (*i)->first_subject()->get_pretty_representation();
> >> >> >
> >> >> >-        out << indent << "'" << n ;
> >> >> >+        out << indent << "'" << n;
> >> >> >
> >> >> >         report_loc_info((*i)->first_subject(),
> >> >> >                         *(*i)->context(), out);
> >> >> >@@ -425,11 +425,12 @@ leaf_reporter::report(const array_diff& d,
> >> >> >                                                   d.second_array(),
> >> >> >                                                   "array type");
> >> >> >
> >> >> >-  report_name_size_and_alignment_changes(d.first_array(),
> >> >> >-                                       d.second_array(),
> >> >> >-                                       d.context(),
> >> >> >-                                       out, indent,
> >> >> >-                                       /*new line=*/false);
> >> >> >+  if (report_name_size_and_alignment_changes(d.first_array(),
> >> >> >+                                           d.second_array(),
> >> >> >+                                           d.context(),
> >> >> >+                                           out, indent,
> >> >> >+                                           /*new line=*/false))
> >> >>
> >> >> As above.
> >> >
> >> >Agreed.
> >> >
> >> >> >+    out << "\n";
> >> >> >
> >> >> >   diff_sptr dif = d.element_type_diff();
> >> >> >   if (diff_to_be_reported(dif.get()))
> >> >> >@@ -441,8 +442,6 @@ leaf_reporter::report(const array_diff& d,
> >> >> >       dif->report(out, indent + "  ");
> >> >> >     }
> >> >> >
> >> >> >-  report_loc_info(d.second_array(), *d.context(), out);
> >> >> >-
> >> >> >   maybe_report_interfaces_impacted_by_diff(&d, out, indent);
> >> >> > }
> >> >> >
> >> >> >@@ -592,7 +591,6 @@ leaf_reporter::report(const class_or_union_diff& d,
> >> >> >         sort_data_members
> >> >> >           (d.class_or_union_diff::get_priv()->deleted_data_members_,
> >> >> >            sorted_dms);
> >> >> >-        bool emitted = false;
> >> >> >         for (vector<decl_base_sptr>::const_iterator i = sorted_dms.begin();
> >> >> >              i != sorted_dms.end();
> >> >> >              ++i)
> >> >> >@@ -602,14 +600,8 @@ leaf_reporter::report(const class_or_union_diff& d,
> >> >> >             ABG_ASSERT(data_mem);
> >> >> >             if (get_member_is_static(data_mem))
> >> >> >               continue;
> >> >> >-            if (emitted)
> >> >> >-              out << "\n";
> >> >> >-            out << indent << "  ";
> >> >> >-            represent_data_member(data_mem, ctxt, out);
> >> >> >-            emitted = true;
> >> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >> >> >           }
> >> >> >-        if (emitted)
> >> >> >-          out << "\n";
> >> >> >       }
> >> >> >
> >> >> >       //report insertions
> >> >> >@@ -630,8 +622,7 @@ leaf_reporter::report(const class_or_union_diff& d,
> >> >> >             var_decl_sptr data_mem =
> >> >> >               dynamic_pointer_cast<var_decl>(*i);
> >> >> >             ABG_ASSERT(data_mem);
> >> >> >-            out << indent << "  ";
> >> >> >-            represent_data_member(data_mem, ctxt, out);
> >> >> >+            represent_data_member(data_mem, ctxt, out, indent + "  ");
> >> >> >           }
> >> >> >       }
> >> >> >
> >> >> >diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc
> >> >> >index fbac85f8..948a32fc 100644
> >> >> >--- a/src/abg-reporter-priv.cc
> >> >> >+++ b/src/abg-reporter-priv.cc
> >> >> >@@ -242,16 +242,19 @@ represent(const diff_context& ctxt,
> >> >> > /// @param ctxt the current diff context.
> >> >> > ///
> >> >> > /// @param out the output stream to send the representation to
> >> >> >+///
> >> >> >+/// @param indent the indentation string to use for the change report.
> >> >> > void
> >> >> > represent_data_member(var_decl_sptr d,
> >> >> >                     const diff_context_sptr& ctxt,
> >> >> >-                    ostream& out)
> >> >> >+                    ostream& out,
> >> >> >+                    const string& indent)
> >> >>
> >> >> I would prefer out parameters after all input parameters. Since this is
> >> >> a private implementation detail, we should be good to change that
> >> >> interface.
> >> >
> >> >I looked at the existing functions and copied an existing order for
> >> >consistency. out and indent belong together morally as well (writer
> >> >monad). If we switch to an indenting ostream, this issue goes away.
> >> >
> >> >> > {
> >> >> >   if (!is_data_member(d)
> >> >> >       || (!get_member_is_static(d) && !get_data_member_is_laid_out(d)))
> >> >> >     return;
> >> >> >
> >> >> >-  out << "'" << d->get_pretty_representation() << "'";
> >> >> >+  out << indent << "'" << d->get_pretty_representation() << "'";
> >> >> >   if (!get_member_is_static(d))
> >> >> >     {
> >> >> >       // Do not emit offset information for data member of a union
> >> >> >@@ -262,8 +265,8 @@ represent_data_member(var_decl_sptr d,
> >> >> >                           get_data_member_offset(d),
> >> >> >                           *ctxt, out);
> >> >> >       report_loc_info(d, *ctxt, out);
> >> >> >-      out << "\n";
> >> >> >     }
> >> >> >+  out << "\n";
> >> >> > }
> >> >> >
> >> >> > /// If a given @ref var_diff node carries a data member change in
> >> >> >@@ -806,7 +809,10 @@ report_size_and_alignment_changes(type_or_decl_base_sptr  first,
> >> >> >       } // end if (fs != ss || fdc != sdc)
> >> >> >       else
> >> >> >       if (ctxt->show_relative_offset_changes())
> >> >> >-        out << indent << "type size hasn't changed\n";
> >> >> >+        {
> >> >> >+          out << indent << "type size hasn't changed";
> >> >> >+          n = true;
> >> >> >+        }
> >> >> >     }
> >> >> >   if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY)
> >> >> >       && (fa != sa))
> >> >> >@@ -819,9 +825,7 @@ report_size_and_alignment_changes(type_or_decl_base_sptr   first,
> >> >> >       n = true;
> >> >> >     }
> >> >> >
> >> >> >-  if (n)
> >> >> >-    return true;
> >> >> >-  return false;
> >> >> >+  return n;
> >> >>
> >> >> We should give 'n' a better name. Not necessarily part of this change.
> >> >
> >> >Acknowledged. If we are going to review newline handling we should do
> >> >it everywhere and consistently. Ideally we should get to the point
> >> >where we don't have to pass information about newlines around (this
> >> >will likely be possible with an indenting ostream but may be doable
> >> >even without that).
> >> >
> >> >> > }
> >> >> >
> >> >> > /// @param tod the type or declaration to emit loc info about
> >> >> >@@ -910,8 +914,8 @@ report_name_size_and_alignment_changes(decl_base_sptr              first,
> >> >> >       }
> >> >> >     }
> >> >> >
> >> >> >-  nl |= report_size_and_alignment_changes(first, second, ctxt,
> >> >> >-                                        out, indent, nl);
> >> >> >+  nl = report_size_and_alignment_changes(first, second, ctxt,
> >> >> >+                                         out, indent, nl);
> >> >> >   return nl;
> >> >> > }
> >> >> >
> >> >> >@@ -1366,14 +1370,10 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
> >> >> > /// @param out the output stream to report to.
> >> >> > ///
> >> >> > /// @param indent the white space string to use for indentation.
> >> >> >-///
> >> >> >-/// @param new_line_prefix if set to true, it means there is going to
> >> >> >-/// be a new line emitted before the report.
> >> >> > void
> >> >> > maybe_report_interfaces_impacted_by_diff(const diff   *d,
> >> >> >                                        ostream        &out,
> >> >> >-                                       const string   &indent,
> >> >> >-                                       bool           new_line_prefix)
> >> >> >+                                       const string   &indent)
> >> >> > {
> >> >> >   const diff_context_sptr &ctxt = d->context();
> >> >> >   const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff();
> >> >> >@@ -1395,9 +1395,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
> >> >> >   vector<type_or_decl_base_sptr> sorted_impacted_interfaces;
> >> >> >   sort_artifacts_set(*impacted_artifacts, sorted_impacted_interfaces);
> >> >> >
> >> >> >-  if (new_line_prefix)
> >> >> >-    out << '\n';
> >> >> >-
> >> >>
> >> >> I think we need to keep this newline. It separates the cause (the leaf
> >> >> node change) from the impacted interfaces (the top level nodes).
> >> >
> >> >I disagree.
> >> >
> >> >I think the "impacted interfaces" block should be indented w.r.t leaf
> >> >node change's introductory text or separated from the whole node
> >> >change section by an extra new line, but not both. I'd prefer the
> >> >former as this should be a parent-child relationship in the text
> >> >output tree rather than a sibling one.
> >> >
> >> >Phrased another way, the text would be equally meaningful like this
> >> >(adapting tests/data/test-diff-filter/test42-leaf-report-output-0.txt;
> >> >though abitool.py's short report would need a tweak; it needs a tweak
> >>
> >> Just for the context: abitool.py we use in Android to monitor the kernel
> >> ABI with libabigail :-) See
> >> https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/
> >>
> >> >anyway for the case of 1 impacted interface):
> >> >
> >> >'struct leaf at test42-leaf-report-v0.cc:4:1' changed:
> >> >  one impacted interface:
> >> >    function void fn(C&)
> >> > type size changed from 32 to 64 (in bits)
> >> >  1 data member insertion:
> >> >    'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
> >> >
> >>
> >> The only concern I have and that I would like to see addressed is that
> >> the list of impacted interfaces can be considerably long (thousands for
> >> a central struct). That can get difficult to work with if this is
> >> 'embedded' there.
> >> In order to better address abi differences like that, I would prefer the
> >> current format:
> >>
> >> # what changed
> >> 'struct leaf at test42-leaf-report-v0.cc:4:1' changed:
> >>  type size changed from 32 to 64 (in bits)
> >>   1 data member insertion:
> >>     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
> >>
> >> # impact
> >>   one impacted interface:
> >>     function void fn(C&)
> >
> >Just to clear, I wasn't advocating moving impacted interfaces up in
> >any way. I was just pointing out that it is really a child of
> >"changed" and I suppose it would be safer to prune based on
> >indentation if you are going to post-process the output.
> >
> ># untested Perl
> >$text =~ s/^( *)([^ ]* impacted interfaces?):\n(\g1 .*\n)+:/$1$2\n/g;
> >
> >Anyway, the format is (previous to my patch) looks like:
> >
> >foo changed:
> >  detailsA
> >
> >  M impacted interface(s):
> >   detailsB
> >
> >bar changed:
> >  detailsC
> >
> >  N impacted interface(s):
> >    detailsD
> >
> >We want to post-process to remove detailsB and detailsD. This is
> >equally easy so long as we just consume non-empty lines following
> >"impacted interfaces". My patch to remove the blank line between
> >detailsA/C and "impacted interfaces" doesn't change this.
>
> I definitely agree it belongs to the 'changed' block (hence the
> indentation). Yet I have the feeling the newline belongs there since the
> structural change and the impact are separable things. But I am not
> crazy picky on this and making it consistent with all the other removed
> newlines is also an agreeable way as thinking about it (as long as we
> still can truncate it properly). I like consistency :-)

[My laptop/Chrome/Gmail almost cannot take any more inline replies.]

Bah, humbug!

"impacted interface(s)" sometimes appears at deeper indentation. I've
seen this with a typedef change. This may be a consequence of that not
being treated as a leaf change...

Anyway, as there is no blank line after the impacted interfaces have
been reported in these cases, abitool.py eats too much of the report
(both before and after this patch).

We can add a blank line or enhance the tools that consume abidiff
output. There are at least 2 objections to adding a flag: we still do
all the work, possibly twice, more code complexity and tests needed.

Giuliano.

> Cheers,
> Matthias
>
> >
> >> There we can also truncate the list of impacted interfaces.
> >>
> >> Cheers,
> >> Matthias
> >>
> >> >Happy to discuss further.
> >> >
> >> >> With the above addressed, feel free to add
> >> >> Reviewed-by: Matthias Maennich <maennich@google.com>
> >> >>
> >> >> Cheers,
> >> >> Matthias
> >> >
> >> >Regards,
> >> >Giuliano.
> >> >
> >> >> >   size_t num_impacted_interfaces = impacted_artifacts->size();
> >> >> >   if (num_impacted_interfaces == 1)
> >> >> >     out << indent << "one impacted interface:\n";
> >> >> >@@ -1424,9 +1421,6 @@ maybe_report_interfaces_impacted_by_diff(const diff      *d,
> >> >> > /// @param out the output stream to report to.
> >> >> > ///
> >> >> > /// @param indent the white space string to use for indentation.
> >> >> >-///
> >> >> >-/// @param new_line_prefix if set to true, it means there is going to
> >> >> >-/// be a new line emitted before the report.
> >> >> > void
> >> >> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
> >> >> >                                        ostream                &out,
> >> >> >diff --git a/src/abg-reporter-priv.h b/src/abg-reporter-priv.h
> >> >> >index 7471c74f..04803f43 100644
> >> >> >--- a/src/abg-reporter-priv.h
> >> >> >+++ b/src/abg-reporter-priv.h
> >> >> >@@ -151,7 +151,8 @@ represent(const diff_context& ctxt,
> >> >> > void
> >> >> > represent_data_member(var_decl_sptr d,
> >> >> >                     const diff_context_sptr& ctxt,
> >> >> >-                    ostream& out);
> >> >> >+                    ostream& out,
> >> >> >+                    const string& indent);
> >> >> >
> >> >> > void
> >> >> > maybe_show_relative_offset_change(const var_diff_sptr &diff,
> >> >> >@@ -244,14 +245,12 @@ maybe_report_unreachable_type_changes(const corpus_diff& d,
> >> >> > void
> >> >> > maybe_report_interfaces_impacted_by_diff(const diff           *d,
> >> >> >                                        ostream                &out,
> >> >> >-                                       const string           &indent,
> >> >> >-                                       bool new_line_prefix = true);
> >> >> >+                                       const string           &indent);
> >> >> >
> >> >> > void
> >> >> > maybe_report_interfaces_impacted_by_diff(const diff_sptr      &d,
> >> >> >                                        ostream                &out,
> >> >> >-                                       const string           &indent,
> >> >> >-                                       bool new_line_prefix = false);
> >> >> >+                                       const string           &indent);
> >> >> >
> >> >> > } // end namespace comparison
> >> >> > } // end namespace abigail
> >> >> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
> >> >> >index 96d48ccf..04676908 100644
> >> >> >--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt
> >> >> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt
> >> >> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
> >> >> >         1 data member deletion:
> >> >> >           'unsigned char S1::m1', at offset 32 (in bits)
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
> >> >> >index 3c8c4a8f..b39f650d 100644
> >> >> >--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt
> >> >> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt
> >> >> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e
> >> >> >         1 data member deletion:
> >> >> >           'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-0.txt b/tests/data/test-abicompat/test6-var-changed-report-0.txt
> >> >> >index 5d2bd89c..f5077879 100644
> >> >> >--- a/tests/data/test-abicompat/test6-var-changed-report-0.txt
> >> >> >+++ b/tests/data/test-abicompat/test6-var-changed-report-0.txt
> >> >> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
> >> >> >       1 data member deletion:
> >> >> >         'unsigned char S1::m1', at offset 32 (in bits)
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-1.txt b/tests/data/test-abicompat/test6-var-changed-report-1.txt
> >> >> >index 697929f0..5b78c83c 100644
> >> >> >--- a/tests/data/test-abicompat/test6-var-changed-report-1.txt
> >> >> >+++ b/tests/data/test-abicompat/test6-var-changed-report-1.txt
> >> >> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app'
> >> >> >       1 data member deletion:
> >> >> >         'unsigned char S1::m1', at offset 32 (in bits) at test6-var-changed-libapp-v0.h:11:1
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
> >> >> >index 19db76e3..6a34710d 100644
> >> >> >--- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt
> >> >> >+++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt
> >> >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >       type name changed from 'float' to 'int'
> >> >> >       type size hasn't changed
> >> >> >
> >> >> >-
> >> >> >   [C] 'function void print(const Student)' has some indirect sub-type changes:
> >> >> >     parameter 1 of type 'const Student' has sub-type changes:
> >> >> >       in unqualified underlying type 'struct Student':
> >> >> >diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt
> >> >> >index 138c4b5a..7602e761 100644
> >> >> >--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt
> >> >> >+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt
> >> >> >@@ -10,7 +10,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >       type name changed from 'sto1' to 'stn1'
> >> >> >       type size hasn't changed
> >> >> >
> >> >> >-
> >> >> >   [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes:
> >> >> >     parameter 1 of type 'struct sto2' changed:
> >> >> >       type name changed from 'sto2' to 'stn2'
> >> >> >diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
> >> >> >index 53672744..bc37ff53 100644
> >> >> >--- a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
> >> >> >+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt
> >> >> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >       type size hasn't changed
> >> >> >
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
> >> >> >index 6893e3fc..56c41d79 100644
> >> >> >--- a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
> >> >> >+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt
> >> >> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >       type size hasn't changed
> >> >> >
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt
> >> >> >index 5758077d..7e16fe32 100644
> >> >> >--- a/tests/data/test-abidiff/test-PR18791-report0.txt
> >> >> >+++ b/tests/data/test-abidiff/test-PR18791-report0.txt
> >> >> >@@ -48,9 +48,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >                                          struct std::__detail::_List_node_base
> >> >> >                                        2 data member deletions:
> >> >> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
> >> >> >-
> >> >> >                                          'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
> >> >> >-
> >> >> >                                        1 data member insertion:
> >> >> >                                          'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
> >> >> >                                      and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
> >> >> >diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt
> >> >> >index c7c5a682..1cd7eaaf 100644
> >> >> >--- a/tests/data/test-abidiff/test-enum0-report.txt
> >> >> >+++ b/tests/data/test-abidiff/test-enum0-report.txt
> >> >> >@@ -3,7 +3,6 @@
> >> >> >     type size hasn't changed
> >> >> >     1 enumerator deletion:
> >> >> >       'E::e2' value '1'
> >> >> >-
> >> >> >     1 enumerator insertion:
> >> >> >       'E::e1' value '1'
> >> >> >
> >> >> >diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt
> >> >> >index f1198ef9..7e8acf80 100644
> >> >> >--- a/tests/data/test-abidiff/test-enum1-report.txt
> >> >> >+++ b/tests/data/test-abidiff/test-enum1-report.txt
> >> >> >@@ -3,7 +3,6 @@
> >> >> >     type size hasn't changed
> >> >> >     1 enumerator insertion:
> >> >> >       'E::e1' value '1'
> >> >> >-
> >> >> >     1 enumerator change:
> >> >> >       'E::e2' from value '1' to '2'
> >> >> >
> >> >> >diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt
> >> >> >index 39b71e55..e334bf1a 100644
> >> >> >--- a/tests/data/test-abidiff/test-struct1-report.txt
> >> >> >+++ b/tests/data/test-abidiff/test-struct1-report.txt
> >> >> >@@ -6,7 +6,6 @@
> >> >> >
> >> >> >     1 data member deletion:
> >> >> >       'char s0::m1', at offset 96 (in bits)
> >> >> >-
> >> >> >     1 data member insertion:
> >> >> >       'double s0::m01', at offset 128 (in bits)
> >> >> >     2 data member changes:
> >> >> >diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
> >> >> >index 29f823ec..aab271ff 100644
> >> >> >--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
> >> >> >+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt
> >> >> >@@ -100,7 +100,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >> >          type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed:
> >> >> >            type name changed from '__anonymous_union__4' to '__anonymous_union__5'
> >> >> >            type size hasn't changed
> >> >> >-
> >> >> >            3 data member changes:
> >> >> >             name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx'
> >> >> >             name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding'
> >> >> >@@ -171,7 +170,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >> >           type size changed from 35008 to 35072 (in bits)
> >> >> >           1 data member deletion:
> >> >> >             'char lttng_session::padding[12]', at offset 34912 (in bits)
> >> >> >-
> >> >> >           1 data member insertion:
> >> >> >             'union {char padding[12]; void* ptr;} lttng_session::extended', at offset 34944 (in bits)
> >> >> >
> >> >> >@@ -208,7 +206,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >> >           1 data member deletion:
> >> >> >             'bool lttng_notification::owns_elements', at offset 128 (in bits)
> >> >> >
> >> >> >-
> >> >> >   [C] 'function lttng_notification_channel_status lttng_notification_channel_subscribe(lttng_notification_channel*, const lttng_condition*)' has some indirect sub-type changes:
> >> >> >     return type changed:
> >> >> >       enum type 'enum lttng_notification_channel_status' changed, as reported earlier
> >> >> >@@ -289,7 +286,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >> >                            'op_type::AST_OP_BIN_AND' value '10'
> >> >> >                            'op_type::AST_OP_BIN_OR' value '11'
> >> >> >                            'op_type::AST_OP_BIN_XOR' value '12'
> >> >> >-
> >> >> >                          5 enumerator insertions:
> >> >> >                            'op_type::AST_OP_BIT_RSHIFT' value '6'
> >> >> >                            'op_type::AST_OP_BIT_LSHIFT' value '7'
> >> >> >@@ -319,7 +315,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables
> >> >> >                          type size hasn't changed
> >> >> >                          1 enumerator deletion:
> >> >> >                            'unary_op_type::AST_UNARY_BIN_NOT' value '4'
> >> >> >-
> >> >> >                          1 enumerator insertion:
> >> >> >                            'unary_op_type::AST_UNARY_BIT_NOT' value '4'
> >> >> >
> >> >> >diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt
> >> >> >index cf29a4fd..833879c7 100644
> >> >> >--- a/tests/data/test-diff-dwarf/test13-report.txt
> >> >> >+++ b/tests/data/test-diff-dwarf/test13-report.txt
> >> >> >@@ -12,7 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >            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 (in bits)
> >> >> >diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt
> >> >> >index f7a75df7..fd9708e6 100644
> >> >> >--- a/tests/data/test-diff-dwarf/test38-union-report-0.txt
> >> >> >+++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt
> >> >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >         type size hasn't changed
> >> >> >         1 data member deletion:
> >> >> >           'int some_union_type::m0'
> >> >> >-
> >> >> >         type changed from:
> >> >> >           union some_union_type{int m0; char m1; S m2;}
> >> >> >         to:
> >> >> >diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt
> >> >> >index d0b8c52c..f0f9e1a1 100644
> >> >> >--- a/tests/data/test-diff-dwarf/test40-report-0.txt
> >> >> >+++ b/tests/data/test-diff-dwarf/test40-report-0.txt
> >> >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >         type size changed from 96 to 64 (in 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)
> >> >> >@@ -24,7 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >            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':
> >> >> >diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
> >> >> >index f0a25a2e..44918baa 100644
> >> >> >--- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
> >> >> >+++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt
> >> >> >@@ -19,7 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >     return type changed:
> >> >> >       type name changed from 'std::tuple<STR&&>' to 'std::tuple<STR &&>'
> >> >> >       type size hasn't changed
> >> >> >-
> >> >> >       1 base class deletion:
> >> >> >         struct std::_Tuple_impl<0ul, STR&&>
> >> >> >       1 base class insertion:
> >> >> >diff --git a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
> >> >> >index 1c0c773d..60681336 100644
> >> >> >--- a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
> >> >> >+++ b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt
> >> >> >@@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >             'char m2', at offset 8 (in bits)
> >> >> >
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt
> >> >> >index bdc31fd0..5a505fc3 100644
> >> >> >--- a/tests/data/test-diff-filter/test10-report.txt
> >> >> >+++ b/tests/data/test-diff-filter/test10-report.txt
> >> >> >@@ -16,4 +16,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >           'unsigned int S::m', at offset 0 (in bits)
> >> >> >
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt
> >> >> >index 0d30ef39..6ade5bdf 100644
> >> >> >--- a/tests/data/test-diff-filter/test18-report.txt
> >> >> >+++ b/tests/data/test-diff-filter/test18-report.txt
> >> >> >@@ -14,4 +14,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >
> >> >> >
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
> >> >> >index f847d32e..99c14329 100644
> >> >> >--- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
> >> >> >+++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt
> >> >> >@@ -7,10 +7,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >     parameter 1 of type 'int' changed:
> >> >> >       type name changed from 'int' to 'float'
> >> >> >       type size hasn't changed
> >> >> >-
> >> >> >     parameter 2 of type 'int' changed:
> >> >> >       type name changed from 'int' to 'float'
> >> >> >       type size hasn't changed
> >> >> >
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
> >> >> >index b78215b0..5def3a08 100644
> >> >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
> >> >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt
> >> >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >> >> >           '__anonymous_enum__1::c_report_stream' value '143'
> >> >> >           '__anonymous_enum__1::c_unload_library' value '144'
> >> >> >-
> >> >> >         92 enumerator changes:
> >> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
> >> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
> >> >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >> >> >            type size hasn't changed
> >> >> >-
> >> >> >            1 data member changes (1 filtered):
> >> >> >             anonymous data member at offset 0 (in bits) changed from:
> >> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >> >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
> >> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >> >> >           type size hasn't changed
> >> >> >-
> >> >> >           1 data member change:
> >> >> >            type of 'void ()* InitTableEntry::func' changed:
> >> >> >              in pointed to type 'function type void ()':
> >> >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >                type size changed from 2752 to 5504 (in bits)
> >> >> >                1 data member deletion:
> >> >> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
> >> >> >-
> >> >> >                7 data member insertions:
> >> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
> >> >> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
> >> >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >                        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> >
> >> >> >                               2 data member deletions:
> >> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
> >> >> >-
> >> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
> >> >> >-
> >> >> >                               1 data member change:
> >> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >> >> >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 ccaf8126..3bc8f6d7 100644
> >> >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
> >> >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt
> >> >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >> >> >           '__anonymous_enum__1::c_report_stream' value '143'
> >> >> >           '__anonymous_enum__1::c_unload_library' value '144'
> >> >> >-
> >> >> >         92 enumerator changes:
> >> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
> >> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
> >> >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >> >> >            type size hasn't changed
> >> >> >-
> >> >> >            1 data member changes (1 filtered):
> >> >> >             anonymous data member at offset 0 (in bits) changed from:
> >> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >> >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
> >> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >> >> >           type size hasn't changed
> >> >> >-
> >> >> >           1 data member change:
> >> >> >            type of 'void ()* InitTableEntry::func' changed:
> >> >> >              in pointed to type 'function type void ()':
> >> >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >                type size changed from 2752 to 5504 (in bits)
> >> >> >                1 data member deletion:
> >> >> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1
> >> >> >-
> >> >> >                7 data member insertions:
> >> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1
> >> >> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1
> >> >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
> >> >> >                               2 data member deletions:
> >> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1
> >> >> >-
> >> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1
> >> >> >-
> >> >> >                               1 data member change:
> >> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >> >> >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 44e78935..d91de66b 100644
> >> >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
> >> >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt
> >> >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >> >> >           '__anonymous_enum__1::c_report_stream' value '143'
> >> >> >           '__anonymous_enum__1::c_unload_library' value '144'
> >> >> >-
> >> >> >         92 enumerator changes:
> >> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1
> >> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1
> >> >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >> >> >            type size hasn't changed
> >> >> >-
> >> >> >            1 data member changes (1 filtered):
> >> >> >             anonymous data member at offset 0 (in bytes) changed from:
> >> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >> >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1
> >> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >> >> >           type size hasn't changed
> >> >> >-
> >> >> >           1 data member change:
> >> >> >            type of 'void ()* InitTableEntry::func' changed:
> >> >> >              in pointed to type 'function type void ()':
> >> >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >                type size changed from 0x158 to 0x2b0 (in bytes)
> >> >> >                1 data member deletion:
> >> >> >                  'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1
> >> >> >-
> >> >> >                7 data member insertions:
> >> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1
> >> >> >                  'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1
> >> >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >                        underlying type 'class std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >' at stl_tree.h:357: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
> >> >> >                               2 data member deletions:
> >> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1
> >> >> >-
> >> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1
> >> >> >-
> >> >> >                               1 data member change:
> >> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >> >> >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 c9cb9246..306a9863 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
> >> >> >@@ -116,7 +116,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >           '__anonymous_enum__1::c_report_state_stream' value '142'
> >> >> >           '__anonymous_enum__1::c_report_stream' value '143'
> >> >> >           '__anonymous_enum__1::c_unload_library' value '144'
> >> >> >-
> >> >> >         92 enumerator changes:
> >> >> >           '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33'
> >> >> >           '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34'
> >> >> >@@ -220,7 +219,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >          type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed:
> >> >> >            type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags'
> >> >> >            type size hasn't changed
> >> >> >-
> >> >> >            1 data member changes (1 filtered):
> >> >> >             anonymous data member at offset 0 (in bits) changed from:
> >> >> >               struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}
> >> >> >@@ -235,7 +233,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >         entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry'
> >> >> >           type name changed from 'InitTableEntry' to '__anonymous_struct__2'
> >> >> >           type size hasn't changed
> >> >> >-
> >> >> >           1 data member change:
> >> >> >            type of 'void ()* InitTableEntry::func' changed:
> >> >> >              in pointed to type 'function type void ()':
> >> >> >@@ -264,7 +261,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >                type size changed from 2752 to 5504 (in bits)
> >> >> >                1 data member deletion:
> >> >> >                  'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits)
> >> >> >-
> >> >> >                7 data member insertions:
> >> >> >                  'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits)
> >> >> >                  'StreamMap Engine::m_stream_map', at offset 3072 (in bits)
> >> >> >@@ -286,20 +282,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
> >> >> >                        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> >
> >> >> >                               2 data member deletions:
> >> >> >                                 'std::_Rb_tree_node_base std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_header', at offset 64 (in bits)
> >> >> >-
> >> >> >                                 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::size_type std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_node_count', at offset 320 (in bits)
> >> >> >-
> >> >> >                               1 data member change:
> >> >> >                                type of 'std::less<PtrData> std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>::_M_key_compare' changed:
> >> >> >                                  type name changed from 'std::less<PtrData>' to 'std::_Rb_tree<PtrData, PtrData, std::_Identity<PtrData>, std::less<PtrData>, std::allocator<PtrData> >::_Rb_tree_impl<std::less<PtrData>, true>'
> >> >> >diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt
> >> >> >index 08692c1e..22e614d8 100644
> >> >> >--- a/tests/data/test-diff-filter/test36-report-0.txt
> >> >> >+++ b/tests/data/test-diff-filter/test36-report-0.txt
> >> >> >@@ -13,7 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >            type size hasn't changed
> >> >> >
> >> >> >
> >> >> >-
> >> >> >   [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes:
> >> >> >     parameter 1 of type 'S*' has sub-type changes:
> >> >> >       in pointed to type 'struct S' at test36-2-v1.c:6:1:
> >> >> >@@ -23,11 +22,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >            type name changed from 'int' to 'unsigned int'
> >> >> >            type size hasn't changed
> >> >> >
> >> >> >-
> >> >> >          type of 'int S::m1' changed:
> >> >> >            type name changed from 'int' to 'unsigned int'
> >> >> >            type size hasn't changed
> >> >> >
> >> >> >
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
> >> >> >index 94a0551d..d40a1374 100644
> >> >> >--- a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
> >> >> >+++ b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt
> >> >> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >   type size changed from 32 to 64 (in bits)
> >> >> >   1 data member insertion:
> >> >> >     'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1
> >> >> >-
> >> >> >   one impacted interface:
> >> >> >     function void fn(C&)
> >> >> >diff --git a/tests/data/test-diff-filter/test7-report.txt b/tests/data/test-diff-filter/test7-report.txt
> >> >> >index 7e3a4d47..26933033 100644
> >> >> >--- a/tests/data/test-diff-filter/test7-report.txt
> >> >> >+++ b/tests/data/test-diff-filter/test7-report.txt
> >> >> >@@ -7,7 +7,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >     return type changed:
> >> >> >       type name changed from 'return_type' to 'other_return_type'
> >> >> >       type size hasn't changed
> >> >> >-
> >> >> >       no data member change (1 filtered);
> >> >> >
> >> >> >
> >> >> >diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
> >> >> >index 05d6fcad..873a84cd 100644
> >> >> >--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
> >> >> >+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt
> >> >> >@@ -54,9 +54,7 @@
> >> >> >                                                   struct std::__detail::_List_node_base
> >> >> >                                                 2 data member deletions:
> >> >> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits)
> >> >> >-
> >> >> >                                                   'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits)
> >> >> >-
> >> >> >                                                 1 data member insertion:
> >> >> >                                                   'unsigned long int std::_List_node<long unsigned int>::_M_data', at offset 128 (in bits)
> >> >> >                                               and name of 'std::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base<sigc::internal::trackable_callback, std::allocator<sigc::internal::trackable_callback> >::_List_impl::_M_node'
> >> >> >diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
> >> >> >index c227fa5c..a0cc67c2 100644
> >> >> >--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
> >> >> >+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt
> >> >> >@@ -10,7 +10,6 @@
> >> >> >           type size hasn't changed
> >> >> >           1 enumerator insertion:
> >> >> >             '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
> >> >> >-
> >> >> >           1 enumerator change:
> >> >> >             '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
> >> >> >
> >> >> >@@ -34,7 +33,6 @@
> >> >> >           type size hasn't changed
> >> >> >           1 enumerator insertion:
> >> >> >             '__anonymous_enum__1::ssl_kea_ecdh_psk' value '5'
> >> >> >-
> >> >> >           1 enumerator change:
> >> >> >             '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1
> >> >> >
> >> >> >@@ -52,7 +50,6 @@
> >> >> >                  type size hasn't changed
> >> >> >                  1 enumerator deletion:
> >> >> >                    '__anonymous_enum__::ssl_auth_rsa' value '1'
> >> >> >-
> >> >> >                  7 enumerator insertions:
> >> >> >                    '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1'
> >> >> >                    '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5'
> >> >> >@@ -114,7 +111,6 @@
> >> >> >                                              type size hasn't changed
> >> >> >                                              1 enumerator insertion:
> >> >> >                                                '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347'
> >> >> >-
> >> >> >                                              1 enumerator change:
> >> >> >                                                '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1
> >> >> >
> >> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
> >> >> >index bf081f52..70b41ddd 100644
> >> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
> >> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt
> >> >> >@@ -25,7 +25,6 @@
> >> >> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
> >> >> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >> >> >           type size hasn't changed
> >> >> >-
> >> >> >           7 enumerator deletions:
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >> >> >@@ -34,7 +33,6 @@
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >> >> >-
> >> >> >           9 enumerator insertions:
> >> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
> >> >> >index 7b86b964..0b909f90 100644
> >> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
> >> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt
> >> >> >@@ -25,7 +25,6 @@
> >> >> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
> >> >> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >> >> >           type size hasn't changed
> >> >> >-
> >> >> >           7 enumerator deletions:
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >> >> >@@ -34,7 +33,6 @@
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >> >> >-
> >> >> >           9 enumerator insertions:
> >> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
> >> >> >index 3d20caf1..c247ef95 100644
> >> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
> >> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt
> >> >> >@@ -239,15 +239,10 @@
> >> >> >                                                  type size changed from 1280 to 256 (in bits)
> >> >> >                                                  5 data member deletions:
> >> >> >                                                    'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1
> >> >> >-
> >> >> >                                                    'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1
> >> >> >-
> >> >> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1
> >> >> >-
> >> >> >                                                    'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1
> >> >> >-
> >> >> >                                                    'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1
> >> >> >-
> >> >> >                                                  1 data member change:
> >> >> >                                                   type of 'SSL* RedsStream::ssl' changed:
> >> >> >                                                     in pointed to type 'typedef SSL' at reds_stream.h:32:1:
> >> >> >@@ -257,193 +252,99 @@
> >> >> >                                                         type size changed from 5504 to 0 (in bits)
> >> >> >                                                         94 data member deletions:
> >> >> >                                                           'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1
> >> >> >-
> >> >> >                                                           'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1
> >> >> >-
> >> >> >                                                           'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1
> >> >> >-
> >> >> >                                                           'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1
> >> >> >-
> >> >> >                                                           'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1
> >> >> >-
> >> >> >                                                           'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1
> >> >> >-
> >> >> >                                                           'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1
> >> >> >-
> >> >> >                                                           'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1
> >> >> >-
> >> >> >                                                           'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1
> >> >> >-
> >> >> >                                                           'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1
> >> >> >-
> >> >> >                                                           'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1
> >> >> >-
> >> >> >                                                           'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1
> >> >> >-
> >> >> >                                                           'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1
> >> >> >-
> >> >> >                                                           'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1
> >> >> >-
> >> >> >                                                           'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1
> >> >> >-
> >> >> >                                                           'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1
> >> >> >-
> >> >> >                                                           'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1
> >> >> >-
> >> >> >                                                           'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1
> >> >> >-
> >> >> >                                                           'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1
> >> >> >-
> >> >> >                                                           'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1
> >> >> >-
> >> >> >                                                           'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1
> >> >> >-
> >> >> >                                                           'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1
> >> >> >-
> >> >> >                                                           'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1
> >> >> >-
> >> >> >                                                           'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1
> >> >> >-
> >> >> >                                                           'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1
> >> >> >-
> >> >> >                                                           'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1
> >> >> >-
> >> >> >                                                           'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1
> >> >> >-
> >> >> >                                                           'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1
> >> >> >-
> >> >> >                                                           'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1
> >> >> >-
> >> >> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1
> >> >> >-
> >> >> >                                                           'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1
> >> >> >-
> >> >> >                                                           'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1
> >> >> >-
> >> >> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1
> >> >> >-
> >> >> >                                                           'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1
> >> >> >-
> >> >> >                                                           'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1
> >> >> >-
> >> >> >                                                           'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1
> >> >> >-
> >> >> >                                                           'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1
> >> >> >-
> >> >> >                                                           'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1
> >> >> >-
> >> >> >                                                           'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1
> >> >> >-
> >> >> >                                                           'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1
> >> >> >-
> >> >> >                                                           'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1
> >> >> >-
> >> >> >                                                           'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1
> >> >> >-
> >> >> >                                                           'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1
> >> >> >-
> >> >> >                                                           'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1
> >> >> >-
> >> >> >                                                           'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1
> >> >> >-
> >> >> >                                                           'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1
> >> >> >-
> >> >> >                                                           'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1
> >> >> >-
> >> >> >                                                           'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1
> >> >> >-
> >> >> >                                                           'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1
> >> >> >-
> >> >> >                                                           'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1
> >> >> >-
> >> >> >                                                           'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1
> >> >> >-
> >> >> >                                                           'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1
> >> >> >-
> >> >> >                                                           'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1
> >> >> >-
> >> >> >                                                           'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1
> >> >> >-
> >> >> >                                                           'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1
> >> >> >-
> >> >> >                                                           'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1
> >> >> >-
> >> >> >                                                           'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1
> >> >> >-
> >> >> >                                                           'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1
> >> >> >-
> >> >> >                                                           'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1
> >> >> >-
> >> >> >                                                           'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1
> >> >> >-
> >> >> >                                                           'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1
> >> >> >-
> >> >> >                                                           'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1
> >> >> >-
> >> >> >                                                           'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1
> >> >> >-
> >> >> >                                                           'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1
> >> >> >-
> >> >> >                                                           'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1
> >> >> >-
> >> >> >                                                           'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1
> >> >> >-
> >> >> >                                                           'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1
> >> >> >-
> >> >> >                                                           'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1
> >> >> >-
> >> >> >                                                           'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1
> >> >> >-
> >> >> >                                                           'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1
> >> >> >-
> >> >> >                                                           'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1
> >> >> >-
> >> >> >                                                           'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1
> >> >> >-
> >> >> >                                                           'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1
> >> >> >-
> >> >> >                                                           'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1
> >> >> >-
> >> >> >                                                           'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1
> >> >> >-
> >> >> >                                                           'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1
> >> >> >-
> >> >> >                                                           'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1
> >> >> >-
> >> >> >                                                           'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1
> >> >> >-
> >> >> >                                                           'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1
> >> >> >-
> >> >> >                                                           'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1
> >> >> >-
> >> >> >                                                           'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1
> >> >> >-
> >> >> >                                                           'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1
> >> >> >-
> >> >> >                                                           'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1
> >> >> >-
> >> >> >                                                           'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1
> >> >> >-
> >> >> >                                                           'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1
> >> >> >-
> >> >> >                                                           'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1
> >> >> >-
> >> >> >                                                           'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1
> >> >> >-
> >> >> >                                                           'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1
> >> >> >-
> >> >> >                                                           'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1
> >> >> >-
> >> >> >                                                           'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1
> >> >> >-
> >> >> >                                                           'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1
> >> >> >-
> >> >> >                                                           'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1
> >> >> >-
> >> >> >                                                           'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1
> >> >> >-
> >> >> >                                                           'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1
> >> >> >-
> >> >> >                                                   and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1
> >> >> >
> >> >> >
> >> >> >@@ -558,7 +459,6 @@
> >> >> >         underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed:
> >> >> >           type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >> >> >           type size hasn't changed
> >> >> >-
> >> >> >           7 enumerator deletions:
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >> >> >@@ -567,7 +467,6 @@
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >> >> >             '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >> >> >-
> >> >> >           9 enumerator insertions:
> >> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >> >> >             'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >> >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
> >> >> >index 75ba0a50..11cd5682 100644
> >> >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
> >> >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt
> >> >> >@@ -22,7 +22,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
> >> >> >   'enum __anonymous_enum__2 at spice.h:471:1' changed:
> >> >> >     type name changed from '__anonymous_enum__2' to 'SpiceImageCompression'
> >> >> >     type size hasn't changed
> >> >> >-
> >> >> >     7 enumerator deletions:
> >> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0'
> >> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1'
> >> >> >@@ -31,7 +30,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
> >> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4'
> >> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5'
> >> >> >       '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6'
> >> >> >-
> >> >> >     9 enumerator insertions:
> >> >> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0'
> >> >> >       'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1'
> >> >> >@@ -48,7 +46,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out)
> >> >> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
> >> >> >   'typedef spice_image_compression_t at spice.h:479:1' changed:
> >> >> >     typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1
> >> >> >-
> >> >> >     2 impacted interfaces:
> >> >> >       function spice_image_compression_t spice_server_get_image_compression(SpiceServer*)
> >> >> >       function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)
> >> >> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
> >> >> >index f8e60b50..d0381ce5 100644
> >> >> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
> >> >> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt
> >> >> >@@ -60,7 +60,6 @@
> >> >> >         type size hasn't changed
> >> >> >         1 enumerator insertion:
> >> >> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
> >> >> >-
> >> >> >         1 enumerator change:
> >> >> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
> >> >> >
> >> >> >@@ -129,7 +128,6 @@
> >> >> >
> >> >> >
> >> >> >
> >> >> >-
> >> >> >                1 member function deletion:
> >> >> >                  'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7
> >> >> >
> >> >> >@@ -138,11 +136,8 @@
> >> >> >
> >> >> >                3 data member deletions:
> >> >> >                  'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1
> >> >> >-
> >> >> >                  'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1
> >> >> >-
> >> >> >                  '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) (by +128 bits)
> >> >> >                 type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed:
> >> >> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
> >> >> >index 10816705..89c8efa3 100644
> >> >> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
> >> >> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt
> >> >> >@@ -31,7 +31,6 @@
> >> >> >         type size hasn't changed
> >> >> >         1 enumerator insertion:
> >> >> >           'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20'
> >> >> >-
> >> >> >         1 enumerator change:
> >> >> >           'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1
> >> >> >
> >> >> >diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
> >> >> >index 8f5d0b6b..c39851d3 100644
> >> >> >--- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
> >> >> >+++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt
> >> >> >@@ -7,14 +7,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >     return type changed:
> >> >> >       type name changed from 'int' to 'float'
> >> >> >       type size hasn't changed
> >> >> >-
> >> >> >     parameter 1 of type 'int' changed:
> >> >> >       type name changed from 'int' to 'float'
> >> >> >       type size hasn't changed
> >> >> >-
> >> >> >     parameter 2 of type 'int' changed:
> >> >> >       type name changed from 'int' to 'float'
> >> >> >       type size hasn't changed
> >> >> >
> >> >> >
> >> >> >-
> >> >> >diff --git a/tests/data/test-diff-suppr/test35-leaf-report-0.txt b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
> >> >> >index 411cc1b4..244455ae 100644
> >> >> >--- a/tests/data/test-diff-suppr/test35-leaf-report-0.txt
> >> >> >+++ b/tests/data/test-diff-suppr/test35-leaf-report-0.txt
> >> >> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >   type size changed from 32 to 64 (in bits)
> >> >> >   1 data member insertion:
> >> >> >     'char leaf::m1', at offset 32 (in bits) at test35-leaf-v1.cc:8:1
> >> >> >-
> >> >> >   one impacted interface:
> >> >> >     function void fn(C&)
> >> >> >diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
> >> >> >index b12a8a61..f286cc7b 100644
> >> >> >--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt
> >> >> >+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt
> >> >> >@@ -7,7 +7,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >   type size changed from 32 to 64 (in bits)
> >> >> >   1 data member insertion:
> >> >> >     'char leaf1::m1', at offset 32 (in bits) at test36-leaf-v1.cc:7:1
> >> >> >-
> >> >> >   3 impacted interfaces:
> >> >> >     function void interface1(struct_type*)
> >> >> >     function void interface2(struct_type&)
> >> >> >@@ -20,7 +19,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >    type 'struct leaf1' of 'leaf2::member0' changed as reported earlier
> >> >> >    and size changed from 32 to 64 (in bits) (by +32 bits)
> >> >> >    'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits)
> >> >> >-
> >> >> >   3 impacted interfaces:
> >> >> >     function void interface1(struct_type*)
> >> >> >     function void interface2(struct_type&)
> >> >> >diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
> >> >> >index 4b1681bc..d772bd1d 100644
> >> >> >--- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
> >> >> >+++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt
> >> >> >@@ -8,7 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >       type size hasn't changed
> >> >> >       1 enumerator insertion:
> >> >> >         'EnumType1::ee3_inserted' value '3'
> >> >> >-
> >> >> >       1 enumerator change:
> >> >> >         'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1
> >> >> >
> >> >> >@@ -18,7 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
> >> >> >       type size hasn't changed
> >> >> >       1 enumerator insertion:
> >> >> >         'EnumType0::e3_inserted' value '3'
> >> >> >-
> >> >> >       1 enumerator change:
> >> >> >         'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1
> >> >> >
> >> >> >--
> >> >> >2.25.1.481.gfbce0eb801-goog
> >> >> >
> >> >> >

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 3/5 v2] [abidiff] Eliminate some unnecessary blank lines in diff output.
  2020-03-16 13:10   ` [PATCH 3/5 v2] " Giuliano Procida
@ 2020-03-16 16:10     ` Dodji Seketeli
  0 siblings, 0 replies; 21+ messages in thread
From: Dodji Seketeli @ 2020-03-16 16:10 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, kernel-team

Hello Giuliano,

Giuliano Procida <gprocida@google.com> a écrit:

> v2: More code simplification. Tests unchanged.
>
> There is distributed responsibility for horizontal and vertical
> whitespace in the reporting code with indent and new line control
> information being manipulated by and passed in and out of functions.
> Occasionally, this information is ignored or incorrect and the code
> tends to err on the side of more rather than fewer new lines.
>
> The outcome is that abidiff output sometimes contains extra blank
> lines which can be confusing.
>
> This patch eliminates some of the more obvious cases:
>
>    - after data member deletions
>    - in enumerator change lists
>    - after "type size hasn't changed"
>    - before listing impacted interfaces
>
> A lot of passing of "new line needed" booleans between functions has
> been eliminated in the process.
>
> The patch cleans up the reporting of data members. The code will
> either emit indentation, a short description and a new line or do
> nothing at all.
>
> The patch also removes some stray location reporting code for array
> diffs which would have produced some oddly placed output. I could not
> get this code to trigger as loc = decl->get_location() was never
> present on the array decls in question.
>
> 	* src/abg-default-reporter.cc (report): In the type_decl_diff,
> 	enum_diff, array_diff, class_diff, union_diff and var_diff
> 	overrides, simplify new line logic which no longer needs to be
> 	threaded through report_name_size_and_alignment_changes. In
> 	the distinct_diff override, simplify new line logic which no
> 	longer needs to be threaded through
> 	report_size_and_alignment_changes. In the enum_diff override,
> 	emit just one blank line after each enum. In the array_diff
> 	override, remove stray location reporting which doesn't appear
> 	to ever trigger; fix new line logic. In the
> 	class_or_union_diff override, simplify new line logic for
> 	deleted members; pass indentation to represent_data_member.
> 	* src/abg-leaf-reporter.cc (report): In the array_diff,
> 	class_diff, union_diff and var_diff overrides, simplify new
> 	line logic which no longer needs to be threaded through
> 	report_name_size_and_alignment_changes. In the distinct_diff
> 	override, simplify new line logic which no longer needs to be
> 	threaded through report_size_and_alignment_changes. In the
> 	array_diff override, remove stray location reporting which
> 	doesn't appear to ever trigger; fix new line handling. In the
> 	class_or_union_diff override, simplify new line logic for
> 	deleted members; pass indentation to represent_data_member.
> 	In the corpus_diff override, tabify source indentation.
> 	* src/abg-reporter-priv.cc (represent_data_member): Handle
> 	indentation; fix new line logic.
> 	(report_size_and_alignment_changes): Fix new line logic
> 	for "type size hasn't changed" message; simplify new line
> 	logic and replace local bool n with argument bool nl for
> 	clarity.
> 	(report_size_and_alignment_changes): Remove bool nl argument
> 	and associated code as it had become always false; take
> 	responsibility for emitting terminating new lines and change
> 	return type to void.
> 	(report_name_size_and_alignment_changes): Fix new line logic;
> 	remove bool nl argument and associated code as it had become
> 	always false; take responsibility for emitting terminating new
> 	lines and change return type to void.
> 	(maybe_report_interfaces_impacted_by_diff) In both overrides,
> 	remove new line prefix code and new_line_prefix argument.
> 	* src/abg-reporter-priv.h (represent_data_member): Add indent
> 	argument.
> 	(report_size_and_alignment_changes) Remove bool nl argument;
> 	change return type to void.
> 	(report_name_size_and_alignment_changes) Remove bool nl
> 	argument; change return type to void.
> 	(maybe_report_interfaces_impacted_by_diff) In both overrides,
> 	remove new_line_prefix argument.
> 	* tests/data/test-*/*report*.txt: Remove some blank lines.


Whoah, thanks a lot for this great work.  And many thanks to Matthias
for the review.

What can I say other than, Well, applied to master.

Thanks!

-- 
		Dodji

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 4/5 v2] [abidiff] Output 2-space indentation consistently.
  2020-03-13 15:38   ` [PATCH 4/5 v2] " Giuliano Procida
@ 2020-03-17 12:31     ` Dodji Seketeli
  0 siblings, 0 replies; 21+ messages in thread
From: Dodji Seketeli @ 2020-03-17 12:31 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, kernel-team

Hello Giuliano,

Giuliano Procida <gprocida@google.com> a écrit:

> abidiff emits hierarchical difference information using 2-space
> indentation, almost everywhere.
>
> In a few places, long lines are split up and 1-space is used for
> clarity. Otherwise 1-space indentation appears to be only used when
> reporting:
>
>     - data member changes (not additions or removals)
>     - the change of the type of a variable
>
> This patch resolves these inconsistencies in favour of 2-space
> indentation.
>
> 	* src/abg-default-reporter.cc (report): In the
> 	class_or_union_diff override, use 2-space indentation when
>         listing changed members. In the var_diff override, do the same
>         for variable type changes.
> 	* src/abg-leaf-reporter.cc: Ditto.
>         * tests/data/test-*/*report*.txt: Update many test cases.

This is OK and have been applied to master.

Thanks!

-- 
		Dodji

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 5/5] [abidiff] Treat function type changes as local.
  2020-03-12  6:30 ` [PATCH 5/5] [abidiff] Treat function type changes as local Giuliano Procida
  2020-03-14 20:45   ` Matthias Maennich
@ 2020-03-17 16:15   ` Dodji Seketeli
  1 sibling, 0 replies; 21+ messages in thread
From: Dodji Seketeli @ 2020-03-17 16:15 UTC (permalink / raw)
  To: Giuliano Procida; +Cc: libabigail, kernel-team

Hello Giuliano,

Giuliano Procida <gprocida@google.com> a écrit:

> In leaf-changes-only mode, if the type of a struct's function pointer
> member changes it currently gets categorised as a non-local change and
> so is not reported. The change to any function passing such a struct
> is considered non-local and also not reported.
>
> This patch broadens the definition of local changes to include these
> cases and so have them be reported in leaf-changes-only mode. It may
> be the first of a sequence of such patches,
>
> 	* src/abg-ir.cc (types_have_similar_structure): Always compare
> 	function types (instead of just returning true) regardless of
>         whether they are components of pointer-to-function or
>         reference-to-function types.
> 	* tests/data/Makefile.am: Add new test case files.
> 	* tests/data/test-abidiff-exit/test-leaf2-report.txt: New test
> 	case.
> 	* tests/data/test-abidiff-exit/test-leaf2-v0.cc: Ditto.
> 	* tests/data/test-abidiff-exit/test-leaf2-v0.o: Ditto.
> 	* tests/data/test-abidiff-exit/test-leaf2-v1.cc: Ditto.
> 	* tests/data/test-abidiff-exit/test-leaf2-v1.o: Ditto.
> 	* tests/test-abidiff-exit.cc: Run new test case.

This is great, I like it!

Applied to master.

Thanks!

-- 
		Dodji

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2020-03-17 16:15 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-12  6:30 [PATCH 0/5] More whitespace and leaf-changes-only fixes Giuliano Procida
2020-03-12  6:30 ` [PATCH 1/5] Fix interaction of --redundant and --leaf-changes-only options Giuliano Procida
2020-03-13 17:30   ` Dodji Seketeli
2020-03-12  6:30 ` [PATCH 2/5] abg-leaf-reporter.cc: Fix indentation of function parameter diffs Giuliano Procida
2020-03-13 17:37   ` Dodji Seketeli
2020-03-12  6:30 ` [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output Giuliano Procida
2020-03-14 20:09   ` Matthias Maennich
2020-03-16 10:51     ` Giuliano Procida
2020-03-16 12:29       ` Matthias Maennich
2020-03-16 13:04         ` Giuliano Procida
2020-03-16 13:44           ` Matthias Maennich
2020-03-16 14:32             ` Giuliano Procida
2020-03-16 13:10   ` [PATCH 3/5 v2] " Giuliano Procida
2020-03-16 16:10     ` Dodji Seketeli
2020-03-12  6:30 ` [PATCH 4/5] [abidiff] Output 2-space indentation consistently Giuliano Procida
2020-03-13 15:38   ` [PATCH 4/5 v2] " Giuliano Procida
2020-03-17 12:31     ` Dodji Seketeli
2020-03-14 20:12   ` [PATCH 4/5] " Matthias Maennich
2020-03-12  6:30 ` [PATCH 5/5] [abidiff] Treat function type changes as local Giuliano Procida
2020-03-14 20:45   ` Matthias Maennich
2020-03-17 16:15   ` Dodji Seketeli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).