From patchwork Mon Mar 4 15:55:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 86745 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 B82CA3858D28 for ; Mon, 4 Mar 2024 15:55:52 +0000 (GMT) X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::229]) by sourceware.org (Postfix) with ESMTPS id 2A9FC3858D28 for ; Mon, 4 Mar 2024 15:55:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2A9FC3858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=seketeli.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=seketeli.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2A9FC3858D28 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:4b98:dc4:8::229 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709567729; cv=none; b=jhNM1woIRrDP0ALtfNbmGbyYMDhC2SZqx0p9DVhynvTKdZF/LhHgOqc1F+tanYRw7Kpg88cwhlGWMW40oaCd2+h/FoNJlFqhqeBeqGsmmkO95zbH1vAM71QLD0cCWWGvW/CsCubAlHXcHfYjHqmphfjPe6fE/I65DAUv+o8w0fg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709567729; c=relaxed/simple; bh=z4hoLJhS0W3MHy9vvapp1kHms5A3EfQwVTDuPYqTXXc=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=hPUL0VoeYd8lJHEpcpwRH/jEhv1C64mhwyb9UESGesp8FFp01u9XAy8gcNwaus9OmciNvMu2ETdzR5o9rZcHbuGkyomjxR2geEp0vH32shC5PQIUvSyqWaLjNo9P4g/iudf5k5QIRR0yELMaL2goZKJPLSTCrmM2HlrpYXy9YgE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail.gandi.net (Postfix) with ESMTPSA id B7C56FF804 for ; Mon, 4 Mar 2024 15:55:13 +0000 (UTC) Received: by localhost (Postfix, from userid 1000) id CABC95071022; Mon, 4 Mar 2024 16:55:12 +0100 (CET) From: Dodji Seketeli To: libabigail@sourceware.org Subject: [PATCH 1/2] ir,dwarf-reader: Better handle inline-ness setting or detection Organization: Me, myself and I References: <20240302014047.E768A3858D39@sourceware.org> X-Operating-System: AlmaLinux 9.3 X-URL: http://www.seketeli.net/~dodji Date: Mon, 04 Mar 2024 16:55:12 +0100 In-Reply-To: <20240302014047.E768A3858D39@sourceware.org> (builder@sourceware.org's message of "Sat, 02 Mar 2024 01:40:47 +0000") Message-ID: <87plwa56vz.fsf@seketeli.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-GND-Sasl: dodj@seketeli.org X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.30 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Hello, [This is the first of the two patches applied to the master branch to fix the build.] The DWARF reader mistakenly considers that if the value of DW_AT_inline attribute is set to DW_INL_declared_inlined, that means the function we are looking at was declared inline. Rather, that means the function was declared inlined *and* was inlined by the compiler. To have a better coverage of functions that were declared inline, we need to consider functions which DW_AT_inline attribute is set to DW_INL_declared_inlined or DW_INL_declared_not_inlined. This patches fixes that. I noticed that we were missing concrete instances of inlined functions as we were taking into account DW_TAG_inlined_subroutine DIEs. This patch fixes that. I noticed that finish_member_function_reading (which is called for virtual member functions that don't have associated an associated elf symbol in the current translation unit) wasn't taking into account the inline declaration of virtual member functions. This patch fixes that. Last but not least, this patch stops considering the change of inline-ness declaration of functions as being an ABI change. Whenever that inline-ness declaration change happens alongside a meaningful ABI change, libabigail will report it, but that alone is not an ABI change. All in all, these change fix the fall-out (caught by the CI) from the previous patch: 3ccfe465 dwarf-reader: Fix DIE origin handling & scope getting * include/abg-ir.h (function_decl::is_declared_inline): Add a setter overload. * src/abg-dwarf-reader.cc (die_is_declared_inline): Take into the account values DW_INL_declared_inlined and DW_INL_declared_not_inlined of DW_AT_inline attribute. Not just DW_INL_declared_inlined. (finish_member_function_reading): Set the inline-ness declaration here. (build_ir_node_from_die): Handle DW_TAG_inlined_subroutine just as DW_TAG_subprogram. * src/abg-ir.cc (function_decl::is_declared_inline): Add a setter overload. * tests/data/test-annotate/test1.abi: Adjust. * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise. * tests/data/test-diff-filter/test41-report-0.txt: Likewise. * tests/data/test-read-dwarf/test1.abi: Likewise. * tests/data/test-read-dwarf/test1.hash.abi: Likewise. * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. Signed-off-by: Dodji Seketeli --- include/abg-ir.h | 3 + src/abg-dwarf-reader.cc | 10 +- src/abg-ir.cc | 17 +- tests/data/test-annotate/test1.abi | 8 +- .../data/test-annotate/test14-pr18893.so.abi | 4 +- .../data/test-annotate/test15-pr18892.so.abi | 62 +- .../data/test-annotate/test17-pr19027.so.abi | 8 +- ...st18-pr19037-libvtkRenderingLIC-6.1.so.abi | 68 +- ...19-pr19023-libtcmalloc_and_profiler.so.abi | 98 +- ...st20-pr19025-libvtkParallelCore-6.1.so.abi | 28 +- .../test42-PR21296-clanggcc-report0.txt | 1 + .../data/test-diff-filter/test41-report-0.txt | 7 +- tests/data/test-read-dwarf/test1.abi | 8 +- tests/data/test-read-dwarf/test1.hash.abi | 8 +- .../test-read-dwarf/test10-pr18818-gcc.so.abi | 194 ++-- .../test-read-dwarf/test11-pr18828.so.abi | 350 +++---- .../test-read-dwarf/test14-pr18893.so.abi | 4 +- .../test-read-dwarf/test15-pr18892.so.abi | 62 +- .../test-read-dwarf/test16-pr18904.so.abi | 448 ++++----- .../test-read-dwarf/test17-pr19027.so.abi | 8 +- ...st18-pr19037-libvtkRenderingLIC-6.1.so.abi | 68 +- ...19-pr19023-libtcmalloc_and_profiler.so.abi | 98 +- ...st20-pr19025-libvtkParallelCore-6.1.so.abi | 28 +- .../test22-pr19097-libstdc++.so.6.0.17.so.abi | 942 +++++++++--------- 24 files changed, 1274 insertions(+), 1258 deletions(-) diff --git a/include/abg-ir.h b/include/abg-ir.h index 2c69cfe0..cdce8267 100644 --- a/include/abg-ir.h +++ b/include/abg-ir.h @@ -3193,6 +3193,9 @@ public: bool is_declared_inline() const; + void + is_declared_inline(bool); + binding get_binding() const; diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc index b0afc76e..c467daca 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -7653,7 +7653,8 @@ die_is_declared_inline(Dwarf_Die* die) uint64_t inline_value = 0; if (!die_unsigned_constant_attribute(die, DW_AT_inline, inline_value)) return false; - return inline_value == DW_INL_declared_inlined; + return (inline_value == DW_INL_declared_inlined + || inline_value == DW_INL_declared_not_inlined); } /// Compare two DWARF strings using the most accurate (and slowest) @@ -12659,7 +12660,7 @@ static void finish_member_function_reading(Dwarf_Die* die, const function_decl_sptr& f, const class_or_union_sptr klass, - reader& rdr) + reader& rdr) { ABG_ASSERT(klass); @@ -12669,6 +12670,7 @@ finish_member_function_reading(Dwarf_Die* die, method_type_sptr method_t = is_method_type(m->get_type()); ABG_ASSERT(method_t); + size_t is_inline = die_is_declared_inline(die); bool is_ctor = (f->get_name() == klass->get_name()); bool is_dtor = (!f->get_name().empty() && static_cast(f->get_name())[0] == '~'); @@ -12732,6 +12734,7 @@ finish_member_function_reading(Dwarf_Die* die, is_static = false; } } + m->is_declared_inline(is_inline); set_member_access_specifier(m, access); if (vindex != -1) set_member_function_vtable_offset(m, vindex); @@ -15360,6 +15363,7 @@ build_function_decl(reader& rdr, if (floc) if (!result->get_location()) result->set_location(floc); + result->is_declared_inline(is_inline); } else { @@ -15971,6 +15975,7 @@ build_ir_node_from_die(reader& rdr, break; case DW_TAG_subprogram: + case DW_TAG_inlined_subroutine: { if (die_is_artificial(die)) break; @@ -16104,7 +16109,6 @@ build_ir_node_from_die(reader& rdr, case DW_TAG_common_block: case DW_TAG_common_inclusion: case DW_TAG_inheritance: - case DW_TAG_inlined_subroutine: case DW_TAG_with_stmt: case DW_TAG_access_declaration: case DW_TAG_catch_block: diff --git a/src/abg-ir.cc b/src/abg-ir.cc index d0d92055..e35f5908 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -22189,10 +22189,20 @@ const elf_symbol_sptr& function_decl::get_symbol() const {return priv_->symbol_;} +/// Test if the function was declared inline. +/// +/// @return true iff the function was declared inline. bool function_decl::is_declared_inline() const {return priv_->declared_inline_;} +/// Set the property of the function being declared inline. +/// +/// @param value true iff the function was declared inline. +void +function_decl::is_declared_inline(bool value) +{priv_->declared_inline_ = value;} + decl_base::binding function_decl::get_binding() const {return priv_->binding_;} @@ -22374,9 +22384,10 @@ equals(const function_decl& l, const function_decl& r, change_kind* k) ABG_RETURN_FALSE; } - // Compare the remaining properties - if (l.is_declared_inline() != r.is_declared_inline() - || l.get_binding() != r.get_binding()) + // Compare the remaining properties. Note that we don't take into + // account the fact that the function was declared inline or not as + // that doesn't have any impact on the final ABI. + if (l.get_binding() != r.get_binding()) { result = false; if (k) diff --git a/tests/data/test-annotate/test1.abi b/tests/data/test-annotate/test1.abi index ce2f77de..6bf4fd37 100644 --- a/tests/data/test-annotate/test1.abi +++ b/tests/data/test-annotate/test1.abi @@ -140,7 +140,7 @@ - + @@ -153,7 +153,7 @@ - + @@ -162,7 +162,7 @@ - + @@ -175,7 +175,7 @@ - + diff --git a/tests/data/test-annotate/test14-pr18893.so.abi b/tests/data/test-annotate/test14-pr18893.so.abi index cb2d0e91..c2af6a01 100644 --- a/tests/data/test-annotate/test14-pr18893.so.abi +++ b/tests/data/test-annotate/test14-pr18893.so.abi @@ -12138,7 +12138,7 @@ - + @@ -12149,7 +12149,7 @@ - + diff --git a/tests/data/test-annotate/test15-pr18892.so.abi b/tests/data/test-annotate/test15-pr18892.so.abi index 18ccd37e..52e68431 100644 --- a/tests/data/test-annotate/test15-pr18892.so.abi +++ b/tests/data/test-annotate/test15-pr18892.so.abi @@ -5282,7 +5282,7 @@ - + @@ -5544,7 +5544,7 @@ - + @@ -7712,7 +7712,7 @@ - + @@ -8094,7 +8094,7 @@ - + @@ -8132,7 +8132,7 @@ - + @@ -8141,7 +8141,7 @@ - + @@ -8566,7 +8566,7 @@ - + @@ -8749,7 +8749,7 @@ - + @@ -9875,7 +9875,7 @@ - + @@ -9926,7 +9926,7 @@ - + @@ -21372,7 +21372,7 @@ - + @@ -22065,7 +22065,7 @@ - + @@ -22074,7 +22074,7 @@ - + @@ -22085,7 +22085,7 @@ - + @@ -22094,7 +22094,7 @@ - + @@ -22105,7 +22105,7 @@ - + @@ -22116,7 +22116,7 @@ - + @@ -26964,7 +26964,7 @@ - + @@ -26983,7 +26983,7 @@ - + @@ -27270,7 +27270,7 @@ - + @@ -27289,7 +27289,7 @@ - + @@ -28005,7 +28005,7 @@ - + @@ -32141,7 +32141,7 @@ - + @@ -32154,7 +32154,7 @@ - + @@ -32200,7 +32200,7 @@ - + @@ -32209,7 +32209,7 @@ - + @@ -32248,7 +32248,7 @@ - + @@ -33570,7 +33570,7 @@ - + @@ -38226,7 +38226,7 @@ - + @@ -38766,7 +38766,7 @@ - + @@ -38821,7 +38821,7 @@ - + diff --git a/tests/data/test-annotate/test17-pr19027.so.abi b/tests/data/test-annotate/test17-pr19027.so.abi index f5971be7..baa4f1bc 100644 --- a/tests/data/test-annotate/test17-pr19027.so.abi +++ b/tests/data/test-annotate/test17-pr19027.so.abi @@ -21698,7 +21698,7 @@ - + @@ -21715,7 +21715,7 @@ - + @@ -21778,7 +21778,7 @@ - + @@ -21795,7 +21795,7 @@ - + diff --git a/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi b/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi index ec3a5b8b..6ff98a97 100644 --- a/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi +++ b/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi @@ -9582,7 +9582,7 @@ - + @@ -9678,7 +9678,7 @@ - + @@ -9898,7 +9898,7 @@ - + @@ -9907,7 +9907,7 @@ - + @@ -9918,7 +9918,7 @@ - + @@ -9940,7 +9940,7 @@ - + @@ -9962,7 +9962,7 @@ - + @@ -10193,7 +10193,7 @@ - + @@ -13150,7 +13150,7 @@ - + @@ -13161,7 +13161,7 @@ - + @@ -15063,7 +15063,7 @@ - + @@ -16646,7 +16646,7 @@ - + @@ -16813,7 +16813,7 @@ - + @@ -16980,7 +16980,7 @@ - + @@ -17044,7 +17044,7 @@ - + @@ -17053,7 +17053,7 @@ - + @@ -17122,7 +17122,7 @@ - + @@ -17138,7 +17138,7 @@ - + @@ -17147,7 +17147,7 @@ - + @@ -17161,7 +17161,7 @@ - + @@ -18760,7 +18760,7 @@ - + @@ -18830,7 +18830,7 @@ - + @@ -18839,7 +18839,7 @@ - + @@ -18853,7 +18853,7 @@ - + @@ -21681,7 +21681,7 @@ - + @@ -21690,7 +21690,7 @@ - + @@ -21699,7 +21699,7 @@ - + @@ -21710,7 +21710,7 @@ - + @@ -24766,7 +24766,7 @@ - + @@ -24775,7 +24775,7 @@ - + @@ -24833,7 +24833,7 @@ - + @@ -24849,7 +24849,7 @@ - + @@ -24858,7 +24858,7 @@ - + @@ -24872,7 +24872,7 @@ - + diff --git a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi index 1a3f6c5e..799f9543 100644 --- a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi +++ b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi @@ -4402,7 +4402,7 @@ - + @@ -4413,7 +4413,7 @@ - + @@ -4895,7 +4895,7 @@ - + @@ -4906,7 +4906,7 @@ - + @@ -4956,7 +4956,7 @@ - + @@ -4967,7 +4967,7 @@ - + @@ -5017,7 +5017,7 @@ - + @@ -5028,7 +5028,7 @@ - + @@ -5078,7 +5078,7 @@ - + @@ -5089,7 +5089,7 @@ - + @@ -5139,7 +5139,7 @@ - + @@ -5150,7 +5150,7 @@ - + @@ -5200,7 +5200,7 @@ - + @@ -5211,7 +5211,7 @@ - + @@ -5261,7 +5261,7 @@ - + @@ -5272,7 +5272,7 @@ - + @@ -5322,7 +5322,7 @@ - + @@ -5333,7 +5333,7 @@ - + @@ -6570,7 +6570,7 @@ - + @@ -6620,7 +6620,7 @@ - + @@ -6709,7 +6709,7 @@ - + @@ -6722,7 +6722,7 @@ - + @@ -10342,7 +10342,7 @@ - + @@ -10353,7 +10353,7 @@ - + @@ -10702,7 +10702,7 @@ - + @@ -10713,7 +10713,7 @@ - + @@ -15926,7 +15926,7 @@ - + @@ -15937,7 +15937,7 @@ - + @@ -23263,7 +23263,7 @@ - + @@ -23274,7 +23274,7 @@ - + @@ -23285,7 +23285,7 @@ - + @@ -23296,7 +23296,7 @@ - + @@ -23327,7 +23327,7 @@ - + @@ -23338,7 +23338,7 @@ - + @@ -23349,7 +23349,7 @@ - + @@ -23360,7 +23360,7 @@ - + @@ -23402,7 +23402,7 @@ - + @@ -23435,7 +23435,7 @@ - + @@ -23446,7 +23446,7 @@ - + @@ -23455,7 +23455,7 @@ - + @@ -23752,7 +23752,7 @@ - + @@ -23763,7 +23763,7 @@ - + @@ -23796,7 +23796,7 @@ - + @@ -23807,7 +23807,7 @@ - + @@ -23851,7 +23851,7 @@ - + @@ -26248,7 +26248,7 @@ - + @@ -26610,7 +26610,7 @@ - + @@ -26738,7 +26738,7 @@ - + @@ -30317,7 +30317,7 @@ - + diff --git a/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi b/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi index 79d3b905..83073eb6 100644 --- a/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi +++ b/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi @@ -4532,7 +4532,7 @@ - + @@ -4547,7 +4547,7 @@ - + @@ -4644,7 +4644,7 @@ - + @@ -7434,7 +7434,7 @@ - + @@ -7571,7 +7571,7 @@ - + @@ -14466,7 +14466,7 @@ - + @@ -14668,7 +14668,7 @@ - + @@ -22784,7 +22784,7 @@ - + @@ -22795,7 +22795,7 @@ - + @@ -23428,7 +23428,7 @@ - + @@ -23439,7 +23439,7 @@ - + @@ -24035,7 +24035,7 @@ - + @@ -24862,7 +24862,7 @@ - + @@ -24874,7 +24874,7 @@ - + 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 a494b376..981ec42b 100644 --- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt +++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt @@ -18,6 +18,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C] 'method void std::_Head_base<0ul, STR&&, false>::_Head_base(STR&&)' has some indirect sub-type changes: 'method void std::_Head_base<0ul, STR&&, false>::_Head_base(STR&&) {_ZNSt10_Head_baseILm0EO3STRLb0EEC2IS0_St9true_typeEEOT_}' now becomes 'method void std::_Head_base<0, STR &&, false>::_Head_base(STR&&) {_ZNSt10_Head_baseILm0EO3STRLb0EEC2IS0_St9true_typeEEOT_}' + method void std::_Head_base<0, STR &&, false>::_Head_base(STR&&) is not declared inline anymore implicit parameter 0 of type 'std::_Head_base<0ul, STR&&, false>* const' changed: entity changed from 'std::_Head_base<0ul, STR&&, false>* const' to 'std::_Head_base<0, STR &&, false>*' type size hasn't changed diff --git a/tests/data/test-diff-filter/test41-report-0.txt b/tests/data/test-diff-filter/test41-report-0.txt index 362fa6ef..db811543 100644 --- a/tests/data/test-diff-filter/test41-report-0.txt +++ b/tests/data/test-diff-filter/test41-report-0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 8 Removed, 4 Changed (6 filtered out), 16 Added functions +Functions changes summary: 8 Removed, 3 Changed (7 filtered out), 16 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable Function symbols changes summary: 1 Removed, 0 Added function symbol not referenced by debug info Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info @@ -34,7 +34,7 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen note that this adds a new entry to the vtable of class std::tr1::_Sp_counted_base<__gnu_cxx::_Lock_policy::_S_atomic> [A] 'function void std::tr1::__enable_shared_from_this_helper<__gnu_cxx::_Lock_policy::_S_atomic>(const std::tr1::__shared_count<__gnu_cxx::_Lock_policy::_S_atomic>&, ...)' {_ZNSt3tr132__enable_shared_from_this_helperILN9__gnu_cxx12_Lock_policyE2EEEvRKNS_14__shared_countIXT_EEEz} -4 functions with some indirect sub-type change: +3 functions with some indirect sub-type change: [C] 'method abigail::interned_string abigail::xml_writer::write_context::get_id_for_type(abigail::ir::type_base*) const' at abg-writer.cc:247:1 has some indirect sub-type changes: return type changed: @@ -60,9 +60,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen 1 base class insertion: class std::tr1::__shared_ptr at shared_ptr.h:539:1 - [C] 'method bool abigail::xml_writer::write_context::type_is_emitted(const abigail::ir::type_base_sptr&)' at abg-writer.cc:497:1 has some indirect sub-type changes: - method bool abigail::xml_writer::write_context::type_is_emitted(const abigail::ir::type_base_sptr&) is not declared inline anymore - [C] 'function bool abigail::xml_writer::write_corpus_to_native_xml(const abigail::ir::corpus_sptr, unsigned int, std::ostream&, const bool)' at abg-writer.cc:3862:1 has some indirect sub-type changes: parameter 1 of type 'const abigail::ir::corpus_sptr' has sub-type changes: in unqualified underlying type 'typedef abigail::ir::corpus_sptr' at abg-fwd.h:101:1: diff --git a/tests/data/test-read-dwarf/test1.abi b/tests/data/test-read-dwarf/test1.abi index 79a72621..c38cc102 100644 --- a/tests/data/test-read-dwarf/test1.abi +++ b/tests/data/test-read-dwarf/test1.abi @@ -87,7 +87,7 @@ - + @@ -95,13 +95,13 @@ - + - + @@ -109,7 +109,7 @@ - + diff --git a/tests/data/test-read-dwarf/test1.hash.abi b/tests/data/test-read-dwarf/test1.hash.abi index 19b31e84..e30f277f 100644 --- a/tests/data/test-read-dwarf/test1.hash.abi +++ b/tests/data/test-read-dwarf/test1.hash.abi @@ -87,7 +87,7 @@ - + @@ -95,13 +95,13 @@ - + - + @@ -109,7 +109,7 @@ - + diff --git a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi index d4b32357..11d28436 100644 --- a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi +++ b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi @@ -1935,14 +1935,14 @@ - + - + @@ -2025,14 +2025,14 @@ - + - + @@ -2864,13 +2864,13 @@ - + - + @@ -2900,13 +2900,13 @@ - + - + @@ -2999,19 +2999,19 @@ - + - + - + @@ -3019,7 +3019,7 @@ - + @@ -3086,7 +3086,7 @@ - + @@ -3122,7 +3122,7 @@ - + @@ -3152,7 +3152,7 @@ - + @@ -3160,7 +3160,7 @@ - + @@ -4953,28 +4953,28 @@ - + - + - + - + @@ -5007,14 +5007,14 @@ - + - + @@ -5065,26 +5065,26 @@ - + - + - + - + @@ -5163,13 +5163,13 @@ - + - + @@ -5200,14 +5200,14 @@ - + - + @@ -5272,13 +5272,13 @@ - + - + @@ -5356,40 +5356,40 @@ - + - + - + - + - + - + @@ -5443,19 +5443,19 @@ - + - + - + @@ -5463,7 +5463,7 @@ - + @@ -5529,7 +5529,7 @@ - + @@ -5537,7 +5537,7 @@ - + @@ -5545,7 +5545,7 @@ - + @@ -5554,7 +5554,7 @@ - + @@ -5563,7 +5563,7 @@ - + @@ -5573,7 +5573,7 @@ - + @@ -5590,13 +5590,13 @@ - + - + @@ -5697,54 +5697,54 @@ - + - + - + - + - + - + - + - + @@ -5859,20 +5859,20 @@ - + - + - + @@ -6021,7 +6021,7 @@ - + @@ -6029,7 +6029,7 @@ - + @@ -6079,7 +6079,7 @@ - + @@ -6099,7 +6099,7 @@ - + @@ -6107,7 +6107,7 @@ - + @@ -6287,26 +6287,26 @@ - + - + - + - + @@ -6664,7 +6664,7 @@ - + @@ -6672,7 +6672,7 @@ - + @@ -6778,7 +6778,7 @@ - + @@ -6787,7 +6787,7 @@ - + @@ -6894,7 +6894,7 @@ - + @@ -6910,13 +6910,13 @@ - + - + @@ -6991,26 +6991,26 @@ - + - + - + - + @@ -7023,28 +7023,28 @@ - + - + - + - + @@ -7072,13 +7072,13 @@ - + - + @@ -7103,13 +7103,13 @@ - + - + @@ -7160,14 +7160,14 @@ - + - + @@ -7213,14 +7213,14 @@ - + - + @@ -7681,28 +7681,28 @@ - + - + - + - + diff --git a/tests/data/test-read-dwarf/test11-pr18828.so.abi b/tests/data/test-read-dwarf/test11-pr18828.so.abi index 514d2e2e..af2c5a2d 100644 --- a/tests/data/test-read-dwarf/test11-pr18828.so.abi +++ b/tests/data/test-read-dwarf/test11-pr18828.so.abi @@ -2676,26 +2676,26 @@ - + - + - + - + @@ -2876,13 +2876,13 @@ - + - + @@ -2929,26 +2929,26 @@ - + - + - + - + @@ -3007,13 +3007,13 @@ - + - + @@ -3060,26 +3060,26 @@ - + - + - + - + @@ -3556,13 +3556,13 @@ - + - + @@ -3675,26 +3675,26 @@ - + - + - + - + @@ -3861,14 +3861,14 @@ - + - + @@ -3923,14 +3923,14 @@ - + - + @@ -4283,26 +4283,26 @@ - + - + - + - + @@ -4331,26 +4331,26 @@ - + - + - + - + @@ -4451,26 +4451,26 @@ - + - + - + - + @@ -4539,40 +4539,40 @@ - + - + - + - + - + - + @@ -4736,14 +4736,14 @@ - + - + @@ -5155,13 +5155,13 @@ - + - + @@ -5242,13 +5242,13 @@ - + - + @@ -5542,13 +5542,13 @@ - + - + @@ -5647,14 +5647,14 @@ - + - + @@ -6047,14 +6047,14 @@ - + - + @@ -6928,26 +6928,26 @@ - + - + - + - + @@ -7005,14 +7005,14 @@ - + - + @@ -7186,14 +7186,14 @@ - + - + @@ -7817,14 +7817,14 @@ - + - + @@ -8655,26 +8655,26 @@ - + - + - + - + @@ -8759,26 +8759,26 @@ - + - + - + - + @@ -8817,14 +8817,14 @@ - + - + @@ -8936,14 +8936,14 @@ - + - + @@ -10231,13 +10231,13 @@ - + - + @@ -11082,14 +11082,14 @@ - + - + @@ -11141,14 +11141,14 @@ - + - + @@ -11893,14 +11893,14 @@ - + - + @@ -11921,13 +11921,13 @@ - + - + @@ -11967,14 +11967,14 @@ - + - + @@ -11995,13 +11995,13 @@ - + - + @@ -12143,26 +12143,26 @@ - + - + - + - + @@ -12245,40 +12245,40 @@ - + - + - + - + - + - + @@ -12490,14 +12490,14 @@ - + - + @@ -13213,7 +13213,7 @@ - + @@ -13221,7 +13221,7 @@ - + @@ -13236,13 +13236,13 @@ - + - + @@ -13381,14 +13381,14 @@ - + - + @@ -13481,28 +13481,28 @@ - + - + - + - + @@ -13690,14 +13690,14 @@ - + - + @@ -13739,14 +13739,14 @@ - + - + @@ -14085,13 +14085,13 @@ - + - + @@ -14121,7 +14121,7 @@ - + @@ -14132,7 +14132,7 @@ - + @@ -14150,13 +14150,13 @@ - + - + @@ -14222,7 +14222,7 @@ - + @@ -14233,7 +14233,7 @@ - + @@ -14251,13 +14251,13 @@ - + - + @@ -14323,7 +14323,7 @@ - + @@ -14334,7 +14334,7 @@ - + @@ -14352,13 +14352,13 @@ - + - + @@ -14598,13 +14598,13 @@ - + - + @@ -14681,28 +14681,28 @@ - + - + - + - + @@ -14720,13 +14720,13 @@ - + - + @@ -14784,13 +14784,13 @@ - + - + @@ -14868,40 +14868,40 @@ - + - + - + - + - + - + @@ -15028,14 +15028,14 @@ - + - + @@ -15049,14 +15049,14 @@ - + - + @@ -15494,7 +15494,7 @@ - + @@ -15502,7 +15502,7 @@ - + @@ -15529,14 +15529,14 @@ - + - + @@ -15567,14 +15567,14 @@ - + - + @@ -15627,7 +15627,7 @@ - + @@ -15635,7 +15635,7 @@ - + @@ -15643,20 +15643,20 @@ - + - + - + @@ -15690,7 +15690,7 @@ - + @@ -15698,7 +15698,7 @@ - + @@ -15894,14 +15894,14 @@ - + - + @@ -16178,14 +16178,14 @@ - + - + @@ -16309,14 +16309,14 @@ - + - + @@ -16652,26 +16652,26 @@ - + - + - + - + diff --git a/tests/data/test-read-dwarf/test14-pr18893.so.abi b/tests/data/test-read-dwarf/test14-pr18893.so.abi index f49a7539..f1504fc5 100644 --- a/tests/data/test-read-dwarf/test14-pr18893.so.abi +++ b/tests/data/test-read-dwarf/test14-pr18893.so.abi @@ -7804,14 +7804,14 @@ - + - + diff --git a/tests/data/test-read-dwarf/test15-pr18892.so.abi b/tests/data/test-read-dwarf/test15-pr18892.so.abi index 56877d66..955bb9e2 100644 --- a/tests/data/test-read-dwarf/test15-pr18892.so.abi +++ b/tests/data/test-read-dwarf/test15-pr18892.so.abi @@ -2949,7 +2949,7 @@ - + @@ -3112,7 +3112,7 @@ - + @@ -4326,7 +4326,7 @@ - + @@ -4559,7 +4559,7 @@ - + @@ -4584,13 +4584,13 @@ - + - + @@ -4850,7 +4850,7 @@ - + @@ -4971,7 +4971,7 @@ - + @@ -5685,7 +5685,7 @@ - + @@ -5718,7 +5718,7 @@ - + @@ -11927,7 +11927,7 @@ - + @@ -12414,40 +12414,40 @@ - + - + - + - + - + - + @@ -15359,7 +15359,7 @@ - + @@ -15370,7 +15370,7 @@ - + @@ -15556,7 +15556,7 @@ - + @@ -15567,7 +15567,7 @@ - + @@ -15986,7 +15986,7 @@ - + @@ -18629,7 +18629,7 @@ - + @@ -18637,7 +18637,7 @@ - + @@ -18668,13 +18668,13 @@ - + - + @@ -18700,7 +18700,7 @@ - + @@ -19526,7 +19526,7 @@ - + @@ -22442,7 +22442,7 @@ - + @@ -22792,7 +22792,7 @@ - + @@ -22830,7 +22830,7 @@ - + diff --git a/tests/data/test-read-dwarf/test16-pr18904.so.abi b/tests/data/test-read-dwarf/test16-pr18904.so.abi index dc1c3954..616cc2d8 100644 --- a/tests/data/test-read-dwarf/test16-pr18904.so.abi +++ b/tests/data/test-read-dwarf/test16-pr18904.so.abi @@ -2210,7 +2210,7 @@ - + @@ -2245,7 +2245,7 @@ - + @@ -2302,14 +2302,14 @@ - + - + @@ -2611,7 +2611,7 @@ - + @@ -2819,13 +2819,13 @@ - + - + @@ -3012,7 +3012,7 @@ - + @@ -3056,7 +3056,7 @@ - + @@ -3225,13 +3225,13 @@ - + - + @@ -3557,7 +3557,7 @@ - + @@ -3628,7 +3628,7 @@ - + @@ -3654,7 +3654,7 @@ - + @@ -3679,7 +3679,7 @@ - + @@ -4580,7 +4580,7 @@ - + @@ -4607,7 +4607,7 @@ - + @@ -4721,13 +4721,13 @@ - + - + @@ -4921,7 +4921,7 @@ - + @@ -4954,7 +4954,7 @@ - + @@ -5216,7 +5216,7 @@ - + @@ -5242,7 +5242,7 @@ - + @@ -5262,7 +5262,7 @@ - + @@ -5289,13 +5289,13 @@ - + - + @@ -5470,7 +5470,7 @@ - + @@ -5489,7 +5489,7 @@ - + @@ -5669,7 +5669,7 @@ - + @@ -5706,7 +5706,7 @@ - + @@ -5936,7 +5936,7 @@ - + @@ -5965,7 +5965,7 @@ - + @@ -6077,13 +6077,13 @@ - + - + @@ -6095,13 +6095,13 @@ - + - + @@ -6113,13 +6113,13 @@ - + - + @@ -6131,13 +6131,13 @@ - + - + @@ -6149,13 +6149,13 @@ - + - + @@ -6164,13 +6164,13 @@ - + - + @@ -6179,13 +6179,13 @@ - + - + @@ -6194,19 +6194,19 @@ - + - + - + @@ -6216,13 +6216,13 @@ - + - + @@ -6259,7 +6259,7 @@ - + @@ -6273,7 +6273,7 @@ - + @@ -6332,7 +6332,7 @@ - + @@ -6465,7 +6465,7 @@ - + @@ -6490,7 +6490,7 @@ - + @@ -6561,7 +6561,7 @@ - + @@ -6616,7 +6616,7 @@ - + @@ -6688,7 +6688,7 @@ - + @@ -6765,7 +6765,7 @@ - + @@ -6782,7 +6782,7 @@ - + @@ -6942,14 +6942,14 @@ - + - + @@ -6989,7 +6989,7 @@ - + @@ -7028,7 +7028,7 @@ - + @@ -7056,7 +7056,7 @@ - + @@ -7089,7 +7089,7 @@ - + @@ -7110,7 +7110,7 @@ - + @@ -7141,7 +7141,7 @@ - + @@ -7169,7 +7169,7 @@ - + @@ -7235,7 +7235,7 @@ - + @@ -8241,7 +8241,7 @@ - + @@ -8251,7 +8251,7 @@ - + @@ -8268,7 +8268,7 @@ - + @@ -8284,7 +8284,7 @@ - + @@ -8300,7 +8300,7 @@ - + @@ -8316,7 +8316,7 @@ - + @@ -8332,7 +8332,7 @@ - + @@ -8340,7 +8340,7 @@ - + @@ -8348,7 +8348,7 @@ - + @@ -8356,7 +8356,7 @@ - + @@ -8364,7 +8364,7 @@ - + @@ -8372,7 +8372,7 @@ - + @@ -8380,7 +8380,7 @@ - + @@ -8402,7 +8402,7 @@ - + @@ -8412,7 +8412,7 @@ - + @@ -8509,7 +8509,7 @@ - + @@ -8543,7 +8543,7 @@ - + @@ -8572,7 +8572,7 @@ - + @@ -8599,7 +8599,7 @@ - + @@ -8614,7 +8614,7 @@ - + @@ -8649,7 +8649,7 @@ - + @@ -8688,7 +8688,7 @@ - + @@ -8702,7 +8702,7 @@ - + @@ -8749,7 +8749,7 @@ - + @@ -8807,7 +8807,7 @@ - + @@ -8873,13 +8873,13 @@ - + - + @@ -8893,7 +8893,7 @@ - + @@ -8959,13 +8959,13 @@ - + - + @@ -8979,7 +8979,7 @@ - + @@ -9025,13 +9025,13 @@ - + - + @@ -9064,7 +9064,7 @@ - + @@ -9123,13 +9123,13 @@ - + - + @@ -9143,7 +9143,7 @@ - + @@ -9189,13 +9189,13 @@ - + - + @@ -9307,7 +9307,7 @@ - + @@ -9408,7 +9408,7 @@ - + @@ -9450,7 +9450,7 @@ - + @@ -9599,7 +9599,7 @@ - + @@ -9672,7 +9672,7 @@ - + @@ -9981,13 +9981,13 @@ - + - + @@ -10044,13 +10044,13 @@ - + - + @@ -10085,13 +10085,13 @@ - + - + @@ -10178,13 +10178,13 @@ - + - + @@ -10219,13 +10219,13 @@ - + - + @@ -10282,13 +10282,13 @@ - + - + @@ -10367,13 +10367,13 @@ - + - + @@ -10408,13 +10408,13 @@ - + - + @@ -10452,7 +10452,7 @@ - + @@ -10512,13 +10512,13 @@ - + - + @@ -10569,7 +10569,7 @@ - + @@ -10655,7 +10655,7 @@ - + @@ -10777,7 +10777,7 @@ - + @@ -10806,7 +10806,7 @@ - + @@ -11606,7 +11606,7 @@ - + @@ -11680,14 +11680,14 @@ - + - + @@ -11725,13 +11725,13 @@ - + - + @@ -11743,13 +11743,13 @@ - + - + @@ -12038,20 +12038,20 @@ - + - + - + @@ -12153,7 +12153,7 @@ - + @@ -12248,13 +12248,13 @@ - + - + @@ -12313,7 +12313,7 @@ - + @@ -12361,13 +12361,13 @@ - + - + @@ -12391,13 +12391,13 @@ - + - + @@ -12818,7 +12818,7 @@ - + @@ -13234,7 +13234,7 @@ - + @@ -13260,7 +13260,7 @@ - + @@ -13319,7 +13319,7 @@ - + @@ -13371,20 +13371,20 @@ - + - + - + @@ -13431,7 +13431,7 @@ - + @@ -13456,7 +13456,7 @@ - + @@ -13481,7 +13481,7 @@ - + @@ -13903,13 +13903,13 @@ - + - + @@ -14001,7 +14001,7 @@ - + @@ -14074,13 +14074,13 @@ - + - + @@ -14461,7 +14461,7 @@ - + @@ -14526,13 +14526,13 @@ - + - + @@ -14668,7 +14668,7 @@ - + @@ -14789,13 +14789,13 @@ - + - + @@ -14944,13 +14944,13 @@ - + - + @@ -15202,7 +15202,7 @@ - + @@ -15216,7 +15216,7 @@ - + @@ -15271,14 +15271,14 @@ - + - + @@ -15288,14 +15288,14 @@ - + - + @@ -15355,7 +15355,7 @@ - + @@ -15373,7 +15373,7 @@ - + @@ -15412,7 +15412,7 @@ - + @@ -15425,7 +15425,7 @@ - + @@ -15435,7 +15435,7 @@ - + @@ -15448,7 +15448,7 @@ - + @@ -15472,13 +15472,13 @@ - + - + @@ -15503,13 +15503,13 @@ - + - + @@ -15534,13 +15534,13 @@ - + - + @@ -15565,13 +15565,13 @@ - + - + @@ -15669,7 +15669,7 @@ - + @@ -16334,7 +16334,7 @@ - + @@ -16368,7 +16368,7 @@ - + @@ -16507,13 +16507,13 @@ - + - + @@ -16555,7 +16555,7 @@ - + @@ -16570,7 +16570,7 @@ - + @@ -16612,13 +16612,13 @@ - + - + @@ -16772,7 +16772,7 @@ - + @@ -16831,13 +16831,13 @@ - + - + @@ -16910,7 +16910,7 @@ - + @@ -17071,13 +17071,13 @@ - + - + @@ -17426,7 +17426,7 @@ - + @@ -17460,7 +17460,7 @@ - + @@ -17494,7 +17494,7 @@ - + @@ -17550,7 +17550,7 @@ - + @@ -17595,7 +17595,7 @@ - + @@ -17640,7 +17640,7 @@ - + @@ -17685,7 +17685,7 @@ - + @@ -17730,7 +17730,7 @@ - + @@ -17862,13 +17862,13 @@ - + - + diff --git a/tests/data/test-read-dwarf/test17-pr19027.so.abi b/tests/data/test-read-dwarf/test17-pr19027.so.abi index ff79ed3f..b7e25476 100644 --- a/tests/data/test-read-dwarf/test17-pr19027.so.abi +++ b/tests/data/test-read-dwarf/test17-pr19027.so.abi @@ -13856,7 +13856,7 @@ - + @@ -13866,7 +13866,7 @@ - + @@ -13908,7 +13908,7 @@ - + @@ -13918,7 +13918,7 @@ - + diff --git a/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi b/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi index 9afa3083..7a444f60 100644 --- a/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi +++ b/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi @@ -5699,7 +5699,7 @@ - + @@ -5759,7 +5759,7 @@ - + @@ -5893,20 +5893,20 @@ - + - + - + @@ -5920,7 +5920,7 @@ - + @@ -5934,7 +5934,7 @@ - + @@ -6075,7 +6075,7 @@ - + @@ -7855,14 +7855,14 @@ - + - + @@ -9074,7 +9074,7 @@ - + @@ -10081,7 +10081,7 @@ - + @@ -10184,7 +10184,7 @@ - + @@ -10287,7 +10287,7 @@ - + @@ -10323,13 +10323,13 @@ - + - + @@ -10372,7 +10372,7 @@ - + @@ -10382,13 +10382,13 @@ - + - + @@ -10397,7 +10397,7 @@ - + @@ -11375,7 +11375,7 @@ - + @@ -11419,13 +11419,13 @@ - + - + @@ -11434,7 +11434,7 @@ - + @@ -13133,26 +13133,26 @@ - + - + - + - + @@ -15065,13 +15065,13 @@ - + - + @@ -15107,7 +15107,7 @@ - + @@ -15117,13 +15117,13 @@ - + - + @@ -15132,7 +15132,7 @@ - + diff --git a/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi b/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi index 2d6edc3f..47a1fe26 100644 --- a/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi +++ b/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi @@ -2533,14 +2533,14 @@ - + - + @@ -2851,14 +2851,14 @@ - + - + @@ -2889,14 +2889,14 @@ - + - + @@ -2927,14 +2927,14 @@ - + - + @@ -2965,14 +2965,14 @@ - + - + @@ -3003,14 +3003,14 @@ - + - + @@ -3041,14 +3041,14 @@ - + - + @@ -3079,14 +3079,14 @@ - + - + @@ -3117,14 +3117,14 @@ - + - + @@ -3962,7 +3962,7 @@ - + @@ -3993,7 +3993,7 @@ - + @@ -4048,7 +4048,7 @@ - + @@ -4056,7 +4056,7 @@ - + @@ -6261,14 +6261,14 @@ - + - + @@ -6494,14 +6494,14 @@ - + - + @@ -9692,14 +9692,14 @@ - + - + @@ -14270,28 +14270,28 @@ - + - + - + - + @@ -14311,28 +14311,28 @@ - + - + - + - + @@ -14359,7 +14359,7 @@ - + @@ -14380,20 +14380,20 @@ - + - + - + @@ -14582,14 +14582,14 @@ - + - + @@ -14610,14 +14610,14 @@ - + - + @@ -14645,7 +14645,7 @@ - + @@ -16142,7 +16142,7 @@ - + @@ -16365,7 +16365,7 @@ - + @@ -16444,7 +16444,7 @@ - + @@ -18791,7 +18791,7 @@ - + diff --git a/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi b/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi index f288d7f8..13a3a8a8 100644 --- a/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi +++ b/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi @@ -2725,7 +2725,7 @@ - + @@ -2734,7 +2734,7 @@ - + @@ -2795,7 +2795,7 @@ - + @@ -4552,7 +4552,7 @@ - + @@ -4637,7 +4637,7 @@ - + @@ -8749,7 +8749,7 @@ - + @@ -8876,7 +8876,7 @@ - + @@ -13821,14 +13821,14 @@ - + - + @@ -14181,14 +14181,14 @@ - + - + @@ -14571,7 +14571,7 @@ - + @@ -15103,7 +15103,7 @@ - + @@ -15111,7 +15111,7 @@ - + diff --git a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi index 24e73a0a..2c184c08 100644 --- a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi +++ b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi @@ -4730,7 +4730,7 @@ - + @@ -4765,7 +4765,7 @@ - + @@ -4800,7 +4800,7 @@ - + @@ -4835,7 +4835,7 @@ - + @@ -4870,7 +4870,7 @@ - + @@ -4905,7 +4905,7 @@ - + @@ -4940,7 +4940,7 @@ - + @@ -6969,7 +6969,7 @@ - + @@ -9472,7 +9472,7 @@ - + @@ -9559,7 +9559,7 @@ - + @@ -9994,7 +9994,7 @@ - + @@ -12651,40 +12651,40 @@ - + - + - + - + - + - + @@ -13371,40 +13371,40 @@ - + - + - + - + - + - + @@ -14291,7 +14291,7 @@ - + @@ -14514,7 +14514,7 @@ - + @@ -14671,7 +14671,7 @@ - + @@ -14750,7 +14750,7 @@ - + @@ -14907,7 +14907,7 @@ - + @@ -14986,7 +14986,7 @@ - + @@ -15293,7 +15293,7 @@ - + @@ -15522,7 +15522,7 @@ - + @@ -15607,7 +15607,7 @@ - + @@ -15701,7 +15701,7 @@ - + @@ -15801,7 +15801,7 @@ - + @@ -15895,7 +15895,7 @@ - + @@ -16304,14 +16304,14 @@ - + - + @@ -16860,14 +16860,14 @@ - + - + @@ -18117,7 +18117,7 @@ - + @@ -18640,7 +18640,7 @@ - + @@ -18725,7 +18725,7 @@ - + @@ -18960,14 +18960,14 @@ - + - + @@ -19516,14 +19516,14 @@ - + - + @@ -20557,13 +20557,13 @@ - + - + @@ -20832,13 +20832,13 @@ - + - + @@ -21132,13 +21132,13 @@ - + - + @@ -21158,14 +21158,14 @@ - + - + @@ -21193,13 +21193,13 @@ - + - + @@ -21381,13 +21381,13 @@ - + - + @@ -21407,14 +21407,14 @@ - + - + @@ -21442,13 +21442,13 @@ - + - + @@ -21542,7 +21542,7 @@ - + @@ -21551,7 +21551,7 @@ - + @@ -21559,7 +21559,7 @@ - + @@ -21601,7 +21601,7 @@ - + @@ -21609,14 +21609,14 @@ - + - + @@ -21942,19 +21942,19 @@ - + - + - + @@ -22060,7 +22060,7 @@ - + @@ -22069,7 +22069,7 @@ - + @@ -22077,7 +22077,7 @@ - + @@ -22119,7 +22119,7 @@ - + @@ -22127,14 +22127,14 @@ - + - + @@ -22460,19 +22460,19 @@ - + - + - + @@ -22638,13 +22638,13 @@ - + - + @@ -22737,14 +22737,14 @@ - + - + @@ -22765,13 +22765,13 @@ - + - + @@ -23003,13 +23003,13 @@ - + - + @@ -23102,14 +23102,14 @@ - + - + @@ -23130,13 +23130,13 @@ - + - + @@ -23200,7 +23200,7 @@ - + @@ -26122,7 +26122,7 @@ - + @@ -26130,20 +26130,20 @@ - + - + - + @@ -26153,7 +26153,7 @@ - + @@ -26162,7 +26162,7 @@ - + @@ -26170,7 +26170,7 @@ - + @@ -26180,7 +26180,7 @@ - + @@ -26189,7 +26189,7 @@ - + @@ -26239,19 +26239,19 @@ - + - + - + @@ -26292,7 +26292,7 @@ - + @@ -26300,20 +26300,20 @@ - + - + - + @@ -26323,7 +26323,7 @@ - + @@ -26332,7 +26332,7 @@ - + @@ -26340,7 +26340,7 @@ - + @@ -26350,7 +26350,7 @@ - + @@ -26359,7 +26359,7 @@ - + @@ -26409,19 +26409,19 @@ - + - + - + @@ -26462,7 +26462,7 @@ - + @@ -26470,20 +26470,20 @@ - + - + - + @@ -26493,7 +26493,7 @@ - + @@ -26502,7 +26502,7 @@ - + @@ -26510,7 +26510,7 @@ - + @@ -26520,7 +26520,7 @@ - + @@ -26529,7 +26529,7 @@ - + @@ -26579,19 +26579,19 @@ - + - + - + @@ -26632,7 +26632,7 @@ - + @@ -26640,20 +26640,20 @@ - + - + - + @@ -26663,7 +26663,7 @@ - + @@ -26672,7 +26672,7 @@ - + @@ -26680,7 +26680,7 @@ - + @@ -26690,7 +26690,7 @@ - + @@ -26699,7 +26699,7 @@ - + @@ -26749,19 +26749,19 @@ - + - + - + @@ -26802,7 +26802,7 @@ - + @@ -26810,20 +26810,20 @@ - + - + - + @@ -26833,7 +26833,7 @@ - + @@ -26842,7 +26842,7 @@ - + @@ -26850,7 +26850,7 @@ - + @@ -26860,7 +26860,7 @@ - + @@ -26869,7 +26869,7 @@ - + @@ -26919,19 +26919,19 @@ - + - + - + @@ -26972,7 +26972,7 @@ - + @@ -26980,20 +26980,20 @@ - + - + - + @@ -27003,7 +27003,7 @@ - + @@ -27012,7 +27012,7 @@ - + @@ -27020,7 +27020,7 @@ - + @@ -27030,7 +27030,7 @@ - + @@ -27039,7 +27039,7 @@ - + @@ -27089,19 +27089,19 @@ - + - + - + @@ -27129,13 +27129,13 @@ - + - + @@ -27226,13 +27226,13 @@ - + - + @@ -27323,7 +27323,7 @@ - + @@ -27332,7 +27332,7 @@ - + @@ -27340,14 +27340,14 @@ - + - + @@ -27355,14 +27355,14 @@ - + - + @@ -27376,19 +27376,19 @@ - + - + - + @@ -27416,7 +27416,7 @@ - + @@ -27425,7 +27425,7 @@ - + @@ -27433,14 +27433,14 @@ - + - + @@ -27448,14 +27448,14 @@ - + - + @@ -27469,19 +27469,19 @@ - + - + - + @@ -27527,14 +27527,14 @@ - + - + @@ -27571,7 +27571,7 @@ - + @@ -27580,7 +27580,7 @@ - + @@ -27588,7 +27588,7 @@ - + @@ -27651,7 +27651,7 @@ - + @@ -27659,14 +27659,14 @@ - + - + @@ -27849,19 +27849,19 @@ - + - + - + @@ -27907,14 +27907,14 @@ - + - + @@ -27951,7 +27951,7 @@ - + @@ -27960,7 +27960,7 @@ - + @@ -27968,7 +27968,7 @@ - + @@ -28031,7 +28031,7 @@ - + @@ -28039,14 +28039,14 @@ - + - + @@ -28229,19 +28229,19 @@ - + - + - + @@ -33151,20 +33151,20 @@ - + - + - + @@ -33245,20 +33245,20 @@ - + - + - + @@ -36849,13 +36849,13 @@ - + - + @@ -36988,7 +36988,7 @@ - + @@ -36997,7 +36997,7 @@ - + @@ -37005,14 +37005,14 @@ - + - + @@ -37022,7 +37022,7 @@ - + @@ -37031,7 +37031,7 @@ - + @@ -37066,19 +37066,19 @@ - + - + - + @@ -37113,7 +37113,7 @@ - + @@ -37122,7 +37122,7 @@ - + @@ -37130,14 +37130,14 @@ - + - + @@ -37147,7 +37147,7 @@ - + @@ -37156,7 +37156,7 @@ - + @@ -37191,19 +37191,19 @@ - + - + - + @@ -37237,14 +37237,14 @@ - + - + @@ -37295,7 +37295,7 @@ - + @@ -37303,7 +37303,7 @@ - + @@ -37386,14 +37386,14 @@ - + - + @@ -37444,7 +37444,7 @@ - + @@ -37452,7 +37452,7 @@ - + @@ -38908,7 +38908,7 @@ - + @@ -38981,7 +38981,7 @@ - + @@ -39441,14 +39441,14 @@ - + - + @@ -39519,7 +39519,7 @@ - + @@ -39711,14 +39711,14 @@ - + - + @@ -39930,13 +39930,13 @@ - + - + @@ -40097,14 +40097,14 @@ - + - + @@ -40316,13 +40316,13 @@ - + - + @@ -40465,14 +40465,14 @@ - + - + @@ -40666,13 +40666,13 @@ - + - + @@ -40774,14 +40774,14 @@ - + - + @@ -40975,13 +40975,13 @@ - + - + @@ -41275,14 +41275,14 @@ - + - + @@ -41353,7 +41353,7 @@ - + @@ -41646,21 +41646,21 @@ - + - + - + @@ -41668,7 +41668,7 @@ - + @@ -41676,7 +41676,7 @@ - + @@ -41684,7 +41684,7 @@ - + @@ -41813,21 +41813,21 @@ - + - + - + @@ -41835,7 +41835,7 @@ - + @@ -41843,7 +41843,7 @@ - + @@ -41851,7 +41851,7 @@ - + @@ -42609,13 +42609,13 @@ - + - + @@ -42921,7 +42921,7 @@ - + @@ -42929,7 +42929,7 @@ - + @@ -42944,13 +42944,13 @@ - + - + @@ -42980,21 +42980,21 @@ - + - + - + @@ -43002,7 +43002,7 @@ - + @@ -43060,13 +43060,13 @@ - + - + @@ -43109,7 +43109,7 @@ - + @@ -43117,7 +43117,7 @@ - + @@ -43132,13 +43132,13 @@ - + - + @@ -43331,13 +43331,13 @@ - + - + @@ -43356,14 +43356,14 @@ - + - + @@ -43423,13 +43423,13 @@ - + - + @@ -43472,14 +43472,14 @@ - + - + @@ -43535,13 +43535,13 @@ - + - + @@ -43609,21 +43609,21 @@ - + - + - + @@ -43631,7 +43631,7 @@ - + @@ -43639,7 +43639,7 @@ - + @@ -43648,7 +43648,7 @@ - + @@ -43832,21 +43832,21 @@ - + - + - + @@ -43854,7 +43854,7 @@ - + @@ -43862,7 +43862,7 @@ - + @@ -43871,7 +43871,7 @@ - + @@ -44029,7 +44029,7 @@ - + @@ -44037,7 +44037,7 @@ - + @@ -44052,13 +44052,13 @@ - + - + @@ -44078,7 +44078,7 @@ - + @@ -44086,7 +44086,7 @@ - + @@ -44101,13 +44101,13 @@ - + - + @@ -44124,7 +44124,7 @@ - + @@ -44132,7 +44132,7 @@ - + @@ -44147,13 +44147,13 @@ - + - + @@ -44307,13 +44307,13 @@ - + - + @@ -44391,7 +44391,7 @@ - + @@ -44399,7 +44399,7 @@ - + @@ -44414,13 +44414,13 @@ - + - + @@ -44484,13 +44484,13 @@ - + - + @@ -44519,7 +44519,7 @@ - + @@ -44527,7 +44527,7 @@ - + @@ -44542,13 +44542,13 @@ - + - + @@ -44619,14 +44619,14 @@ - + - + @@ -44724,14 +44724,14 @@ - + - + @@ -44928,14 +44928,14 @@ - + - + @@ -45438,14 +45438,14 @@ - + - + @@ -45826,21 +45826,21 @@ - + - + - + @@ -45848,7 +45848,7 @@ - + @@ -45906,13 +45906,13 @@ - + - + @@ -46113,14 +46113,14 @@ - + - + @@ -46180,13 +46180,13 @@ - + - + @@ -46229,14 +46229,14 @@ - + - + @@ -46292,13 +46292,13 @@ - + - + @@ -46366,21 +46366,21 @@ - + - + - + @@ -46388,7 +46388,7 @@ - + @@ -46396,7 +46396,7 @@ - + @@ -46405,7 +46405,7 @@ - + @@ -46589,21 +46589,21 @@ - + - + - + @@ -46611,7 +46611,7 @@ - + @@ -46619,7 +46619,7 @@ - + @@ -46628,7 +46628,7 @@ - + @@ -46920,13 +46920,13 @@ - + - + @@ -47051,13 +47051,13 @@ - + - + @@ -47140,14 +47140,14 @@ - + - + @@ -47245,14 +47245,14 @@ - + - + @@ -47479,20 +47479,20 @@ - + - + - + @@ -47522,20 +47522,20 @@ - + - + - + @@ -47700,7 +47700,7 @@ - + @@ -47796,7 +47796,7 @@ - + @@ -47836,7 +47836,7 @@ - + @@ -48351,7 +48351,7 @@ - + @@ -48430,20 +48430,20 @@ - + - + - + @@ -48476,20 +48476,20 @@ - + - + - + @@ -48618,7 +48618,7 @@ - + @@ -48627,7 +48627,7 @@ - + @@ -48635,14 +48635,14 @@ - + - + @@ -48652,7 +48652,7 @@ - + @@ -48661,7 +48661,7 @@ - + @@ -48696,19 +48696,19 @@ - + - + - + @@ -48743,7 +48743,7 @@ - + @@ -48752,7 +48752,7 @@ - + @@ -48760,14 +48760,14 @@ - + - + @@ -48777,7 +48777,7 @@ - + @@ -48786,7 +48786,7 @@ - + @@ -48821,19 +48821,19 @@ - + - + - + @@ -48868,7 +48868,7 @@ - + @@ -48877,7 +48877,7 @@ - + @@ -48885,14 +48885,14 @@ - + - + @@ -48902,7 +48902,7 @@ - + @@ -48911,7 +48911,7 @@ - + @@ -48946,19 +48946,19 @@ - + - + - + @@ -48990,7 +48990,7 @@ - + @@ -48999,7 +48999,7 @@ - + @@ -49007,14 +49007,14 @@ - + - + @@ -49024,7 +49024,7 @@ - + @@ -49033,7 +49033,7 @@ - + @@ -49068,19 +49068,19 @@ - + - + - + @@ -51217,41 +51217,41 @@ - + - + - + - + - + - + @@ -51519,7 +51519,7 @@ - + @@ -51527,7 +51527,7 @@ - + @@ -51542,13 +51542,13 @@ - + - + @@ -51565,7 +51565,7 @@ - + @@ -51573,7 +51573,7 @@ - + @@ -51588,13 +51588,13 @@ - + - + @@ -51634,13 +51634,13 @@ - + - + @@ -51660,7 +51660,7 @@ - + @@ -51668,7 +51668,7 @@ - + @@ -51683,13 +51683,13 @@ - + - + @@ -51709,7 +51709,7 @@ - + @@ -51717,7 +51717,7 @@ - + @@ -51732,13 +51732,13 @@ - + - + @@ -51755,7 +51755,7 @@ - + @@ -51763,7 +51763,7 @@ - + @@ -51778,13 +51778,13 @@ - + - + @@ -51801,7 +51801,7 @@ - + @@ -51809,7 +51809,7 @@ - + @@ -51824,13 +51824,13 @@ - + - + @@ -51847,7 +51847,7 @@ - + @@ -51855,7 +51855,7 @@ - + @@ -51870,13 +51870,13 @@ - + - + From patchwork Mon Mar 4 15:55:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 86746 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 0214E3858C50 for ; Mon, 4 Mar 2024 15:56:03 +0000 (GMT) X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::223]) by sourceware.org (Postfix) with ESMTPS id 88ED83858D33; Mon, 4 Mar 2024 15:55:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 88ED83858D33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=seketeli.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=seketeli.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 88ED83858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:4b98:dc4:8::223 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709567759; cv=none; b=UfQKnbZf5Hx9agneqM0mEnFQkQKnsQxOTKFlHHEjd0tq+dWmSOhlhty9ZizZzi5cDOwK0CmoI911BD6iwK3LqNkXpsuea/SN6O0sP5ef6TQrBl0Vc0r5RUpUZBqT2ucsvE3auJD2YDiwdeRnDnhZfuWx3XgfGtvL6xLxqia/KXU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709567759; c=relaxed/simple; bh=S2qx/H82+PF21tyX0ICVRR7TF5BPXcG8jGOzB3yz/Bs=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=W3NwYRwScDF6I5Uv5f3I8zJC5LC+au6/ri23LDLYSTM3REOghPZ8MwWtuklEdCZg2DV07BxIjN5SjZGZhxKVED+ldHcfP8VQhnTe7XnNzJSD5ivwo3V3zKLSGa9UOy/PHYtBU2ilyogiMFSiAuMuQFc5dS3fUc6yWQfS8b7jiO8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail.gandi.net (Postfix) with ESMTPSA id 5AAF66000B; Mon, 4 Mar 2024 15:55:53 +0000 (UTC) Received: by localhost (Postfix, from userid 1000) id E89A55071022; Mon, 4 Mar 2024 16:55:52 +0100 (CET) From: Dodji Seketeli To: builder@sourceware.org Cc: libabigail@sourceware.org Subject: [PATCH 2/2] comparison: Better sort function difference report Organization: Me, myself and I References: <20240302014047.E768A3858D39@sourceware.org> X-Operating-System: AlmaLinux 9.3 X-URL: http://www.seketeli.net/~dodji Date: Mon, 04 Mar 2024 16:55:52 +0100 In-Reply-To: <20240302014047.E768A3858D39@sourceware.org> (builder@sourceware.org's message of "Sat, 02 Mar 2024 01:40:47 +0000") Message-ID: <87le6y56uv.fsf@seketeli.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-GND-Sasl: dodj@seketeli.org X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.30 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Hello, [This is the second of the two patches intended to fix the build.] Looking at the result of builds on various platforms, it appears that the order of the method change reports in the test29-vtable-changes-report-0.txt of runtestdiffdwarf was not stable across all platforms. debian-armhf was exhibiting this change in output, for instance: --- /var/lib/buildbot/workers/wildebeest/libabigail-try-debian-armhf/build/tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt 2024-03-04 08:56:42.307366590 +0000 +++ /var/lib/buildbot/workers/wildebeest/libabigail-try-debian-armhf/build/tests/output/test-diff-dwarf/test29-vtable-changes-report-0.txt 2024-03-04 09:20:22.146334907 +0000 @@ -19,13 +19,13 @@ implicit parameter 0 of type 'S* const' has sub-type changes: in unqualified underlying type 'S*': pointed to type 'struct S' changed, as being reported + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported 'method virtual S::~S()' has some sub-type changes: implicit parameter 0 of type 'S* const' has sub-type changes: in unqualified underlying type 'S*': pointed to type 'struct S' changed, as being reported - 'method virtual S::~S(int)' has some sub-type changes: - implicit parameter 0 of type 'S*' has sub-type changes: - pointed to type 'struct S' changed, as being reported 'method virtual void S::fn0()' has some sub-type changes: implicit parameter 0 of type 'S*' has sub-type changes: pointed to type 'struct S' changed, as being reported Better handling the sorting of function changes should hopefully fix this issue. * src/abg-comparison-priv.h (is_less_than): Declare new helper function. (function_decl_diff_comp::operator(const function_decl_diff&, const function_decl_diff&)): Use it here. (virtual_member_function_diff_comp::operator(const function_decl_diff&, const function_decl_diff&)): Likewise. * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust. * tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt: Adjust. * tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt: Adjust. * tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt: Adjust. * tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt: Adjust. Signed-off-by: Dodji Seketeli --- src/abg-comparison-priv.h | 36 +++++----------- src/abg-comparison.cc | 41 +++++++++++++++++++ .../test-abidiff/test-PR18791-report0.txt | 24 +++++------ .../test29-vtable-changes-report-0.txt | 6 +-- .../test30-vtable-changes-report-0.txt | 16 ++++---- .../test31-vtable-changes-report-0.txt | 10 ++--- .../test41-PR20476-hidden-report-0.txt | 16 ++++---- 7 files changed, 87 insertions(+), 62 deletions(-) diff --git a/src/abg-comparison-priv.h b/src/abg-comparison-priv.h index 434e6267..adc1a23c 100644 --- a/src/abg-comparison-priv.h +++ b/src/abg-comparison-priv.h @@ -774,6 +774,9 @@ struct data_member_diff_comp } }; // end struct var_diff_comp +bool +is_less_than(const function_decl_diff& first, const function_decl_diff& second); + /// A comparison functor for instances of @ref function_decl_diff that /// represent changes between two virtual member functions. struct virtual_member_function_diff_comp @@ -785,8 +788,12 @@ struct virtual_member_function_diff_comp ABG_ASSERT(get_member_function_is_virtual(l.first_function_decl())); ABG_ASSERT(get_member_function_is_virtual(r.first_function_decl())); - return (get_member_function_vtable_offset(l.first_function_decl()) - < get_member_function_vtable_offset(r.first_function_decl())); + size_t l_offset = get_member_function_vtable_offset(l.first_function_decl()); + size_t r_offset = get_member_function_vtable_offset(r.first_function_decl()); + if (l_offset != r_offset) + return l_offset < r_offset; + + return is_less_than(l, r); } bool @@ -1257,30 +1264,7 @@ struct function_decl_diff_comp operator()(const function_decl_diff& first, const function_decl_diff& second) { - function_decl_sptr f = first.first_function_decl(), - s = second.first_function_decl(); - - string fr = f->get_qualified_name(), - sr = s->get_qualified_name(); - - if (fr == sr) - { - if (f->get_symbol()) - fr = f->get_symbol()->get_id_string(); - else if (!f->get_linkage_name().empty()) - fr = f->get_linkage_name(); - else - fr = f->get_pretty_representation(); - - if (s->get_symbol()) - sr = s->get_symbol()->get_id_string(); - else if (!s->get_linkage_name().empty()) - sr = s->get_linkage_name(); - else - sr = s->get_pretty_representation(); - } - - return (fr.compare(sr) < 0); + return is_less_than(first, second); } /// The actual less than operator. diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc index 1af10529..bd7c224e 100644 --- a/src/abg-comparison.cc +++ b/src/abg-comparison.cc @@ -168,6 +168,47 @@ sort_changed_data_members(changed_var_sptrs_type& to_sort) std::sort(to_sort.begin(), to_sort.end(), comp); } +/// Compare two @ref function_decl_diff for the purpose of sorting. +/// +/// @param first the first @ref function_decl_diff to consider. +/// +/// @param second the second @ref function_decl_diff to consider. +/// +/// @return true iff @p first compares less than @p second. +bool +is_less_than(const function_decl_diff& first, const function_decl_diff& second) +{ + function_decl_sptr f = first.first_function_decl(), + s = second.first_function_decl(); + + string fr = f->get_qualified_name(), sr = s->get_qualified_name(); + + if (fr != sr) + return fr < sr; + + if (!f->get_linkage_name().empty() + && !s->get_linkage_name().empty()) + { + fr = f->get_linkage_name(); + sr = s->get_linkage_name(); + if (fr != sr) + return fr < sr; + } + + if (f->get_symbol() && s->get_symbol()) + { + fr = f->get_symbol()->get_id_string(); + sr = s->get_symbol()->get_id_string(); + if (fr != sr) + return fr < sr; + } + + fr = f->get_pretty_representation(true, true); + sr = s->get_pretty_representation(true, true); + + return fr < sr; +} + /// Sort an instance of @ref string_function_ptr_map map and stuff a /// resulting sorted vector of pointers to function_decl. /// diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt index 18cb0cf9..4d2a3c86 100644 --- a/tests/data/test-abidiff/test-PR18791-report0.txt +++ b/tests/data/test-abidiff/test-PR18791-report0.txt @@ -54,16 +54,16 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable in referenced type 'const sigc::connection': unqualified underlying type 'struct sigc::connection' changed, as reported earlier - [C] 'method sigc::connection::connection()' has some indirect sub-type changes: - implicit parameter 0 of type 'sigc::connection*' has sub-type changes: - pointed to type 'struct sigc::connection' changed, as reported earlier - [C] 'method sigc::connection::connection(sigc::slot_base&)' has some indirect sub-type changes: implicit parameter 0 of type 'sigc::connection*' has sub-type changes: pointed to type 'struct sigc::connection' changed, as reported earlier parameter 1 of type 'sigc::slot_base&' has sub-type changes: referenced type 'class sigc::slot_base' changed, as reported earlier + [C] 'method sigc::connection::connection()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::connection*' has sub-type changes: + pointed to type 'struct sigc::connection' changed, as reported earlier + [C] 'method void sigc::connection::disconnect()' has some indirect sub-type changes: implicit parameter 0 of type 'sigc::connection*' has sub-type changes: pointed to type 'struct sigc::connection' changed, as reported earlier @@ -215,10 +215,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable in referenced type 'const sigc::signal_base': unqualified underlying type 'struct sigc::signal_base' changed, as reported earlier - [C] 'method sigc::signal_base::signal_base()' has some indirect sub-type changes: - implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: - pointed to type 'struct sigc::signal_base' changed, as reported earlier - [C] 'method sigc::signal_base::signal_base(const sigc::signal_base&)' has some indirect sub-type changes: implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: pointed to type 'struct sigc::signal_base' changed, as reported earlier @@ -226,6 +222,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable in referenced type 'const sigc::signal_base': unqualified underlying type 'struct sigc::signal_base' changed, as reported earlier + [C] 'method sigc::signal_base::signal_base()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: + pointed to type 'struct sigc::signal_base' changed, as reported earlier + [C] 'method sigc::signal_base::size_type sigc::signal_base::size()' has some indirect sub-type changes: implicit parameter 0 of type 'const sigc::signal_base*' has sub-type changes: in pointed to type 'const sigc::signal_base': @@ -245,10 +245,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable parameter 1 of type 'sigc::slot_base::rep_type*' has sub-type changes: pointed to type 'typedef sigc::slot_base::rep_type' changed, as reported earlier - [C] 'method sigc::slot_base::slot_base()' has some indirect sub-type changes: - implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: - pointed to type 'class sigc::slot_base' changed, as reported earlier - [C] 'method sigc::slot_base::slot_base(const sigc::slot_base&)' has some indirect sub-type changes: implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: pointed to type 'class sigc::slot_base' changed, as reported earlier @@ -256,6 +252,10 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable in referenced type 'const sigc::slot_base': unqualified underlying type 'class sigc::slot_base' changed, as reported earlier + [C] 'method sigc::slot_base::slot_base()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: + pointed to type 'class sigc::slot_base' changed, as reported earlier + [C] 'method sigc::slot_base::~slot_base(int)' has some indirect sub-type changes: implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: pointed to type 'class sigc::slot_base' changed, as reported earlier diff --git a/tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt b/tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt index d9873f9b..780d5945 100644 --- a/tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt +++ b/tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt @@ -15,6 +15,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 member function insertion: 'method virtual void S::fn1()', virtual at voffset 3/3 4 member function changes: + 'method virtual void S::fn0()' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported 'method virtual S::~S()' has some sub-type changes: implicit parameter 0 of type 'S* const' has sub-type changes: in unqualified underlying type 'S*': @@ -26,9 +29,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 'method virtual S::~S(int)' has some sub-type changes: implicit parameter 0 of type 'S*' has sub-type changes: pointed to type 'struct S' changed, as being reported - 'method virtual void S::fn0()' has some sub-type changes: - implicit parameter 0 of type 'S*' has sub-type changes: - pointed to type 'struct S' changed, as being reported [C] 'method virtual S::~S()' has some indirect sub-type changes: implicit parameter 0 of type 'S* const' has sub-type changes: diff --git a/tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt b/tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt index e75be941..d32f99b2 100644 --- a/tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt +++ b/tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt @@ -15,6 +15,14 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 member function insertion: 'method virtual void S::fvtable_breaker()', virtual at voffset 3/4 5 member function changes: + 'method virtual void S::fn0()' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual void S::fn1()' has some sub-type changes: + the vtable offset of method virtual void S::fn1() changed from 3 to 4 + note that this is an ABI incompatible change to the vtable of struct S + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported 'method virtual S::~S()' has some sub-type changes: implicit parameter 0 of type 'S* const' has sub-type changes: in unqualified underlying type 'S*': @@ -26,14 +34,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 'method virtual S::~S(int)' has some sub-type changes: implicit parameter 0 of type 'S*' has sub-type changes: pointed to type 'struct S' changed, as being reported - 'method virtual void S::fn0()' has some sub-type changes: - implicit parameter 0 of type 'S*' has sub-type changes: - pointed to type 'struct S' changed, as being reported - 'method virtual void S::fn1()' has some sub-type changes: - the vtable offset of method virtual void S::fn1() changed from 3 to 4 - note that this is an ABI incompatible change to the vtable of struct S - implicit parameter 0 of type 'S*' has sub-type changes: - pointed to type 'struct S' changed, as being reported [C] 'method virtual void S::fn1()' has some indirect sub-type changes: the vtable offset of method virtual void S::fn1() changed from 3 to 4 diff --git a/tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt b/tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt index fa904b7c..dcfde0f5 100644 --- a/tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt +++ b/tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt @@ -17,6 +17,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 member function deletion: 'method virtual void S::fn0()', virtual at voffset 2/3 4 member function changes: + 'method virtual void S::fn1()' has some sub-type changes: + the vtable offset of method virtual void S::fn1() changed from 3 to 2 + note that this is an ABI incompatible change to the vtable of struct S + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported 'method virtual S::~S()' has some sub-type changes: implicit parameter 0 of type 'S* const' has sub-type changes: in unqualified underlying type 'S*': @@ -28,11 +33,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 'method virtual S::~S(int)' has some sub-type changes: implicit parameter 0 of type 'S*' has sub-type changes: pointed to type 'struct S' changed, as being reported - 'method virtual void S::fn1()' has some sub-type changes: - the vtable offset of method virtual void S::fn1() changed from 3 to 2 - note that this is an ABI incompatible change to the vtable of struct S - implicit parameter 0 of type 'S*' has sub-type changes: - pointed to type 'struct S' changed, as being reported [C] 'method virtual S::~S()' has some indirect sub-type changes: implicit parameter 0 of type 'S* const' has sub-type changes: diff --git a/tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt b/tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt index 17a1662e..0a695856 100644 --- a/tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt +++ b/tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt @@ -11,6 +11,14 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 member function insertion: 'method virtual void Interface::method2()', virtual at voffset 3/4 5 member function changes: + 'method virtual void Interface::method1()' has some sub-type changes: + implicit parameter 0 of type 'Interface*' has sub-type changes: + pointed to type 'class Interface' changed, as being reported + 'method virtual void Interface::method3()' has some sub-type changes: + the vtable offset of method virtual void Interface::method3() changed from 3 to 4 + note that this is an ABI incompatible change to the vtable of class Interface + implicit parameter 0 of type 'Interface*' has sub-type changes: + pointed to type 'class Interface' changed, as being reported 'method virtual Interface::~Interface()' has some sub-type changes: implicit parameter 0 of type 'Interface* const' has sub-type changes: in unqualified underlying type 'Interface*': @@ -22,14 +30,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 'method virtual Interface::~Interface(int)' has some sub-type changes: implicit parameter 0 of type 'Interface*' has sub-type changes: pointed to type 'class Interface' changed, as being reported - 'method virtual void Interface::method1()' has some sub-type changes: - implicit parameter 0 of type 'Interface*' has sub-type changes: - pointed to type 'class Interface' changed, as being reported - 'method virtual void Interface::method3()' has some sub-type changes: - the vtable offset of method virtual void Interface::method3() changed from 3 to 4 - note that this is an ABI incompatible change to the vtable of class Interface - implicit parameter 0 of type 'Interface*' has sub-type changes: - pointed to type 'class Interface' changed, as being reported [C] 'method virtual Interface::~Interface()' has some indirect sub-type changes: implicit parameter 0 of type 'Interface* const' has sub-type changes: