@@ -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
@@ -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 \
new file mode 100644
@@ -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*'
+
+
new file mode 100644
@@ -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) {
+}
new file mode 100644
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
new file mode 100644
@@ -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) {
+}
new file mode 100644
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
@@ -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'===============
@@ -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'===============
@@ -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'===============
@@ -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}
};
@@ -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
@@ -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);