From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by sourceware.org (Postfix) with ESMTPS id 372DA385E82C for ; Mon, 16 Mar 2020 12:29:16 +0000 (GMT) Received: by mail-wr1-x443.google.com with SMTP id y2so5487352wrn.11 for ; Mon, 16 Mar 2020 05:29:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=0nyA7GdKXSoXY17W8M+UA5X/unNCE5hC9ss9IzM2kfA=; b=ZMiF0hhTf+nNsgnssvXAAQtL/iy6c9NRZT4fnnIHBO5B5LHYVXu2a6lLij5Q7rfjoc L5wsUbtM7QuSyrNlkpcj1ypacfTFb1VR26lDRdryrJS98rQSw1nVKP31ZVULUYit3lJl qCIVmqgOv7HxDhT9BGPoyqO97ZtkXiqwtJ4ZGufulV6a/kU9U45x1e+SQN+Mj1VKtR2y HSvzRWHfOCdoX20jH9PH1jJ117/WqtFx67FwFSguoKhjH707ahClQ9VZLPXOsFVAZmKs JSE5RJrT39M6CxAvidd8+EW2/N8WYAKQQiMeqSA672F1JqKf9Y7BAnHm59OhMWNHJCsO cMAw== X-Gm-Message-State: ANhLgQ1jI7B+kH5rbXVk5yoCNtDI+OGce111WFc/AugMxQIn06R32MRk e8YGnptl7YFSQNtACBKYfsU2+Dxvzauqmg== X-Google-Smtp-Source: ADFU+vsHS/dwFljdtMSvGI1U8uLZsQpE7hbrkegrx9jFRY06dZvLLBZR2ptOinNYpTg6SWpzX5j7Tw== X-Received: by 2002:adf:ec4f:: with SMTP id w15mr30530602wrn.106.1584361753836; Mon, 16 Mar 2020 05:29:13 -0700 (PDT) Received: from google.com ([2a00:79e0:d:210:e8f7:125b:61e9:733d]) by smtp.gmail.com with ESMTPSA id c85sm30842193wmd.48.2020.03.16.05.29.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Mar 2020 05:29:13 -0700 (PDT) Date: Mon, 16 Mar 2020 13:29:12 +0100 From: Matthias Maennich To: Giuliano Procida Cc: libabigail@sourceware.org, Dodji Seketeli , kernel-team@android.com Subject: Re: [PATCH 3/5] [abidiff] Eliminate some unnecessary blank lines in diff output. Message-ID: <20200316122912.GB211970@google.com> References: <20200312063036.29419-1-gprocida@google.com> <20200312063036.29419-4-gprocida@google.com> <20200314200907.GA149687@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.12.2 (2019-09-21) X-Spam-Status: No, score=-40.5 required=5.0 tests=DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH, FSL_HELO_FAKE, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libabigail mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2020 12:29:22 -0000 On Mon, Mar 16, 2020 at 10:51:22AM +0000, Giuliano Procida wrote: >Hi Matthias. > >On Sat, 14 Mar 2020 at 20:09, Matthias Maennich wrote: >> >> On Thu, Mar 12, 2020 at 06:30:34AM +0000, Android Kernel Team wrote: >> >There is distributed responsibility for horizontal and vertical >> >whitespace in the reporting code with indent and new line control >> >information being manipulated by and passed in and out of functions. >> >Occasionally, this information is ignored or incorrect and the code >> >tends to err on the side of more rather than fewer new lines. >> > >> >The outcome is that abidiff output sometimes contains extra blank >> >lines which can be confusing. >> > >> >This patch eliminates some of the more obvious cases: >> > >> > - after data member deletions >> > - in enumerator change lists >> > - after "type size hasn't changed" >> > - before listing impacted interfaces >> > >> >The patch cleans up the reporting of data members. The code will >> >either emit indentation, a short description and a new line or do >> >nothing at all. >> > >> >The patch also removes some stray location reporting code for array >> >diffs which would have produced some oddly placed output. I could not >> >get this code to trigger as loc = decl->get_location() was never >> >present on the array decls in question. >> > >> > * src/abg-default-reporter.cc (report): In the enum_diff >> > override, simplify new line logic; emit just one >> > blank line after each enum. In the array_diff override, remove >> > stray location reporting which doesn't appear to ever trigger; >> > fix new line logic. In the class_or_union_diff override, >> > simplify new line logic for deleted members; pass indentation >> > to represent_data_member. >> > * src/abg-leaf-reporter.cc (report): In the array_diff >> > override, remove stray location reporting which doesn't appear >> > to ever trigger; fix new line handling. In the >> > class_or_union_diff override, simplify new line logic for >> > deleted members; pass indentation to represent_data_member. >> > * src/abg-reporter-priv.cc (represent_data_member): Handle >> > indentation; fix new line logic. >> > (report_size_and_alignment_changes): Fix new line logic >> > for "type size hasn't changed" message; simplify new line >> > logic. >> > (report_name_size_and_alignment_changes): Fix new line logic. >> > (maybe_report_interfaces_impacted_by_diff) Remove new line >> > prefix code and new_line_prefix argument. >> > * src/abg-reporter-priv.h (represent_data_member): Add indent >> > argument. >> > (maybe_report_interfaces_impacted_by_diff) Remove >> > new_line_prefix argument. >> > * tests/data/test-*/*report*.txt: Remove some blank lines. >> > >> >Signed-off-by: Giuliano Procida >> >--- >> > src/abg-default-reporter.cc | 43 +++----- >> > src/abg-leaf-reporter.cc | 27 ++--- >> > src/abg-reporter-priv.cc | 34 +++--- >> > src/abg-reporter-priv.h | 9 +- >> > .../test5-fn-changed-report-0.txt | 1 - >> > .../test5-fn-changed-report-1.txt | 1 - >> > .../test6-var-changed-report-0.txt | 1 - >> > .../test6-var-changed-report-1.txt | 1 - >> > .../test7-fn-changed-report-0.txt | 1 - >> > .../test-abidiff-exit/test-leaf3-report.txt | 1 - >> > .../test-loc-with-locs-report.txt | 1 - >> > .../test-loc-without-locs-report.txt | 1 - >> > .../test-abidiff/test-PR18791-report0.txt | 2 - >> > tests/data/test-abidiff/test-enum0-report.txt | 1 - >> > tests/data/test-abidiff/test-enum1-report.txt | 1 - >> > .../data/test-abidiff/test-struct1-report.txt | 1 - >> > .../PR25058-liblttng-ctl-report-1.txt | 5 - >> > tests/data/test-diff-dwarf/test13-report.txt | 1 - >> > .../test-diff-dwarf/test38-union-report-0.txt | 1 - >> > .../data/test-diff-dwarf/test40-report-0.txt | 2 - >> > .../test42-PR21296-clanggcc-report0.txt | 1 - >> > .../test43-PR22913-report-0.txt | 1 - >> > tests/data/test-diff-filter/test10-report.txt | 1 - >> > tests/data/test-diff-filter/test18-report.txt | 1 - >> > ...st23-redundant-fn-parm-change-report-0.txt | 2 - >> > .../test30-pr18904-rvalueref-report0.txt | 8 -- >> > .../test30-pr18904-rvalueref-report1.txt | 8 -- >> > .../test30-pr18904-rvalueref-report2.txt | 8 -- >> > .../test35-pr18754-no-added-syms-report-0.txt | 8 -- >> > .../data/test-diff-filter/test36-report-0.txt | 3 - >> > .../test42-leaf-report-output-0.txt | 1 - >> > tests/data/test-diff-filter/test7-report.txt | 1 - >> > ...-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt | 2 - >> > .../nss-3.23.0-1.0.fc23.x86_64-report-0.txt | 4 - >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-0.txt | 2 - >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-1.txt | 2 - >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 101 ------------------ >> > ...l7.x86_64-0.12.8-1.el7.x86_64-report-3.txt | 3 - >> > ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt | 5 - >> > ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt | 1 - >> > .../test10-changed-parm-c-report-0.txt | 3 - >> > .../test-diff-suppr/test35-leaf-report-0.txt | 1 - >> > .../test-diff-suppr/test36-leaf-report-0.txt | 2 - >> > .../test41-enumerator-changes-report-0.txt | 2 - >> > 44 files changed, 42 insertions(+), 264 deletions(-) >> > >> >diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc >> >index 3bfdfbc4..a0b9eeea 100644 >> >--- a/src/abg-default-reporter.cc >> >+++ b/src/abg-default-reporter.cc >> >@@ -130,16 +130,14 @@ default_reporter::report(const enum_diff& d, ostream& out, >> > i != sorted_deleted_enumerators.end(); >> > ++i) >> > { >> >- if (i != sorted_deleted_enumerators.begin()) >> >- out << "\n"; >> > out << indent >> > << " '" >> > << i->get_qualified_name() >> > << "' value '" >> > << i->get_value() >> > << "'"; >> >+ out << "\n"; >> > } >> >- out << "\n\n"; >> > } >> > if (numins) >> > { >> >@@ -151,16 +149,14 @@ default_reporter::report(const enum_diff& d, ostream& out, >> > i != sorted_inserted_enumerators.end(); >> > ++i) >> > { >> >- if (i != sorted_inserted_enumerators.begin()) >> >- out << "\n"; >> > out << indent >> > << " '" >> > << i->get_qualified_name() >> > << "' value '" >> > << i->get_value() >> > << "'"; >> >+ out << "\n"; >> > } >> >- out << "\n\n"; >> > } >> > if (numchanges) >> > { >> >@@ -173,8 +169,6 @@ default_reporter::report(const enum_diff& d, ostream& out, >> > i != sorted_changed_enumerators.end(); >> > ++i) >> > { >> >- if (i != sorted_changed_enumerators.begin()) >> >- out << "\n"; >> > out << indent >> > << " '" >> > << i->first.get_qualified_name() >> >@@ -182,13 +176,14 @@ default_reporter::report(const enum_diff& d, ostream& out, >> > << i->first.get_value() << "' to '" >> > << i->second.get_value() << "'"; >> > report_loc_info(second, *d.context(), out); >> >+ out << "\n"; >> > } >> >- out << "\n\n"; >> > } >> > >> >+ out << "\n"; >> >+ >> > if (d.context()->show_leaf_changes_only()) >> >- maybe_report_interfaces_impacted_by_diff(&d, out, indent, >> >- /*new_line_prefix=*/false); >> >+ maybe_report_interfaces_impacted_by_diff(&d, out, indent); >> > >> > d.reported_once(true); >> > } >> >@@ -392,7 +387,7 @@ default_reporter::report(const pointer_diff& d, ostream& out, >> > : string("void"); >> > >> > out << indent >> >- << "in pointed to type '" << repr << "'"; >> >+ << "in pointed to type '" << repr << "'"; >> > report_loc_info(dif->second_subject(), *d.context(), out); >> > out << ":\n"; >> > dif->report(out, indent + " "); >> >@@ -673,12 +668,12 @@ default_reporter::report(const array_diff& d, ostream& out, >> > dif->report(out, indent + " "); >> > } >> > >> >- report_name_size_and_alignment_changes(d.first_array(), >> >- d.second_array(), >> >- d.context(), >> >- out, indent, >> >- /*new line=*/false); >> >- report_loc_info(d.second_array(), *d.context(), out); >> >+ if (report_name_size_and_alignment_changes(d.first_array(), >> >+ d.second_array(), >> >+ d.context(), >> >+ out, indent, >> >+ /*new line=*/false)) >> >> Though it is not required here, I would prefer braces for readability. > >Agreed, I think it's sensible here. In other places, with the coding >style in use, we'd end up with: > >if (emitted) > { > out << "\n"; > } Let's take this one at this location. > >which is pretty verbose. The following would be fine by me: > >if (emitted) out << "\n"; > >Lastly, short but ugly: > > emitted && (out << "\n"); > >> >+ out << "\n"; >> > } >> > >> > /// Generates a report for an intance of @ref base_diff. >> >@@ -1014,7 +1009,6 @@ default_reporter::report(const class_or_union_diff& d, >> > sort_data_members >> > (d.class_or_union_diff::get_priv()->deleted_data_members_, >> > sorted_dms); >> >- bool emitted = false; >> > for (vector::const_iterator i = sorted_dms.begin(); >> > i != sorted_dms.end(); >> > ++i) >> >@@ -1024,14 +1018,8 @@ default_reporter::report(const class_or_union_diff& d, >> > ABG_ASSERT(data_mem); >> > if (get_member_is_static(data_mem)) >> > continue; >> >- if (emitted) >> >- out << "\n"; >> >- out << indent << " "; >> >- represent_data_member(data_mem, ctxt, out); >> >- emitted = true; >> >+ represent_data_member(data_mem, ctxt, out, indent + " "); >> > } >> >- if (emitted) >> >- out << "\n"; >> > } >> > >> > //report insertions >> >@@ -1052,8 +1040,7 @@ default_reporter::report(const class_or_union_diff& d, >> > var_decl_sptr data_mem = >> > dynamic_pointer_cast(*i); >> > ABG_ASSERT(data_mem); >> >- out << indent << " "; >> >- represent_data_member(data_mem, ctxt, out); >> >+ represent_data_member(data_mem, ctxt, out, indent + " "); >> > } >> > } >> > >> >diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc >> >index bbd51dcb..f706bd21 100644 >> >--- a/src/abg-leaf-reporter.cc >> >+++ b/src/abg-leaf-reporter.cc >> >@@ -78,7 +78,7 @@ report_diffs(const reporter_base& r, >> > >> > string n = (*i)->first_subject()->get_pretty_representation(); >> > >> >- out << indent << "'" << n ; >> >+ out << indent << "'" << n; >> > >> > report_loc_info((*i)->first_subject(), >> > *(*i)->context(), out); >> >@@ -425,11 +425,12 @@ leaf_reporter::report(const array_diff& d, >> > d.second_array(), >> > "array type"); >> > >> >- report_name_size_and_alignment_changes(d.first_array(), >> >- d.second_array(), >> >- d.context(), >> >- out, indent, >> >- /*new line=*/false); >> >+ if (report_name_size_and_alignment_changes(d.first_array(), >> >+ d.second_array(), >> >+ d.context(), >> >+ out, indent, >> >+ /*new line=*/false)) >> >> As above. > >Agreed. > >> >+ out << "\n"; >> > >> > diff_sptr dif = d.element_type_diff(); >> > if (diff_to_be_reported(dif.get())) >> >@@ -441,8 +442,6 @@ leaf_reporter::report(const array_diff& d, >> > dif->report(out, indent + " "); >> > } >> > >> >- report_loc_info(d.second_array(), *d.context(), out); >> >- >> > maybe_report_interfaces_impacted_by_diff(&d, out, indent); >> > } >> > >> >@@ -592,7 +591,6 @@ leaf_reporter::report(const class_or_union_diff& d, >> > sort_data_members >> > (d.class_or_union_diff::get_priv()->deleted_data_members_, >> > sorted_dms); >> >- bool emitted = false; >> > for (vector::const_iterator i = sorted_dms.begin(); >> > i != sorted_dms.end(); >> > ++i) >> >@@ -602,14 +600,8 @@ leaf_reporter::report(const class_or_union_diff& d, >> > ABG_ASSERT(data_mem); >> > if (get_member_is_static(data_mem)) >> > continue; >> >- if (emitted) >> >- out << "\n"; >> >- out << indent << " "; >> >- represent_data_member(data_mem, ctxt, out); >> >- emitted = true; >> >+ represent_data_member(data_mem, ctxt, out, indent + " "); >> > } >> >- if (emitted) >> >- out << "\n"; >> > } >> > >> > //report insertions >> >@@ -630,8 +622,7 @@ leaf_reporter::report(const class_or_union_diff& d, >> > var_decl_sptr data_mem = >> > dynamic_pointer_cast(*i); >> > ABG_ASSERT(data_mem); >> >- out << indent << " "; >> >- represent_data_member(data_mem, ctxt, out); >> >+ represent_data_member(data_mem, ctxt, out, indent + " "); >> > } >> > } >> > >> >diff --git a/src/abg-reporter-priv.cc b/src/abg-reporter-priv.cc >> >index fbac85f8..948a32fc 100644 >> >--- a/src/abg-reporter-priv.cc >> >+++ b/src/abg-reporter-priv.cc >> >@@ -242,16 +242,19 @@ represent(const diff_context& ctxt, >> > /// @param ctxt the current diff context. >> > /// >> > /// @param out the output stream to send the representation to >> >+/// >> >+/// @param indent the indentation string to use for the change report. >> > void >> > represent_data_member(var_decl_sptr d, >> > const diff_context_sptr& ctxt, >> >- ostream& out) >> >+ ostream& out, >> >+ const string& indent) >> >> I would prefer out parameters after all input parameters. Since this is >> a private implementation detail, we should be good to change that >> interface. > >I looked at the existing functions and copied an existing order for >consistency. out and indent belong together morally as well (writer >monad). If we switch to an indenting ostream, this issue goes away. > >> > { >> > if (!is_data_member(d) >> > || (!get_member_is_static(d) && !get_data_member_is_laid_out(d))) >> > return; >> > >> >- out << "'" << d->get_pretty_representation() << "'"; >> >+ out << indent << "'" << d->get_pretty_representation() << "'"; >> > if (!get_member_is_static(d)) >> > { >> > // Do not emit offset information for data member of a union >> >@@ -262,8 +265,8 @@ represent_data_member(var_decl_sptr d, >> > get_data_member_offset(d), >> > *ctxt, out); >> > report_loc_info(d, *ctxt, out); >> >- out << "\n"; >> > } >> >+ out << "\n"; >> > } >> > >> > /// If a given @ref var_diff node carries a data member change in >> >@@ -806,7 +809,10 @@ report_size_and_alignment_changes(type_or_decl_base_sptr first, >> > } // end if (fs != ss || fdc != sdc) >> > else >> > if (ctxt->show_relative_offset_changes()) >> >- out << indent << "type size hasn't changed\n"; >> >+ { >> >+ out << indent << "type size hasn't changed"; >> >+ n = true; >> >+ } >> > } >> > if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY) >> > && (fa != sa)) >> >@@ -819,9 +825,7 @@ report_size_and_alignment_changes(type_or_decl_base_sptr first, >> > n = true; >> > } >> > >> >- if (n) >> >- return true; >> >- return false; >> >+ return n; >> >> We should give 'n' a better name. Not necessarily part of this change. > >Acknowledged. If we are going to review newline handling we should do >it everywhere and consistently. Ideally we should get to the point >where we don't have to pass information about newlines around (this >will likely be possible with an indenting ostream but may be doable >even without that). > >> > } >> > >> > /// @param tod the type or declaration to emit loc info about >> >@@ -910,8 +914,8 @@ report_name_size_and_alignment_changes(decl_base_sptr first, >> > } >> > } >> > >> >- nl |= report_size_and_alignment_changes(first, second, ctxt, >> >- out, indent, nl); >> >+ nl = report_size_and_alignment_changes(first, second, ctxt, >> >+ out, indent, nl); >> > return nl; >> > } >> > >> >@@ -1366,14 +1370,10 @@ maybe_report_unreachable_type_changes(const corpus_diff& d, >> > /// @param out the output stream to report to. >> > /// >> > /// @param indent the white space string to use for indentation. >> >-/// >> >-/// @param new_line_prefix if set to true, it means there is going to >> >-/// be a new line emitted before the report. >> > void >> > maybe_report_interfaces_impacted_by_diff(const diff *d, >> > ostream &out, >> >- const string &indent, >> >- bool new_line_prefix) >> >+ const string &indent) >> > { >> > const diff_context_sptr &ctxt = d->context(); >> > const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff(); >> >@@ -1395,9 +1395,6 @@ maybe_report_interfaces_impacted_by_diff(const diff *d, >> > vector sorted_impacted_interfaces; >> > sort_artifacts_set(*impacted_artifacts, sorted_impacted_interfaces); >> > >> >- if (new_line_prefix) >> >- out << '\n'; >> >- >> >> I think we need to keep this newline. It separates the cause (the leaf >> node change) from the impacted interfaces (the top level nodes). > >I disagree. > >I think the "impacted interfaces" block should be indented w.r.t leaf >node change's introductory text or separated from the whole node >change section by an extra new line, but not both. I'd prefer the >former as this should be a parent-child relationship in the text >output tree rather than a sibling one. > >Phrased another way, the text would be equally meaningful like this >(adapting tests/data/test-diff-filter/test42-leaf-report-output-0.txt; >though abitool.py's short report would need a tweak; it needs a tweak Just for the context: abitool.py we use in Android to monitor the kernel ABI with libabigail :-) See https://android.googlesource.com/kernel/build/+/refs/heads/master/abi/ >anyway for the case of 1 impacted interface): > >'struct leaf at test42-leaf-report-v0.cc:4:1' changed: > one impacted interface: > function void fn(C&) > type size changed from 32 to 64 (in bits) > 1 data member insertion: > 'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1 > The only concern I have and that I would like to see addressed is that the list of impacted interfaces can be considerably long (thousands for a central struct). That can get difficult to work with if this is 'embedded' there. In order to better address abi differences like that, I would prefer the current format: # what changed 'struct leaf at test42-leaf-report-v0.cc:4:1' changed: type size changed from 32 to 64 (in bits) 1 data member insertion: 'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1 # impact one impacted interface: function void fn(C&) There we can also truncate the list of impacted interfaces. Cheers, Matthias >Happy to discuss further. > >> With the above addressed, feel free to add >> Reviewed-by: Matthias Maennich >> >> Cheers, >> Matthias > >Regards, >Giuliano. > >> > size_t num_impacted_interfaces = impacted_artifacts->size(); >> > if (num_impacted_interfaces == 1) >> > out << indent << "one impacted interface:\n"; >> >@@ -1424,9 +1421,6 @@ maybe_report_interfaces_impacted_by_diff(const diff *d, >> > /// @param out the output stream to report to. >> > /// >> > /// @param indent the white space string to use for indentation. >> >-/// >> >-/// @param new_line_prefix if set to true, it means there is going to >> >-/// be a new line emitted before the report. >> > void >> > maybe_report_interfaces_impacted_by_diff(const diff_sptr &d, >> > ostream &out, >> >diff --git a/src/abg-reporter-priv.h b/src/abg-reporter-priv.h >> >index 7471c74f..04803f43 100644 >> >--- a/src/abg-reporter-priv.h >> >+++ b/src/abg-reporter-priv.h >> >@@ -151,7 +151,8 @@ represent(const diff_context& ctxt, >> > void >> > represent_data_member(var_decl_sptr d, >> > const diff_context_sptr& ctxt, >> >- ostream& out); >> >+ ostream& out, >> >+ const string& indent); >> > >> > void >> > maybe_show_relative_offset_change(const var_diff_sptr &diff, >> >@@ -244,14 +245,12 @@ maybe_report_unreachable_type_changes(const corpus_diff& d, >> > void >> > maybe_report_interfaces_impacted_by_diff(const diff *d, >> > ostream &out, >> >- const string &indent, >> >- bool new_line_prefix = true); >> >+ const string &indent); >> > >> > void >> > maybe_report_interfaces_impacted_by_diff(const diff_sptr &d, >> > ostream &out, >> >- const string &indent, >> >- bool new_line_prefix = false); >> >+ const string &indent); >> > >> > } // end namespace comparison >> > } // end namespace abigail >> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt >> >index 96d48ccf..04676908 100644 >> >--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt >> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt >> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e >> > 1 data member deletion: >> > 'unsigned char S1::m1', at offset 32 (in bits) >> > >> >- >> >diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt >> >index 3c8c4a8f..b39f650d 100644 >> >--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt >> >+++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt >> >@@ -15,4 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e >> > 1 data member deletion: >> > 'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1 >> > >> >- >> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-0.txt b/tests/data/test-abicompat/test6-var-changed-report-0.txt >> >index 5d2bd89c..f5077879 100644 >> >--- a/tests/data/test-abicompat/test6-var-changed-report-0.txt >> >+++ b/tests/data/test-abicompat/test6-var-changed-report-0.txt >> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app' >> > 1 data member deletion: >> > 'unsigned char S1::m1', at offset 32 (in bits) >> > >> >- >> >diff --git a/tests/data/test-abicompat/test6-var-changed-report-1.txt b/tests/data/test-abicompat/test6-var-changed-report-1.txt >> >index 697929f0..5b78c83c 100644 >> >--- a/tests/data/test-abicompat/test6-var-changed-report-1.txt >> >+++ b/tests/data/test-abicompat/test6-var-changed-report-1.txt >> >@@ -13,4 +13,3 @@ have sub-types that are different from what application 'test6-var-changed-app' >> > 1 data member deletion: >> > 'unsigned char S1::m1', at offset 32 (in bits) at test6-var-changed-libapp-v0.h:11:1 >> > >> >- >> >diff --git a/tests/data/test-abicompat/test7-fn-changed-report-0.txt b/tests/data/test-abicompat/test7-fn-changed-report-0.txt >> >index 19db76e3..6a34710d 100644 >> >--- a/tests/data/test-abicompat/test7-fn-changed-report-0.txt >> >+++ b/tests/data/test-abicompat/test7-fn-changed-report-0.txt >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type name changed from 'float' to 'int' >> > type size hasn't changed >> > >> >- >> > [C] 'function void print(const Student)' has some indirect sub-type changes: >> > parameter 1 of type 'const Student' has sub-type changes: >> > in unqualified underlying type 'struct Student': >> >diff --git a/tests/data/test-abidiff-exit/test-leaf3-report.txt b/tests/data/test-abidiff-exit/test-leaf3-report.txt >> >index 138c4b5a..7602e761 100644 >> >--- a/tests/data/test-abidiff-exit/test-leaf3-report.txt >> >+++ b/tests/data/test-abidiff-exit/test-leaf3-report.txt >> >@@ -10,7 +10,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable >> > type name changed from 'sto1' to 'stn1' >> > type size hasn't changed >> > >> >- >> > [C] 'function void fn2(sto2)' at test-leaf3-v1.c:13:1 has some sub-type changes: >> > parameter 1 of type 'struct sto2' changed: >> > type name changed from 'sto2' to 'stn2' >> >diff --git a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt >> >index 53672744..bc37ff53 100644 >> >--- a/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt >> >+++ b/tests/data/test-abidiff-exit/test-loc-with-locs-report.txt >> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type size hasn't changed >> > >> > >> >- >> >diff --git a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt >> >index 6893e3fc..56c41d79 100644 >> >--- a/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt >> >+++ b/tests/data/test-abidiff-exit/test-loc-without-locs-report.txt >> >@@ -9,4 +9,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type size hasn't changed >> > >> > >> >- >> >diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt >> >index 5758077d..7e16fe32 100644 >> >--- a/tests/data/test-abidiff/test-PR18791-report0.txt >> >+++ b/tests/data/test-abidiff/test-PR18791-report0.txt >> >@@ -48,9 +48,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > struct std::__detail::_List_node_base >> > 2 data member deletions: >> > 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits) >> >- >> > 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits) >> >- >> > 1 data member insertion: >> > 'unsigned long int std::_List_node::_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' >> >diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt >> >index c7c5a682..1cd7eaaf 100644 >> >--- a/tests/data/test-abidiff/test-enum0-report.txt >> >+++ b/tests/data/test-abidiff/test-enum0-report.txt >> >@@ -3,7 +3,6 @@ >> > type size hasn't changed >> > 1 enumerator deletion: >> > 'E::e2' value '1' >> >- >> > 1 enumerator insertion: >> > 'E::e1' value '1' >> > >> >diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt >> >index f1198ef9..7e8acf80 100644 >> >--- a/tests/data/test-abidiff/test-enum1-report.txt >> >+++ b/tests/data/test-abidiff/test-enum1-report.txt >> >@@ -3,7 +3,6 @@ >> > type size hasn't changed >> > 1 enumerator insertion: >> > 'E::e1' value '1' >> >- >> > 1 enumerator change: >> > 'E::e2' from value '1' to '2' >> > >> >diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt >> >index 39b71e55..e334bf1a 100644 >> >--- a/tests/data/test-abidiff/test-struct1-report.txt >> >+++ b/tests/data/test-abidiff/test-struct1-report.txt >> >@@ -6,7 +6,6 @@ >> > >> > 1 data member deletion: >> > 'char s0::m1', at offset 96 (in bits) >> >- >> > 1 data member insertion: >> > 'double s0::m01', at offset 128 (in bits) >> > 2 data member changes: >> >diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt >> >index 29f823ec..aab271ff 100644 >> >--- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt >> >+++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt >> >@@ -100,7 +100,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables >> > type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed: >> > type name changed from '__anonymous_union__4' to '__anonymous_union__5' >> > type size hasn't changed >> >- >> > 3 data member changes: >> > name of '__anonymous_union__4::app_ctx' changed to '__anonymous_union__5::app_ctx' >> > name of '__anonymous_union__4::padding' changed to '__anonymous_union__5::padding' >> >@@ -171,7 +170,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables >> > type size changed from 35008 to 35072 (in bits) >> > 1 data member deletion: >> > 'char lttng_session::padding[12]', at offset 34912 (in bits) >> >- >> > 1 data member insertion: >> > 'union {char padding[12]; void* ptr;} lttng_session::extended', at offset 34944 (in bits) >> > >> >@@ -208,7 +206,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables >> > 1 data member deletion: >> > 'bool lttng_notification::owns_elements', at offset 128 (in bits) >> > >> >- >> > [C] 'function lttng_notification_channel_status lttng_notification_channel_subscribe(lttng_notification_channel*, const lttng_condition*)' has some indirect sub-type changes: >> > return type changed: >> > enum type 'enum lttng_notification_channel_status' changed, as reported earlier >> >@@ -289,7 +286,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables >> > 'op_type::AST_OP_BIN_AND' value '10' >> > 'op_type::AST_OP_BIN_OR' value '11' >> > 'op_type::AST_OP_BIN_XOR' value '12' >> >- >> > 5 enumerator insertions: >> > 'op_type::AST_OP_BIT_RSHIFT' value '6' >> > 'op_type::AST_OP_BIT_LSHIFT' value '7' >> >@@ -319,7 +315,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables >> > type size hasn't changed >> > 1 enumerator deletion: >> > 'unary_op_type::AST_UNARY_BIN_NOT' value '4' >> >- >> > 1 enumerator insertion: >> > 'unary_op_type::AST_UNARY_BIT_NOT' value '4' >> > >> >diff --git a/tests/data/test-diff-dwarf/test13-report.txt b/tests/data/test-diff-dwarf/test13-report.txt >> >index cf29a4fd..833879c7 100644 >> >--- a/tests/data/test-diff-dwarf/test13-report.txt >> >+++ b/tests/data/test-diff-dwarf/test13-report.txt >> >@@ -12,7 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type name changed from 'int' to 'unsigned int' >> > type size hasn't changed >> > >> >- >> > type of 'unsigned int S::m2' changed: >> > type name changed from 'unsigned int' to 'long long int' >> > type size changed from 32 to 64 (in bits) >> >diff --git a/tests/data/test-diff-dwarf/test38-union-report-0.txt b/tests/data/test-diff-dwarf/test38-union-report-0.txt >> >index f7a75df7..fd9708e6 100644 >> >--- a/tests/data/test-diff-dwarf/test38-union-report-0.txt >> >+++ b/tests/data/test-diff-dwarf/test38-union-report-0.txt >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type size hasn't changed >> > 1 data member deletion: >> > 'int some_union_type::m0' >> >- >> > type changed from: >> > union some_union_type{int m0; char m1; S m2;} >> > to: >> >diff --git a/tests/data/test-diff-dwarf/test40-report-0.txt b/tests/data/test-diff-dwarf/test40-report-0.txt >> >index d0b8c52c..f0f9e1a1 100644 >> >--- a/tests/data/test-diff-dwarf/test40-report-0.txt >> >+++ b/tests/data/test-diff-dwarf/test40-report-0.txt >> >@@ -9,7 +9,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type size changed from 96 to 64 (in bits) >> > 1 data member deletion: >> > 'int S2::to_remove', at offset 0 (in bits) >> >- >> > 2 data member changes: >> > 'int S2::m0' offset changed from 32 to 0 (in bits) (by -32 bits) >> > 'char S2::m1' offset changed from 64 to 32 (in bits) (by -32 bits) >> >@@ -24,7 +23,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type size hasn't changed >> > >> > >> >- >> > [C] 'function int foo(S1*)' has some indirect sub-type changes: >> > parameter 1 of type 'S1*' has sub-type changes: >> > in pointed to type 'struct S1': >> >diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt >> >index f0a25a2e..44918baa 100644 >> >--- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt >> >+++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt >> >@@ -19,7 +19,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > return type changed: >> > type name changed from 'std::tuple' to 'std::tuple' >> > type size hasn't changed >> >- >> > 1 base class deletion: >> > struct std::_Tuple_impl<0ul, STR&&> >> > 1 base class insertion: >> >diff --git a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt >> >index 1c0c773d..60681336 100644 >> >--- a/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt >> >+++ b/tests/data/test-diff-dwarf/test43-PR22913-report-0.txt >> >@@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > 'char m2', at offset 8 (in bits) >> > >> > >> >- >> >diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt >> >index bdc31fd0..5a505fc3 100644 >> >--- a/tests/data/test-diff-filter/test10-report.txt >> >+++ b/tests/data/test-diff-filter/test10-report.txt >> >@@ -16,4 +16,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > 'unsigned int S::m', at offset 0 (in bits) >> > >> > >> >- >> >diff --git a/tests/data/test-diff-filter/test18-report.txt b/tests/data/test-diff-filter/test18-report.txt >> >index 0d30ef39..6ade5bdf 100644 >> >--- a/tests/data/test-diff-filter/test18-report.txt >> >+++ b/tests/data/test-diff-filter/test18-report.txt >> >@@ -14,4 +14,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > >> > >> > >> >- >> >diff --git a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt >> >index f847d32e..99c14329 100644 >> >--- a/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt >> >+++ b/tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt >> >@@ -7,10 +7,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > parameter 1 of type 'int' changed: >> > type name changed from 'int' to 'float' >> > type size hasn't changed >> >- >> > parameter 2 of type 'int' changed: >> > type name changed from 'int' to 'float' >> > type size hasn't changed >> > >> > >> >- >> >diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt >> >index b78215b0..5def3a08 100644 >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > '__anonymous_enum__1::c_report_state_stream' value '142' >> > '__anonymous_enum__1::c_report_stream' value '143' >> > '__anonymous_enum__1::c_unload_library' value '144' >> >- >> > 92 enumerator changes: >> > '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' >> > '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: >> > type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' >> > type size hasn't changed >> >- >> > 1 data member changes (1 filtered): >> > anonymous data member at offset 0 (in bits) changed from: >> > struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' >> > type name changed from 'InitTableEntry' to '__anonymous_struct__2' >> > type size hasn't changed >> >- >> > 1 data member change: >> > type of 'void ()* InitTableEntry::func' changed: >> > in pointed to type 'function type void ()': >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > type size changed from 2752 to 5504 (in bits) >> > 1 data member deletion: >> > 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) >> >- >> > 7 data member insertions: >> > 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) >> > 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > underlying type 'class std::_Rb_tree, std::less, std::allocator >' changed: >> > type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' >> > type size hasn't changed >> >- >> > 1 data member change: >> > type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: >> > entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' >> > type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' >> > type size hasn't changed >> >- >> > 1 base class deletion: >> > class std::allocator > >> > 2 data member deletions: >> > 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) >> >- >> > 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) >> >- >> > 1 data member change: >> > type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: >> > type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' >> >diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt >> >index ccaf8126..3bc8f6d7 100644 >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > '__anonymous_enum__1::c_report_state_stream' value '142' >> > '__anonymous_enum__1::c_report_stream' value '143' >> > '__anonymous_enum__1::c_unload_library' value '144' >> >- >> > 92 enumerator changes: >> > '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1 >> > '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1 >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: >> > type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' >> > type size hasn't changed >> >- >> > 1 data member changes (1 filtered): >> > anonymous data member at offset 0 (in bits) changed from: >> > struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1 >> > type name changed from 'InitTableEntry' to '__anonymous_struct__2' >> > type size hasn't changed >> >- >> > 1 data member change: >> > type of 'void ()* InitTableEntry::func' changed: >> > in pointed to type 'function type void ()': >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > type size changed from 2752 to 5504 (in bits) >> > 1 data member deletion: >> > 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1 >> >- >> > 7 data member insertions: >> > 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1 >> > 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1 >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > underlying type 'class std::_Rb_tree, std::less, std::allocator >' at stl_tree.h:357:1 changed: >> > type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' >> > type size hasn't changed >> >- >> > 1 data member change: >> > type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: >> > entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' at stl_set.h:115:1 >> > type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' >> > type size hasn't changed >> >- >> > 1 base class deletion: >> > class std::allocator > at allocator.h:95:1 >> > 2 data member deletions: >> > 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1 >> >- >> > 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1 >> >- >> > 1 data member change: >> > type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: >> > type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' >> >diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt >> >index 44e78935..d91de66b 100644 >> >--- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt >> >+++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt >> >@@ -1200,7 +1200,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > '__anonymous_enum__1::c_report_state_stream' value '142' >> > '__anonymous_enum__1::c_report_stream' value '143' >> > '__anonymous_enum__1::c_unload_library' value '144' >> >- >> > 92 enumerator changes: >> > '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' at liboffload_error_codes.h:38:1 >> > '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' at liboffload_error_codes.h:38:1 >> >@@ -1304,7 +1303,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: >> > type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' >> > type size hasn't changed >> >- >> > 1 data member changes (1 filtered): >> > anonymous data member at offset 0 (in bytes) changed from: >> > struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} >> >@@ -1319,7 +1317,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1 >> > type name changed from 'InitTableEntry' to '__anonymous_struct__2' >> > type size hasn't changed >> >- >> > 1 data member change: >> > type of 'void ()* InitTableEntry::func' changed: >> > in pointed to type 'function type void ()': >> >@@ -1348,7 +1345,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > type size changed from 0x158 to 0x2b0 (in bytes) >> > 1 data member deletion: >> > 'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1 >> >- >> > 7 data member insertions: >> > 'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1 >> > 'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1 >> >@@ -1370,20 +1366,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > underlying type 'class std::_Rb_tree, std::less, std::allocator >' at stl_tree.h:357:1 changed: >> > type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' >> > type size hasn't changed >> >- >> > 1 data member change: >> > type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: >> > entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' at stl_set.h:115:1 >> > type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' >> > type size hasn't changed >> >- >> > 1 base class deletion: >> > class std::allocator > at allocator.h:95:1 >> > 2 data member deletions: >> > 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1 >> >- >> > 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1 >> >- >> > 1 data member change: >> > type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: >> > type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' >> >diff --git a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt >> >index c9cb9246..306a9863 100644 >> >--- a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt >> >+++ b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt >> >@@ -116,7 +116,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > '__anonymous_enum__1::c_report_state_stream' value '142' >> > '__anonymous_enum__1::c_report_stream' value '143' >> > '__anonymous_enum__1::c_unload_library' value '144' >> >- >> > 92 enumerator changes: >> > '__anonymous_enum__::c_process_get_func_handles' from value '32' to '33' >> > '__anonymous_enum__::c_process_wait_shutdown' from value '33' to '34' >> >@@ -220,7 +219,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: >> > type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' >> > type size hasn't changed >> >- >> > 1 data member changes (1 filtered): >> > anonymous data member at offset 0 (in bits) changed from: >> > struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} >> >@@ -235,7 +233,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' >> > type name changed from 'InitTableEntry' to '__anonymous_struct__2' >> > type size hasn't changed >> >- >> > 1 data member change: >> > type of 'void ()* InitTableEntry::func' changed: >> > in pointed to type 'function type void ()': >> >@@ -264,7 +261,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > type size changed from 2752 to 5504 (in bits) >> > 1 data member deletion: >> > 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) >> >- >> > 7 data member insertions: >> > 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) >> > 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) >> >@@ -286,20 +282,16 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen >> > underlying type 'class std::_Rb_tree, std::less, std::allocator >' changed: >> > type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' >> > type size hasn't changed >> >- >> > 1 data member change: >> > type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: >> > entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' >> > type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' >> > type size hasn't changed >> >- >> > 1 base class deletion: >> > class std::allocator > >> > 2 data member deletions: >> > 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) >> >- >> > 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) >> >- >> > 1 data member change: >> > type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: >> > type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' >> >diff --git a/tests/data/test-diff-filter/test36-report-0.txt b/tests/data/test-diff-filter/test36-report-0.txt >> >index 08692c1e..22e614d8 100644 >> >--- a/tests/data/test-diff-filter/test36-report-0.txt >> >+++ b/tests/data/test-diff-filter/test36-report-0.txt >> >@@ -13,7 +13,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type size hasn't changed >> > >> > >> >- >> > [C] 'function int foo_2(S*)' at test36-2-v1.c:13:1 has some indirect sub-type changes: >> > parameter 1 of type 'S*' has sub-type changes: >> > in pointed to type 'struct S' at test36-2-v1.c:6:1: >> >@@ -23,11 +22,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type name changed from 'int' to 'unsigned int' >> > type size hasn't changed >> > >> >- >> > type of 'int S::m1' changed: >> > type name changed from 'int' to 'unsigned int' >> > type size hasn't changed >> > >> > >> > >> >- >> >diff --git a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt >> >index 94a0551d..d40a1374 100644 >> >--- a/tests/data/test-diff-filter/test42-leaf-report-output-0.txt >> >+++ b/tests/data/test-diff-filter/test42-leaf-report-output-0.txt >> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable >> > type size changed from 32 to 64 (in bits) >> > 1 data member insertion: >> > 'char leaf::m1', at offset 32 (in bits) at test42-leaf-report-v1.cc:7:1 >> >- >> > one impacted interface: >> > function void fn(C&) >> >diff --git a/tests/data/test-diff-filter/test7-report.txt b/tests/data/test-diff-filter/test7-report.txt >> >index 7e3a4d47..26933033 100644 >> >--- a/tests/data/test-diff-filter/test7-report.txt >> >+++ b/tests/data/test-diff-filter/test7-report.txt >> >@@ -7,7 +7,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > return type changed: >> > type name changed from 'return_type' to 'other_return_type' >> > type size hasn't changed >> >- >> > no data member change (1 filtered); >> > >> > >> >diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt >> >index 05d6fcad..873a84cd 100644 >> >--- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt >> >+++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt >> >@@ -54,9 +54,7 @@ >> > struct std::__detail::_List_node_base >> > 2 data member deletions: >> > 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits) >> >- >> > 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits) >> >- >> > 1 data member insertion: >> > 'unsigned long int std::_List_node::_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' >> >diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt >> >index c227fa5c..a0cc67c2 100644 >> >--- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt >> >+++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt >> >@@ -10,7 +10,6 @@ >> > type size hasn't changed >> > 1 enumerator insertion: >> > '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347' >> >- >> > 1 enumerator change: >> > '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1 >> > >> >@@ -34,7 +33,6 @@ >> > type size hasn't changed >> > 1 enumerator insertion: >> > '__anonymous_enum__1::ssl_kea_ecdh_psk' value '5' >> >- >> > 1 enumerator change: >> > '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1 >> > >> >@@ -52,7 +50,6 @@ >> > type size hasn't changed >> > 1 enumerator deletion: >> > '__anonymous_enum__::ssl_auth_rsa' value '1' >> >- >> > 7 enumerator insertions: >> > '__anonymous_enum__::ssl_auth_rsa_decrypt' value '1' >> > '__anonymous_enum__::ssl_auth_ecdh_rsa' value '5' >> >@@ -114,7 +111,6 @@ >> > type size hasn't changed >> > 1 enumerator insertion: >> > '__anonymous_enum__1::SEC_OID_TLS_ECDHE_PSK' value '347' >> >- >> > 1 enumerator change: >> > '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1 >> > >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt >> >index bf081f52..70b41ddd 100644 >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt >> >@@ -25,7 +25,6 @@ >> > underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed: >> > type name changed from '__anonymous_enum__2' to 'SpiceImageCompression' >> > type size hasn't changed >> >- >> > 7 enumerator deletions: >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1' >> >@@ -34,7 +33,6 @@ >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6' >> >- >> > 9 enumerator insertions: >> > 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0' >> > 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1' >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt >> >index 7b86b964..0b909f90 100644 >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt >> >@@ -25,7 +25,6 @@ >> > underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed: >> > type name changed from '__anonymous_enum__2' to 'SpiceImageCompression' >> > type size hasn't changed >> >- >> > 7 enumerator deletions: >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1' >> >@@ -34,7 +33,6 @@ >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6' >> >- >> > 9 enumerator insertions: >> > 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0' >> > 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1' >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt >> >index 3d20caf1..c247ef95 100644 >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt >> >@@ -239,15 +239,10 @@ >> > type size changed from 1280 to 256 (in bits) >> > 5 data member deletions: >> > 'RedsSASL RedsStream::sasl', at offset 256 (in bits) at reds.h:78:1 >> >- >> > 'SpiceChannelEventInfo* RedsStream::info', at offset 1024 (in bits) at reds.h:85:1 >> >- >> > 'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::read', at offset 1088 (in bits) at reds.h:88:1 >> >- >> > 'typedef ssize_t (RedsStream*, void*, typedef size_t)* RedsStream::write', at offset 1152 (in bits) at reds.h:89:1 >> >- >> > 'typedef ssize_t (RedsStream*, const iovec*, int)* RedsStream::writev', at offset 1216 (in bits) at reds.h:90:1 >> >- >> > 1 data member change: >> > type of 'SSL* RedsStream::ssl' changed: >> > in pointed to type 'typedef SSL' at reds_stream.h:32:1: >> >@@ -257,193 +252,99 @@ >> > type size changed from 5504 to 0 (in bits) >> > 94 data member deletions: >> > 'int ssl_st::version', at offset 0 (in bits) at ssl.h:1070:1 >> >- >> > 'int ssl_st::type', at offset 32 (in bits) at ssl.h:1071:1 >> >- >> > 'const SSL_METHOD* ssl_st::method', at offset 64 (in bits) at ssl.h:1073:1 >> >- >> > 'BIO* ssl_st::rbio', at offset 128 (in bits) at ssl.h:1080:1 >> >- >> > 'BIO* ssl_st::wbio', at offset 192 (in bits) at ssl.h:1081:1 >> >- >> > 'BIO* ssl_st::bbio', at offset 256 (in bits) at ssl.h:1082:1 >> >- >> > 'int ssl_st::rwstate', at offset 320 (in bits) at ssl.h:1093:1 >> >- >> > 'int ssl_st::in_handshake', at offset 352 (in bits) at ssl.h:1096:1 >> >- >> > 'int (SSL*)* ssl_st::handshake_func', at offset 384 (in bits) at ssl.h:1097:1 >> >- >> > 'int ssl_st::server', at offset 448 (in bits) at ssl.h:1107:1 >> >- >> > 'int ssl_st::new_session', at offset 480 (in bits) at ssl.h:1109:1 >> >- >> > 'int ssl_st::quiet_shutdown', at offset 512 (in bits) at ssl.h:1113:1 >> >- >> > 'int ssl_st::shutdown', at offset 544 (in bits) at ssl.h:1114:1 >> >- >> > 'int ssl_st::state', at offset 576 (in bits) at ssl.h:1116:1 >> >- >> > 'int ssl_st::rstate', at offset 608 (in bits) at ssl.h:1117:1 >> >- >> > 'BUF_MEM* ssl_st::init_buf', at offset 640 (in bits) at ssl.h:1119:1 >> >- >> > 'void* ssl_st::init_msg', at offset 704 (in bits) at ssl.h:1120:1 >> >- >> > 'int ssl_st::init_num', at offset 768 (in bits) at ssl.h:1121:1 >> >- >> > 'int ssl_st::init_off', at offset 800 (in bits) at ssl.h:1122:1 >> >- >> > 'unsigned char* ssl_st::packet', at offset 832 (in bits) at ssl.h:1125:1 >> >- >> > 'unsigned int ssl_st::packet_length', at offset 896 (in bits) at ssl.h:1126:1 >> >- >> > 'ssl2_state_st* ssl_st::s2', at offset 960 (in bits) at ssl.h:1128:1 >> >- >> > 'ssl3_state_st* ssl_st::s3', at offset 1024 (in bits) at ssl.h:1129:1 >> >- >> > 'dtls1_state_st* ssl_st::d1', at offset 1088 (in bits) at ssl.h:1130:1 >> >- >> > 'int ssl_st::read_ahead', at offset 1152 (in bits) at ssl.h:1132:1 >> >- >> > 'void (int, int, int, void*, typedef size_t, SSL*, void*)* ssl_st::msg_callback', at offset 1216 (in bits) at ssl.h:1136:1 >> >- >> > 'void* ssl_st::msg_callback_arg', at offset 1280 (in bits) at ssl.h:1137:1 >> >- >> > 'int ssl_st::hit', at offset 1344 (in bits) at ssl.h:1139:1 >> >- >> > 'X509_VERIFY_PARAM* ssl_st::param', at offset 1408 (in bits) at ssl.h:1141:1 >> >- >> > 'stack_st_SSL_CIPHER* ssl_st::cipher_list', at offset 1472 (in bits) at ssl.h:1149:1 >> >- >> > 'stack_st_SSL_CIPHER* ssl_st::cipher_list_by_id', at offset 1536 (in bits) at ssl.h:1150:1 >> >- >> > 'int ssl_st::mac_flags', at offset 1600 (in bits) at ssl.h:1154:1 >> >- >> > 'EVP_CIPHER_CTX* ssl_st::enc_read_ctx', at offset 1664 (in bits) at ssl.h:1155:1 >> >- >> > 'EVP_MD_CTX* ssl_st::read_hash', at offset 1728 (in bits) at ssl.h:1156:1 >> >- >> > 'COMP_CTX* ssl_st::expand', at offset 1792 (in bits) at ssl.h:1158:1 >> >- >> > 'EVP_CIPHER_CTX* ssl_st::enc_write_ctx', at offset 1856 (in bits) at ssl.h:1163:1 >> >- >> > 'EVP_MD_CTX* ssl_st::write_hash', at offset 1920 (in bits) at ssl.h:1164:1 >> >- >> > 'COMP_CTX* ssl_st::compress', at offset 1984 (in bits) at ssl.h:1166:1 >> >- >> > 'cert_st* ssl_st::cert', at offset 2048 (in bits) at ssl.h:1175:1 >> >- >> > 'unsigned int ssl_st::sid_ctx_length', at offset 2112 (in bits) at ssl.h:1179:1 >> >- >> > 'unsigned char ssl_st::sid_ctx[32]', at offset 2144 (in bits) at ssl.h:1180:1 >> >- >> > 'SSL_SESSION* ssl_st::session', at offset 2432 (in bits) at ssl.h:1183:1 >> >- >> > 'GEN_SESSION_CB ssl_st::generate_session_id', at offset 2496 (in bits) at ssl.h:1186:1 >> >- >> > 'int ssl_st::verify_mode', at offset 2560 (in bits) at ssl.h:1189:1 >> >- >> > 'int (int, X509_STORE_CTX*)* ssl_st::verify_callback', at offset 2624 (in bits) at ssl.h:1191:1 >> >- >> > 'void (const SSL*, int, int)* ssl_st::info_callback', at offset 2688 (in bits) at ssl.h:1193:1 >> >- >> > 'int ssl_st::error', at offset 2752 (in bits) at ssl.h:1195:1 >> >- >> > 'int ssl_st::error_code', at offset 2784 (in bits) at ssl.h:1196:1 >> >- >> > 'KSSL_CTX* ssl_st::kssl_ctx', at offset 2816 (in bits) at ssl.h:1199:1 >> >- >> > 'unsigned int (SSL*, const char*, char*, unsigned int, unsigned char*, unsigned int)* ssl_st::psk_client_callback', at offset 2880 (in bits) at ssl.h:1203:1 >> >- >> > 'unsigned int (SSL*, const char*, unsigned char*, unsigned int)* ssl_st::psk_server_callback', at offset 2944 (in bits) at ssl.h:1206:1 >> >- >> > 'SSL_CTX* ssl_st::ctx', at offset 3008 (in bits) at ssl.h:1210:1 >> >- >> > 'int ssl_st::debug', at offset 3072 (in bits) at ssl.h:1213:1 >> >- >> > 'long int ssl_st::verify_result', at offset 3136 (in bits) at ssl.h:1216:1 >> >- >> > 'CRYPTO_EX_DATA ssl_st::ex_data', at offset 3200 (in bits) at ssl.h:1217:1 >> >- >> > 'stack_st_X509_NAME* ssl_st::client_CA', at offset 3328 (in bits) at ssl.h:1220:1 >> >- >> > 'int ssl_st::references', at offset 3392 (in bits) at ssl.h:1222:1 >> >- >> > 'unsigned long int ssl_st::options', at offset 3456 (in bits) at ssl.h:1223:1 >> >- >> > 'unsigned long int ssl_st::mode', at offset 3520 (in bits) at ssl.h:1224:1 >> >- >> > 'long int ssl_st::max_cert_list', at offset 3584 (in bits) at ssl.h:1225:1 >> >- >> > 'int ssl_st::first_packet', at offset 3648 (in bits) at ssl.h:1226:1 >> >- >> > 'int ssl_st::client_version', at offset 3680 (in bits) at ssl.h:1227:1 >> >- >> > 'unsigned int ssl_st::max_send_fragment', at offset 3712 (in bits) at ssl.h:1229:1 >> >- >> > 'void (SSL*, int, int, unsigned char*, int, void*)* ssl_st::tlsext_debug_cb', at offset 3776 (in bits) at ssl.h:1232:1 >> >- >> > 'void* ssl_st::tlsext_debug_arg', at offset 3840 (in bits) at ssl.h:1235:1 >> >- >> > 'char* ssl_st::tlsext_hostname', at offset 3904 (in bits) at ssl.h:1236:1 >> >- >> > 'int ssl_st::servername_done', at offset 3968 (in bits) at ssl.h:1237:1 >> >- >> > 'int ssl_st::tlsext_status_type', at offset 4000 (in bits) at ssl.h:1244:1 >> >- >> > 'int ssl_st::tlsext_status_expected', at offset 4032 (in bits) at ssl.h:1246:1 >> >- >> > 'stack_st_OCSP_RESPID* ssl_st::tlsext_ocsp_ids', at offset 4096 (in bits) at ssl.h:1248:1 >> >- >> > 'X509_EXTENSIONS* ssl_st::tlsext_ocsp_exts', at offset 4160 (in bits) at ssl.h:1249:1 >> >- >> > 'unsigned char* ssl_st::tlsext_ocsp_resp', at offset 4224 (in bits) at ssl.h:1251:1 >> >- >> > 'int ssl_st::tlsext_ocsp_resplen', at offset 4288 (in bits) at ssl.h:1252:1 >> >- >> > 'int ssl_st::tlsext_ticket_expected', at offset 4320 (in bits) at ssl.h:1255:1 >> >- >> > 'size_t ssl_st::tlsext_ecpointformatlist_length', at offset 4352 (in bits) at ssl.h:1257:1 >> >- >> > 'unsigned char* ssl_st::tlsext_ecpointformatlist', at offset 4416 (in bits) at ssl.h:1258:1 >> >- >> > 'size_t ssl_st::tlsext_ellipticcurvelist_length', at offset 4480 (in bits) at ssl.h:1259:1 >> >- >> > 'unsigned char* ssl_st::tlsext_ellipticcurvelist', at offset 4544 (in bits) at ssl.h:1260:1 >> >- >> > 'void* ssl_st::tlsext_opaque_prf_input', at offset 4608 (in bits) at ssl.h:1264:1 >> >- >> > 'size_t ssl_st::tlsext_opaque_prf_input_len', at offset 4672 (in bits) at ssl.h:1265:1 >> >- >> > 'TLS_SESSION_TICKET_EXT* ssl_st::tlsext_session_ticket', at offset 4736 (in bits) at ssl.h:1268:1 >> >- >> > 'tls_session_ticket_ext_cb_fn ssl_st::tls_session_ticket_ext_cb', at offset 4800 (in bits) at ssl.h:1271:1 >> >- >> > 'void* ssl_st::tls_session_ticket_ext_cb_arg', at offset 4864 (in bits) at ssl.h:1272:1 >> >- >> > 'tls_session_secret_cb_fn ssl_st::tls_session_secret_cb', at offset 4928 (in bits) at ssl.h:1275:1 >> >- >> > 'void* ssl_st::tls_session_secret_cb_arg', at offset 4992 (in bits) at ssl.h:1276:1 >> >- >> > 'SSL_CTX* ssl_st::initial_ctx', at offset 5056 (in bits) at ssl.h:1278:1 >> >- >> > 'unsigned char* ssl_st::next_proto_negotiated', at offset 5120 (in bits) at ssl.h:1288:1 >> >- >> > 'unsigned char ssl_st::next_proto_negotiated_len', at offset 5184 (in bits) at ssl.h:1289:1 >> >- >> > 'stack_st_SRTP_PROTECTION_PROFILE* ssl_st::srtp_profiles', at offset 5248 (in bits) at ssl.h:1294:1 >> >- >> > 'SRTP_PROTECTION_PROFILE* ssl_st::srtp_profile', at offset 5312 (in bits) at ssl.h:1295:1 >> >- >> > 'unsigned int ssl_st::tlsext_heartbeat', at offset 5376 (in bits) at ssl.h:1297:1 >> >- >> > 'unsigned int ssl_st::tlsext_hb_pending', at offset 5408 (in bits) at ssl.h:1302:1 >> >- >> > 'unsigned int ssl_st::tlsext_hb_seq', at offset 5440 (in bits) at ssl.h:1303:1 >> >- >> > 'int ssl_st::renegotiate', at offset 5472 (in bits) at ssl.h:1308:1 >> >- >> > and name of 'RedsStream::ssl' changed to 'RedsStream::priv' at reds_stream.h:42:1 >> > >> > >> >@@ -558,7 +459,6 @@ >> > underlying type 'enum __anonymous_enum__2' at spice.h:471:1 changed: >> > type name changed from '__anonymous_enum__2' to 'SpiceImageCompression' >> > type size hasn't changed >> >- >> > 7 enumerator deletions: >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1' >> >@@ -567,7 +467,6 @@ >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6' >> >- >> > 9 enumerator insertions: >> > 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0' >> > 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1' >> >diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt >> >index 75ba0a50..11cd5682 100644 >> >--- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt >> >+++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt >> >@@ -22,7 +22,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out) >> > 'enum __anonymous_enum__2 at spice.h:471:1' changed: >> > type name changed from '__anonymous_enum__2' to 'SpiceImageCompression' >> > type size hasn't changed >> >- >> > 7 enumerator deletions: >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_INVALID' value '0' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_OFF' value '1' >> >@@ -31,7 +30,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out) >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_QUIC' value '4' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_GLZ' value '5' >> > '__anonymous_enum__2::SPICE_IMAGE_COMPRESS_LZ' value '6' >> >- >> > 9 enumerator insertions: >> > 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_INVALID' value '0' >> > 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_OFF' value '1' >> >@@ -48,7 +46,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out) >> > function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t) >> > 'typedef spice_image_compression_t at spice.h:479:1' changed: >> > typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1 >> >- >> > 2 impacted interfaces: >> > function spice_image_compression_t spice_server_get_image_compression(SpiceServer*) >> > function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t) >> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt >> >index f8e60b50..d0381ce5 100644 >> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt >> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt >> >@@ -60,7 +60,6 @@ >> > type size hasn't changed >> > 1 enumerator insertion: >> > 'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20' >> >- >> > 1 enumerator change: >> > 'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1 >> > >> >@@ -129,7 +128,6 @@ >> > >> > >> > >> >- >> > 1 member function deletion: >> > 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7 >> > >> >@@ -138,11 +136,8 @@ >> > >> > 3 data member deletions: >> > 'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1 >> >- >> > 'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1 >> >- >> > 'volatile uintptr_t* tbb::internal::generic_scheduler::my_ref_reload_epoch', at offset 2752 (in bits) at scheduler.h:443:1 >> >- >> > 18 data member changes: >> > 'uintptr_t tbb::internal::generic_scheduler::my_stealing_threshold' offset changed from 704 to 832 (in bits) (by +128 bits) >> > type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed: >> >diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt >> >index 10816705..89c8efa3 100644 >> >--- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt >> >+++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt >> >@@ -31,7 +31,6 @@ >> > type size hasn't changed >> > 1 enumerator insertion: >> > 'tbb::internal::exception_id::eid_bad_tagged_msg_cast' value '20' >> >- >> > 1 enumerator change: >> > 'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1 >> > >> >diff --git a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt >> >index 8f5d0b6b..c39851d3 100644 >> >--- a/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt >> >+++ b/tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt >> >@@ -7,14 +7,11 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > return type changed: >> > type name changed from 'int' to 'float' >> > type size hasn't changed >> >- >> > parameter 1 of type 'int' changed: >> > type name changed from 'int' to 'float' >> > type size hasn't changed >> >- >> > parameter 2 of type 'int' changed: >> > type name changed from 'int' to 'float' >> > type size hasn't changed >> > >> > >> >- >> >diff --git a/tests/data/test-diff-suppr/test35-leaf-report-0.txt b/tests/data/test-diff-suppr/test35-leaf-report-0.txt >> >index 411cc1b4..244455ae 100644 >> >--- a/tests/data/test-diff-suppr/test35-leaf-report-0.txt >> >+++ b/tests/data/test-diff-suppr/test35-leaf-report-0.txt >> >@@ -7,6 +7,5 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable >> > type size changed from 32 to 64 (in bits) >> > 1 data member insertion: >> > 'char leaf::m1', at offset 32 (in bits) at test35-leaf-v1.cc:8:1 >> >- >> > one impacted interface: >> > function void fn(C&) >> >diff --git a/tests/data/test-diff-suppr/test36-leaf-report-0.txt b/tests/data/test-diff-suppr/test36-leaf-report-0.txt >> >index b12a8a61..f286cc7b 100644 >> >--- a/tests/data/test-diff-suppr/test36-leaf-report-0.txt >> >+++ b/tests/data/test-diff-suppr/test36-leaf-report-0.txt >> >@@ -7,7 +7,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable >> > type size changed from 32 to 64 (in bits) >> > 1 data member insertion: >> > 'char leaf1::m1', at offset 32 (in bits) at test36-leaf-v1.cc:7:1 >> >- >> > 3 impacted interfaces: >> > function void interface1(struct_type*) >> > function void interface2(struct_type&) >> >@@ -20,7 +19,6 @@ Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable >> > type 'struct leaf1' of 'leaf2::member0' changed as reported earlier >> > and size changed from 32 to 64 (in bits) (by +32 bits) >> > 'char leaf2::member1' offset changed from 32 to 64 (in bits) (by +32 bits) >> >- >> > 3 impacted interfaces: >> > function void interface1(struct_type*) >> > function void interface2(struct_type&) >> >diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt >> >index 4b1681bc..d772bd1d 100644 >> >--- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt >> >+++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt >> >@@ -8,7 +8,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type size hasn't changed >> > 1 enumerator insertion: >> > 'EnumType1::ee3_inserted' value '3' >> >- >> > 1 enumerator change: >> > 'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1 >> > >> >@@ -18,7 +17,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable >> > type size hasn't changed >> > 1 enumerator insertion: >> > 'EnumType0::e3_inserted' value '3' >> >- >> > 1 enumerator change: >> > 'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1 >> > >> >-- >> >2.25.1.481.gfbce0eb801-goog >> > >> >