From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <30T96XggKCjQWfheSYTQWeeWbU.SecbYRQRYWQYbiekhSUmQhU.ehW@flex--gprocida.bounces.google.com> Received: from mail-wr1-x449.google.com (mail-wr1-x449.google.com [IPv6:2a00:1450:4864:20::449]) by sourceware.org (Postfix) with ESMTPS id 53E39385E009 for ; Tue, 24 Mar 2020 17:13:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 53E39385E009 Received: by mail-wr1-x449.google.com with SMTP id u18so9465031wrn.11 for ; Tue, 24 Mar 2020 10:13:54 -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:message-id:mime-version:subject:from:to:cc; bh=73M7dXe6G7Ues5EFXi1dYSbB2/OJO88/DzNthRSbgDg=; b=VlphQPH18FY7ish8kk7Mg1HV0fwBTzcNTCaNMrn4fPILEESHz4ULZT6CyjzyeUxn4R UZcMvsAb7TBff04n4FjlwqTpVNgIC14mciya3UwMPC4EtFBG2Nr1VLJ9/I9c9PUtdoDh 6MzxcTkIoxmBFBkZ/lDWqK1JMG9acxgzDenmei/duxeHCe+QFANS5tngb3vRHfQZ743B xsoBeV7lLmd+2MbhXQG2HGyNzrAob+THifCLnjrRUjuwHv5GZLxERDFKzgc5bCM8prgV w3m2mhKpPmQPcNFrNiUU/+pc4i9zUWn4ccFL2ensBFXdBffWP75DOXlCpmT5SlHYuGCH ipqg== X-Gm-Message-State: ANhLgQ2wvuDSBh3y9NNo3in16Rx1GsA6B59ObKMnL3j6XYjVbgVkrCqG nC6u1RlUIav+YGgbegzqhiALkK726uJO80VVE2lwSi8WdjVoEFdpFib8WhfkZtINndAns9LGQ7c oY0xXY3khh9m5n/17XwDbuOBXUq1W2c+LVE0yzpAgGaF3zum8PVMOVW+WIBRTYOEq3TBCUHM= X-Google-Smtp-Source: ADFU+vsXdFccB4/d6g8Pvy86Zm1HU4+4AmymNSEpdgIiofVcTH47+K8stjA52JhfVMKUq6+Kjg03jzeqDT0jcA== X-Received: by 2002:adf:9d8a:: with SMTP id p10mr24268745wre.190.1585070033118; Tue, 24 Mar 2020 10:13:53 -0700 (PDT) Date: Tue, 24 Mar 2020 17:13:44 +0000 Message-Id: <20200324171344.258865-1-gprocida@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.25.1.696.g5e7596f4ac-goog Subject: [RFC] Fix has_net_changes for leaf-changes-only mode. From: Giuliano Procida To: libabigail@sourceware.org Cc: dodji@seketeli.org, kernel-team@android.com, gprocida@google.com, maennich@google.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-34.4 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_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: Tue, 24 Mar 2020 17:13:55 -0000 * Which other functions need the same treatment? * Should something else change instead? * What about tracking of changed types (inclusion of these in summary stats and exit code for leaf mode)? This patch breaks tests and is not suitable for applying in its current form. The issue we saw is that anonymous struct name changes triggered hundreds of diffs (mostly but not all filtered out in non-leaf mode which may be its own bug). * src/abg-comparison.cc (corpus_diff::has_net_changes): In leaf-changes-only mode, check leaf changes to functions and variables to avoid returning non-zero exit code with empty output. Signed-off-by: Giuliano Procida --- src/abg-comparison.cc | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc index 46bf9e30..7756c12b 100644 --- a/src/abg-comparison.cc +++ b/src/abg-comparison.cc @@ -10602,21 +10602,26 @@ corpus_diff::has_net_changes() const const diff_stats& stats = const_cast(this)-> apply_filters_and_suppressions_before_reporting(); + bool leaf = context()->show_leaf_changes_only(); return (architecture_changed() - || soname_changed() - || stats.net_num_func_changed() - || stats.net_num_vars_changed() - || stats.net_num_func_added() - || stats.net_num_added_func_syms() - || stats.net_num_func_removed() - || stats.net_num_removed_func_syms() - || stats.net_num_vars_added() - || stats.net_num_added_var_syms() - || stats.net_num_vars_removed() - || stats.net_num_removed_var_syms() - || stats.net_num_added_unreachable_types() - || stats.net_num_removed_unreachable_types() - || stats.net_num_changed_unreachable_types()); + || soname_changed() + || (leaf + ? stats.net_num_leaf_func_changes() + : stats.net_num_func_changed()) + || (leaf + ? stats.net_num_leaf_var_changes() + : stats.net_num_vars_changed()) + || stats.net_num_func_added() + || stats.net_num_added_func_syms() + || stats.net_num_func_removed() + || stats.net_num_removed_func_syms() + || stats.net_num_vars_added() + || stats.net_num_added_var_syms() + || stats.net_num_vars_removed() + || stats.net_num_removed_var_syms() + || stats.net_num_added_unreachable_types() + || stats.net_num_removed_unreachable_types() + || stats.net_num_changed_unreachable_types()); } /// Apply the different filters that are registered to be applied to -- 2.25.1.696.g5e7596f4ac-goog