From patchwork Thu Oct 20 15:19:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 59199 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C97F93850400 for ; Thu, 20 Oct 2022 15:20:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C97F93850400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1666279239; bh=0DSvTWStmFMvRHl5VTsf60730fOBqQG3HqlcTbeIO5g=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Help: List-Subscribe:From:Reply-To:From; b=xor5si/7vd/5qFL0v9uPUO0U67TnnhEjDKmHhyRsgmIoWVkqVFqu2+nJfH5DLsH5Q Asvv/P/HFaM4qTFlTwCmsOfUACAArVRA+H2FSoIcZdsgnzC75+XrO8XpoJ62iR6QGQ xDmo3y2kPOjZzxYeWHb/7/2daKDb8s0jMID2rxTk= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 417253850862 for ; Thu, 20 Oct 2022 15:20:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 417253850862 Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-55-GoCN3ywyMJact-aGBTRtLA-1; Thu, 20 Oct 2022 11:19:39 -0400 X-MC-Unique: GoCN3ywyMJact-aGBTRtLA-1 Received: by mail-qk1-f200.google.com with SMTP id h9-20020a05620a244900b006ee944ec451so94705qkn.13 for ; Thu, 20 Oct 2022 08:19:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:message-id:date:organization:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=0DSvTWStmFMvRHl5VTsf60730fOBqQG3HqlcTbeIO5g=; b=w0mXff0PBgZp3S0luJpNwr5Z41jPY/otwxiqjr0UQX/6Ej9xOPkKFZgdEFZNj+BtFR EUMXtZjfvTblsW1ZikFAlpfir68vQFAxj9DNhy+j0sKfwCjJA5Y4oF4T47auhc8mPk9U TfpgUZnrqU+OFfC7BPc3b9jUrdhQjEwKZG1542YCcxks9q2pKtPLS+KhAV5yc3B0wExP /PPAIyHRJFw0Ulc44XOD1FfvFBoAYdMXFXv8dUb+h07MW27D15u8egSAqw6ER3dysJGL OeprmlObKrP+YkY3teBATwWXjAuFZAYSCecCcvtUigOTaZTP30FbSiXiEMuiUekFBMjV E3zA== X-Gm-Message-State: ACrzQf2U0Jc5anOSveinyNYfiIJSzLcSyJsbAN+/gfxk76GIN9wmZ+l0 Y1f1jgmOQLemPiiwc5LuseVRkH56B3rEUZDmThDWmnTV/VQZ6jGmXJgqZ05OBaYfAmlzgZjCHjM HCU5XZddXimy/HzFfOeTOrijpPJgGg7uj2VEJv9PClc1veRe0KX6hF2QCipJneEFqAN9p X-Received: by 2002:a05:620a:1367:b0:6ee:c35c:fa46 with SMTP id d7-20020a05620a136700b006eec35cfa46mr9633954qkl.169.1666279177959; Thu, 20 Oct 2022 08:19:37 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6I2fWbukucq1vRdh6GWxnDGKuGQko9qNH+dn4YE/Dd+kvSnQe0C+3lhG9I4V1IyIC6mAKxFA== X-Received: by 2002:a05:620a:1367:b0:6ee:c35c:fa46 with SMTP id d7-20020a05620a136700b006eec35cfa46mr9633889qkl.169.1666279177143; Thu, 20 Oct 2022 08:19:37 -0700 (PDT) Received: from localhost ([88.120.130.27]) by smtp.gmail.com with ESMTPSA id o6-20020a05620a2a0600b006ee9d734479sm7640783qkp.33.2022.10.20.08.19.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Oct 2022 08:19:36 -0700 (PDT) Received: by localhost (Postfix, from userid 1000) id AF7AF581C59; Thu, 20 Oct 2022 17:19:32 +0200 (CEST) To: libabigail@sourceware.org Subject: [PATCH] rhbz2114909 - Refer to changed base classes using their non-qualified names Organization: Red Hat / France X-Operating-System: Fedora 38 X-URL: http://www.redhat.com Date: Thu, 20 Oct 2022 17:19:32 +0200 Message-ID: <87pmemplob.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Dodji Seketeli via Libabigail From: Dodji Seketeli Reply-To: Dodji Seketeli Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" Hello, This was filled at https://bugzilla.redhat.com/show_bug.cgi?id=2114909 When analysing the edit script representing the changes in the base base classes of a given class, libabigail refers to the changed base classes using their names. The problem is that there can be several changed base classes that have the same name, even though their /qualified/ names are different. That was wreaking having havoc down the road. To solve the problem, use the qualified name of the base classes, instead of their simple name. Note that this change did also ameliorate other existing change reports in the test suite. While testing the fix, I realized that class_decl::base_spec doesn't set its qualified name. That leads to the fact that it's the non-qualified name that is used for sorting the base class names in the change reports. This can lead to instabilities, depending on the platform, in test output. This is also fixed. Fixed thus. * src/abg-comparison.cc (class_diff::ensure_lookup_tables_populated): Refer to the added or removed base class using its qualified name. * src/abg-ir.cc (class_decl::base_spec::base_spec): Set the qualified name of the base_spec. * tests/data/test-abidiff-exit/test-rhbz2114909-report-1.txt: New reference test output. * tests/data/test-abidiff-exit/test-rhbz2114909-v{0,1}.o: New input test binaries. * tests/data/test-abidiff-exit/test-rhbz2114909-v{0,1}.cc: Source code of the binaries, above. * tests/data/Makefile.am: Add the new test materials above to source distribution. * tests/test-abidiff-exit.cc (in_out_specs): Add the new tests to this harness. * 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: Adjust. Signed-off-by: Dodji Seketeli --- src/abg-comparison.cc | 4 +- src/abg-ir.cc | 1 + tests/data/Makefile.am | 7 ++- .../test-rhbz2114909-report-1.txt | 18 ++++++++ .../test-abidiff-exit/test-rhbz2114909-v0.cc | 34 +++++++++++++++ .../test-abidiff-exit/test-rhbz2114909-v0.o | Bin 0 -> 3440 bytes .../test-abidiff-exit/test-rhbz2114909-v1.cc | 35 +++++++++++++++ .../test-abidiff-exit/test-rhbz2114909-v1.o | Bin 0 -> 3304 bytes .../test-abidiff/test-PR18791-report0.txt | 41 ++++-------------- ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt | 40 ++++------------- tests/test-abidiff-exit.cc | 13 +++++- 11 files changed, 124 insertions(+), 69 deletions(-) create mode 100644 tests/data/test-abidiff-exit/test-rhbz2114909-report-1.txt create mode 100644 tests/data/test-abidiff-exit/test-rhbz2114909-v0.cc create mode 100644 tests/data/test-abidiff-exit/test-rhbz2114909-v0.o create mode 100644 tests/data/test-abidiff-exit/test-rhbz2114909-v1.cc create mode 100644 tests/data/test-abidiff-exit/test-rhbz2114909-v1.o new file mode 100644 index 00000000..f56843d3 index 61635682..91733b7c 100644 diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc index c536f66f..6e3b2b55 100644 --- a/src/abg-comparison.cc +++ b/src/abg-comparison.cc @@ -5189,7 +5189,7 @@ class_diff::ensure_lookup_tables_populated(void) const unsigned i = it->index(); class_decl::base_spec_sptr b = first_class_decl()->get_base_specifiers()[i]; - string name = b->get_base_class()->get_name(); + string name = b->get_base_class()->get_qualified_name(); ABG_ASSERT(get_priv()->deleted_bases_.find(name) == get_priv()->deleted_bases_.end()); get_priv()->deleted_bases_[name] = b; @@ -5207,7 +5207,7 @@ class_diff::ensure_lookup_tables_populated(void) const unsigned i = *iit; class_decl::base_spec_sptr b = second_class_decl()->get_base_specifiers()[i]; - string name = b->get_base_class()->get_name(); + string name = b->get_base_class()->get_qualified_name(); ABG_ASSERT(get_priv()->inserted_bases_.find(name) == get_priv()->inserted_bases_.end()); string_base_sptr_map::const_iterator j = diff --git a/src/abg-ir.cc b/src/abg-ir.cc index b53df0cd..b914faaa 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -23015,6 +23015,7 @@ class_decl::base_spec::base_spec(const class_decl_sptr& base, priv_(new priv(base, offset_in_bits, is_virtual)) { runtime_type_instance(this); + set_qualified_name(base->get_qualified_name()); } /// Get the base class referred to by the current base class diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 7bddd646..5ec33924 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -236,7 +236,12 @@ test-abidiff-exit/test-PR29144-v1.o \ test-abidiff-exit/ld-2.28-210.so \ test-abidiff-exit/ld-2.28-211.so \ test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt \ -test-abidiff-exit/ld-2.28-21x.so.sources.txt \ +test-abidiff-exit/ld-2.28-21x.so.sources.txt \ +test-abidiff-exit/test-rhbz2114909-v0.cc \ +test-abidiff-exit/test-rhbz2114909-v0.o \ +test-abidiff-exit/test-rhbz2114909-v1.cc \ +test-abidiff-exit/test-rhbz2114909-v1.o \ +test-abidiff-exit/test-rhbz2114909-report-1.txt \ \ test-diff-dwarf/test0-v0.cc \ test-diff-dwarf/test0-v0.o \ diff --git a/tests/data/test-abidiff-exit/test-rhbz2114909-report-1.txt b/tests/data/test-abidiff-exit/test-rhbz2114909-report-1.txt new file mode 100644 index 00000000..7cb15229 --- /dev/null +++ b/tests/data/test-abidiff-exit/test-rhbz2114909-report-1.txt @@ -0,0 +1,18 @@ +Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Variables changes summary: 0 Removed, 0 Changed, 0 Added variable + +1 function with some indirect sub-type change: + + [C] 'function void foo(ns2::C&)' at test-rhbz2114909-v1.cc:33:1 has some indirect sub-type changes: + parameter 1 of type 'ns2::C&' has sub-type changes: + in referenced type 'class ns2::C' at test-rhbz2114909-v1.cc:22:1: + type size changed from 160 to 96 (in bits) + 2 base class deletions: + class ns1::base_1 at test-rhbz2114909-v0.cc:3:1 + class ns2::base_1 at test-rhbz2114909-v0.cc:16:1 + 1 base class change: + 'class ns1::base_2' at test-rhbz2114909-v0.cc:8:1 changed: + 2 data member changes: + 'int m0' offset changed from 96 to 32 (in bits) (by -64 bits) + 'char m1' offset changed from 128 to 64 (in bits) (by -64 bits) + diff --git a/tests/data/test-abidiff-exit/test-rhbz2114909-v0.cc b/tests/data/test-abidiff-exit/test-rhbz2114909-v0.cc new file mode 100644 index 00000000..a13dec4e --- /dev/null +++ b/tests/data/test-abidiff-exit/test-rhbz2114909-v0.cc @@ -0,0 +1,34 @@ +namespace ns1 +{ +class base_1 +{ + int m0; +}; + +class base_2 +{ + int m0; +}; +} + +namespace ns2 +{ +class base_1 +{ + int m0; +}; + +class C : public base_1, ns1::base_1, ns1::base_2 +{ + int m0; + char m1; +public: + C() + {} +}; +} + +void +foo(ns2::C&) +{ +} diff --git a/tests/data/test-abidiff-exit/test-rhbz2114909-v0.o b/tests/data/test-abidiff-exit/test-rhbz2114909-v0.o new file mode 100644 index 0000000000000000000000000000000000000000..6f6a0feaed6d35b6933c0379f3fc27ef02f6c71f GIT binary patch literal 3440 zcmb_e&2Jl35TEC@YbP5!&PQp|6tYGjQi|6f4aH7LYh$;LuViKsI)$m!w*P(=ZLUR`30|dheY-9=!2Y9C;BCGB83RDH#_S z%zz&1^l~8Th!}(#YdDB@79vr?08Y^m7O^OSqYOec9BFlYKyn@u-(rL$C-0+1ag!Vu zE5o!n9Ua-BBqChEF&w4}F^W1PqsBx#2Qx8Bk{m6AI4e_$Z_qY>zyW1U$W_E+ls~cA z?Sin5G)Mg)@#!ey<1~amYC=*HK*Yg_Ev3X|vuNI!DqwJ^C=`-1#S|_-B#eZa3iqQ@ zQNqIKpdTHX5YHy2Ok;j-enLz}lV`9iGTvM=DJMYm88FQ&rhz?=p(kbzJR|)ic?=r0 z#no9XD>6x*@f$Cx2*Do3%Qr9T;9&xIV+#d=d*=e z(OTGW>(;8{vm>29Z>8J*PRCttxEDaTTYGLVv+enA&+lctX7wPS%PkhOMIa;{0MffzyH@*ObDdBE zu9wS8)&ln7{6A;`H9d@P$z*>5!lU@T$o3N&&L*5?g*rC4 zM5xmhB%wU=(UulKk!Mvm$@Xg+j&G8bT@6?9k2L%#w!hQxeYStna5mu=R`m7D2O52} zPWgayoT{(KKh1uMr@q}}TlH1p?=zm`S>d0seVJ!Hzr{H9IM`>fd;4wQsp9N={kf?$ z-`(@Ut~`PY zz5)~Iep8%!7wCNRv;?w%+ ze(CG456OuT>~MW`9|sJsPR{uAye}_mYRG(gTz5X_0lvAw}RVk0S{<{j`S=Cqb z+lUY2U*!Y!`D6I^PvHN`{LEwcA2VMIgD0seLqx4xxjsXM_Jx10g27_G-WSzB75F78 zlvC%gGryn$dDi(~AWoqr_N!@~7KNhDIqhE(KgC!0u-e4C%k{q}0|oz4m0X=qXF|XG c6n}^B-vSu{(fc=nzG3_(um9@+msFkqHwLm4X#fBK literal 0 HcmV?d00001 diff --git a/tests/data/test-abidiff-exit/test-rhbz2114909-v1.cc b/tests/data/test-abidiff-exit/test-rhbz2114909-v1.cc --- /dev/null +++ b/tests/data/test-abidiff-exit/test-rhbz2114909-v1.cc @@ -0,0 +1,35 @@ +namespace ns1 +{ +class base_1 +{ + int m0; +}; + +class base_2 +{ + int m0; +}; +} + +namespace ns2 +{ + +class base_1 +{ + int m0; +}; + +class C : public ns1::base_2 +{ + int m0; + char m1; +public: + C() + {} +}; +} + +void +foo(ns2::C&) +{ +} diff --git a/tests/data/test-abidiff-exit/test-rhbz2114909-v1.o b/tests/data/test-abidiff-exit/test-rhbz2114909-v1.o new file mode 100644 index 0000000000000000000000000000000000000000..b7687f8291ec69acf5efac19dc24fd08ed01b631 GIT binary patch literal 3304 zcmb_ePiP}$6n|gRG}BI#P1|*C?LsHAi(S`DGTFK&U3aa7?sjo0QrOFa#7QzuqD@jJ z)7q_wh#(X%>*7H~4}u489z1yQpa`-DPlBK~LA>j2!Gpdxd9R&*O+nNL^S$?e-~01@ z@B7}Dyt#7gdQ2%0Qg96pH9-MBOCHM0p|}i>z-hR>y8qki{u>YPz4Yym2q!=pG#jTO zOGA{*h!X4e9Z+kCj1W4ajHK!mU_40>Qeq_0?goHnMM!^$z-R>~)R|0WDHA#NKN`I&=V) zg1E7iRaeZid2_mi#<8*zBx|Z^-0!41pPn}3^KIOWKD_*d2onX7`U2S?@&u`aJb^Utl>Tcmk5W9LA1e1jGj`JvJAIiDMWx158EMb8zoZI1T;IN)5&_PIUDt&O|t^{yghb z5uBdTr&&Lv;jF@AEKtP`ItXRzKO%}xXDn1^LGor;-`8+_kV5)c!+q92*Kk(h3l{YC z$O%#2@WEv}$*cCaBIi| zf52NJ1>SA|cEb%^uxtH3*uJ;v+6}L^-K@5|8$Fy0Ww%!Iy`3Y|uJ3l6-cgs$cGnXZ zOd%q{)ljeZIvo#x)9h|9@NDeTTt9H@ud?3kZrfXaZ_D$8yPV5wRX2RMw{;faV2R$aGmHa=G5+U7|?iuy# za>Rzj0ymSv4%Dw?Cw)%u1<_Uf^q7R7WAJ-YBBa~Ch;uqd=D#yoi1?DI+tNOVt-r(v zD*m*7>Mwo$jUh1+0*jkP`jIdqJwN?(8kWDs`Cld{B+5^(w4Q$pF^VbcL@}gI&i|SK z%q73@*AXA)|10~;`z2w-Px!kh_}}LXnHNXq;wSul_Sekd8~s9S{$l?r3Un^KT!G;M z`|EX)`ibFJD9~DT|A*{f5<}*?|CfjlJHH2fesa(0{4)57zu?1iQ>p?5Mfz#L0RMG{ izPdl%iD9KOxc?T|UzpTg^vM(af8q6iCx*;*|GxoU#SDu8 literal 0 HcmV?d00001 diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt --- a/tests/data/test-abidiff/test-PR18791-report0.txt +++ b/tests/data/test-abidiff/test-PR18791-report0.txt @@ -36,27 +36,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable underlying type 'class std::list >' changed: type name changed from 'std::list >' to 'std::__cxx11::list >' type size changed from 128 to 192 (in bits) - 1 base class change: - 'class std::_List_base >' changed: - type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::_List_base >::_List_impl _M_impl' changed: - type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::__detail::_List_node_base _M_node' changed: - type name changed from 'std::__detail::_List_node_base' to 'std::_List_node' - 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* _M_next', at offset 0 (in bits) - 'std::__detail::_List_node_base* _M_prev', at offset 64 (in bits) - 1 data member insertion: - 'unsigned long int _M_data', at offset 128 (in bits) - and name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node' - and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' + 1 base class deletion: + class std::_List_base > + 1 base class insertion: + class std::__cxx11::_List_base > 'bool clearing_' offset changed from 128 to 192 (in bits) (by +64 bits) [C] 'method bool sigc::connection::blocked()' has some indirect sub-type changes: @@ -125,18 +108,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable type of 'std::list > slots_' changed: type name changed from 'std::list >' to 'std::__cxx11::list >' type size changed from 128 to 192 (in bits) - 1 base class change: - 'class std::_List_base >' changed: - type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::_List_base >::_List_impl _M_impl' changed: - type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::__detail::_List_node_base _M_node' changed, as reported earlier - and name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node' - and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' + 1 base class deletion: + class std::_List_base > + 1 base class insertion: + class std::__cxx11::_List_base > [C] 'method bool sigc::internal::signal_impl::blocked()' has some indirect sub-type changes: implicit parameter 0 of type 'const sigc::internal::signal_impl*' has sub-type changes: 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 83f5750c..ec948e26 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 @@ -37,27 +37,10 @@ underlying type 'class std::list >' changed: type name changed from 'std::list >' to 'std::__cxx11::list >' type size changed from 128 to 192 (in bits) - 1 base class change: - 'class std::_List_base >' changed: - type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::_List_base >::_List_impl _M_impl' changed: - type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::__detail::_List_node_base _M_node' changed: - type name changed from 'std::__detail::_List_node_base' to 'std::_List_node' - 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* _M_next', at offset 0 (in bits) - 'std::__detail::_List_node_base* _M_prev', at offset 64 (in bits) - 1 data member insertion: - 'unsigned long int _M_data', at offset 128 (in bits) - and name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node' - and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' + 1 base class deletion: + class std::_List_base > + 1 base class insertion: + class std::__cxx11::_List_base > 'bool clearing_' offset changed from 128 to 192 (in bits) (by +64 bits) [C] 'method void sigc::internal::signal_impl::block(bool)' has some indirect sub-type changes: @@ -68,17 +51,10 @@ type of 'std::list > slots_' changed: type name changed from 'std::list >' to 'std::__cxx11::list >' type size changed from 128 to 192 (in bits) - 1 base class change: - 'class std::_List_base >' changed: - type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::_List_base >::_List_impl _M_impl' changed: - type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' - type size changed from 128 to 192 (in bits) - 1 data member change: - name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node', size changed from 128 to 192 (in bits) (by +64 bits) - and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' + 1 base class deletion: + class std::_List_base > + 1 base class insertion: + class std::__cxx11::_List_base > ================ end of changes of 'libsigc-2.0.so.0.0.0'=============== diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc index 0ba99992..3dadf0fb 100644 --- a/tests/test-abidiff-exit.cc +++ b/tests/test-abidiff-exit.cc @@ -449,7 +449,7 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-PR29144-report-2.txt", "output/test-abidiff-exit/test-PR29144-report-2.txt" }, - { + { "data/test-abidiff-exit/ld-2.28-210.so", "data/test-abidiff-exit/ld-2.28-211.so", "", @@ -460,6 +460,17 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt", "output/test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt" }, + { + "data/test-abidiff-exit/test-rhbz2114909-v0.o", + "data/test-abidiff-exit/test-rhbz2114909-v1.o", + "", + "", + "", + "--no-default-suppression", + abigail::tools_utils::ABIDIFF_ABI_CHANGE, + "data/test-abidiff-exit/test-rhbz2114909-report-1.txt", + "output/test-abidiff-exit/test-rhbz2114909-report-1.txt" + }, {0, 0, 0 ,0, 0, 0, abigail::tools_utils::ABIDIFF_OK, 0, 0} };