From patchwork Thu Jul 30 18:30:14 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 140295 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6ADC84BB8F71 for ; Thu, 30 Jul 2026 18:30:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6ADC84BB8F71 X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by sourceware.org (Postfix) with ESMTPS id DF34E4BB8F4A for ; Thu, 30 Jul 2026 18:30:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DF34E4BB8F4A Authentication-Results: sourceware.org; dmarc=fail (p=quarantine dis=none) header.from=seketeli.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DF34E4BB8F4A Authentication-Results: sourceware.org; arc=none smtp.remote-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1785436217; cv=none; b=TkvjvgIkCDmtkzjBJx+wmzJJu3WHGhfWUSmKoSPdjkBAs/kiAm+bWpRlHtutbvsVE9ldFsEs7XC+ICG2t9FKHEUMo4w3r2czS4HtlgRmCFwsOfTgFZ8Kyirylcs2RPAAyuOJvjvWiIeOZYnj3ozsRriiE404hB2bABo4C9pj6Eg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1785436217; c=relaxed/simple; bh=sKFkgdha9ho8YXC+PysOSUmfOhxxF/U90uavmawOpGI=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=avDjr2FNK4DAvbenmt1/wJ2siIW9lZHNyBhPp+hFfm/VHm1a0VJUK5XTvl2vaedGCHbmrGlfbf4HHee56PJWQ2TJ2KP0Z+K7omV9zHe6myMu7kjo154zk3vKGggibUCDjxyEvFU6zgiSN4f3wwSohaHUfLYVuTQqz7EZQrFlSPA= ARC-Authentication-Results: i=1; sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DF34E4BB8F4A Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-4921eed3fa2so732375e9.0 for ; Thu, 30 Jul 2026 11:30:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785436216; x=1786041016; h=content-type:mime-version:user-agent:message-id:date:organization :subject:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=lGEYe7YXX2GVVsIT0Rt3V0tBKZEuvfLDaiIOzE8yZDQ=; b=scKLhUUqhlIkc0HEHpfyj7LjXZfIuYCRGbVv1NE+DdLxJlUYHmSzp+PJrtznSzqFri XjW56mUovrkMt8QZGuaTy+3WwK/ZQuijn6JSZm9DT/PXp/+7XuC3HNziUYfH1FBwZOIY 2nc3IzzKiLI7u9HONf1+MdcoXg62qPX66IQRcTM3Jqgc/VUN36v36fYvl0bn+XOfyvRj vifP4CCerl3kSaQhvxc5s5q6focaCWwdtHQoNZKBKuRPpHrhHvuyDGIJ++YaN0g/freD LTJw43TKnWQBrOcV1Tt+uyYbBM7QhBqgdcR7Ct731mV6YL0HT8vyd6y0dpwdJVokKEuh ZPNw== X-Gm-Message-State: AOJu0Yy+rA456jf9I4nPwOmO7s+nJxVG+Q619pVE2h/9Afp7a/Dj4clv wBaNlzNYyn0SZuNMNRzqCil/cD/Oa6alOmxqr9ptJOPbUkbzH/q6Rkryz1etPUjd X-Gm-Gg: AR+sD10GbSxtko2vPhygykb5qIlVYGhxf80Xs6ZuMxpSmnKkD+eidGFSDZ6FuJJopx0 /izfiptTaecDK0hJGkzVQ2ddwjzDCXskD6uDNUB5i4NCKPpJ530i5V5MtdYRDh1t7bIXL7rh9Lq fMdNn9Vmqo/ok5O9W+Uvu9+tIP0ZLmIEu5hesHf96VxTNNnARQ8Q3tLcvIkg+AJYqR/kObxvTyV 81eQ41bHZULaldWYVOMI5t2ol6tYzIuDsWuLIs8oouo+yQd+Q5n4YRXlmxE2JOhh4/SVqzKqFYE 9DY61LHVKxcjoMv7ikxtstuh+X3702Vq9TI90PiB++jSafLAktf1l7Sy9kfvyOlizxTSVup0j0P CZQL9r7eovn3yUPvJ1Tkx9MD8X7f/0uT1EiAokiu4jAy3Q7GJ1jtrvIhC/p9b9qwfxURsF+ACVI Zf0/WNhVEODMRdHX+r+6hDS5giHiOZ3Hl4N1adt07uyHosnX64onkarnxTZoERgQ3p0h9Q8tJSI Fg1MTST3HVwkueMulMDn4XIoSlhiVaMZTgBcAHgdS4= X-Received: by 2002:a05:600c:5395:b0:495:5943:b76c with SMTP id 5b1f17b1804b1-49800eb98c2mr55933835e9.34.1785436215753; Thu, 30 Jul 2026 11:30:15 -0700 (PDT) Received: from localhost ([82.67.74.110]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47fc88e439asm7598841f8f.11.2026.07.30.11.30.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jul 2026 11:30:14 -0700 (PDT) Received: by localhost (Postfix, from userid 1000) id 5148A6058B8A; Thu, 30 Jul 2026 20:30:14 +0200 (CEST) From: Dodji Seketeli To: libabigail@sourceware.org Subject: [PATCH 1/3] configure: Consider prefixed headers dir when checking decls Organization: Me, myself and I X-Operating-System: Fedora 45 X-URL: http://www.seketeli.net/~dodji Date: Thu, 30 Jul 2026 20:30:14 +0200 Message-ID: <87jyqcnxe1.fsf@seketeli.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, LOCAL_AUTHENTICATION_FAIL_DMARC, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on 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, When checking the presence of some decls in the header files of our dependencies, we need to preferentially take into account the prefix that the package was configured with because some of the dependencies might be located there. * configure.ac: When checking for the presence of some decls in header dirs, consider the potential prefixed header dirs. Signed-off-by: Dodji Seketeli Applied to the master branch. --- configure.ac | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/configure.ac b/configure.ac index e0245660..ee023fdc 100644 --- a/configure.ac +++ b/configure.ac @@ -1041,6 +1041,16 @@ AM_CONDITIONAL([BTF_READER],[test "x$ENABLE_BTF" = "xyes"]) dnl Set the level of C++ standard we use. CXXFLAGS="$CXXFLAGS -std=$CXX_STANDARD" +use_prefixed_includedir="" +if test x$prefix != x; then + use_prefixed_includedir=$prefix +fi + +if test x$use_prefixed_includedir != x; then + saved_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="-I${prefix}/include $CPPFLAGS" +fi + dnl Check if several decls and constant are defined in dependant dnl libraries HAS_EM_AARCH64=no @@ -1617,6 +1627,11 @@ if test x$HAS_DW_FORM_strx1 = xyes -a \ [Define to 1 if dwarf.h has the DW_FORM_strx enumerators]) fi +if test x$use_prefixed_includedir != x; then + CPPFLAGS="$saved_CPPFLAGS" +fi + + dnl Set large files support AC_SYS_LARGEFILE From patchwork Thu Jul 30 18:31:33 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 140296 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2FEAB4BB8F4A for ; Thu, 30 Jul 2026 18:31:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2FEAB4BB8F4A X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by sourceware.org (Postfix) with ESMTPS id 61AF84BB8F4A for ; Thu, 30 Jul 2026 18:31:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 61AF84BB8F4A Authentication-Results: sourceware.org; dmarc=fail (p=quarantine dis=none) header.from=seketeli.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 61AF84BB8F4A Authentication-Results: sourceware.org; arc=none smtp.remote-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1785436296; cv=none; b=sYG+uLbbwi+FtE2/T/zd/1cJDyvkxJ2bvT8xs8u/wQ/ilXkwShv9w2tRmQaKdXl35QvZokHoEAob89QghPkXHCj0ZaIwPIlWb1Te97/bC9bbh4byI3YUcBfCx20twe56V2nbQCT4CiPpkY3Tu+KB+T7TOvWJgMGWqpuihslJG68= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1785436296; c=relaxed/simple; bh=LEh3Ap3GlacVF0WXiHw5I4ZIho8GD1vPecrNiPeKXG8=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=w9Sw2z9Hv25gOD/FvU304gZ/E57rL2a2ZdGZb9MAfr5sZmdRm/vZHzscJteGSq8eXSTDk7RbE+RLMfma5e2W0cVtrRKRxWoBwaXJ4w2iYyU4EIu3l5yzp/nHk8lvk7sFZP9OwmOYCC3v2J9jcv4UZH232OWAgoI8mH0q7tN65HU= ARC-Authentication-Results: i=1; sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 61AF84BB8F4A Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4954df200ddso732585e9.0 for ; Thu, 30 Jul 2026 11:31:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785436295; x=1786041095; h=content-type:mime-version:user-agent:message-id:date:organization :subject:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=bs6FCJ+xzvJprpKl0iVB1TnGNTGsxhZF7RWCXkRRBuk=; b=FEf+9hRYwytWMrVhjwpFS8VF0pLe97P+OeWVk/twIAxUWRh/5wDibCkDe7DhbOTKeY ArC6IK5uLjVXUzAkjMcf3sTuYK7F/5yv6A42zL5FPG29IBv0AND46UexBNJQdwvu1Q9y btaad5ON9E+hedU7O9NGeQFTfj6SLt+j1h6EoSIV1TKPI/iqVH+pwgBe40YtjuZFBcUz flkODfB6dQAFGAxDziTdPDSO5FcSHClU5b2JE/xlCvns3ec0nyCiDnsBXrOtG+vTe06K 8PPpfot2G4J4db4ez5rIpu+kMIGPtrjSV4NmCsZSh1ela8bI6ZwevOogJOt4W3/2oLr9 iylQ== X-Gm-Message-State: AOJu0YxvJ4sbiZ8gLpzrsgfm8Jlq0QuRfvw1LpvWMKRFubzBwsb5rB9U pDuoV0F3Rmy6IdR6eb5sezJ2tdu3iTa36SwnEb6o873Poyf3+pbLYMHGYTHgICss X-Gm-Gg: AR+sD11F/qyWvBgyaDyLOa28H6FHij1NRgU+buCfDJgMKojqPx3ucgAcuJSCihXwUY1 dNT9JlM9JaAS2do1Gfz9whszj+wjyvEbb8FUiEl7jE1KD7svjtfdJwxOAHRAw86Fo8ffetPirlJ qjxDrVGYc2tmGnOCf8+k55ufUAVCuQroorLMAHpTEXPc3H3sfLG1Lys9bwZde1C2gwb1oYl3eyP O7bYC3xqqu0Q5xG+U2OaQYep5V8kDImA2FT5E2NK8swTmVNJSOFjIBW285kmvhl9LIjq3qNbN+F tWEaEy+K0FiROryKi3a+NPtYhTKSf5WzXzkknG/wAh6CziXO4DPctfbO94y3GUPxVyX3394Rq7p ExKnJXb6r/osLo+kSyM4FDzylZxsJsKVeiwhi2b5y5RJsXhRN6JFT7DvCJVuzp5QYUFkLIk2BYC MAtR6O/jpP6qU1gS5qAJieU54Y7Hs2XPQyNoRIaKy1xDrcZ4wBWpZlIZdjmP2vo+aPdTBry2lW7 vUh3JvF/FMv3q6+SyO8sAldkHYzbYVfezbjtBVF4rk= X-Received: by 2002:a05:6000:4383:b0:47f:9254:d45c with SMTP id ffacd0b85a97d-47fc82305a5mr6064466f8f.31.1785436295133; Thu, 30 Jul 2026 11:31:35 -0700 (PDT) Received: from localhost ([82.67.74.110]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47fc892cdeasm8514209f8f.22.2026.07.30.11.31.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jul 2026 11:31:34 -0700 (PDT) Received: by localhost (Postfix, from userid 1000) id BC6C36058B8A; Thu, 30 Jul 2026 20:31:33 +0200 (CEST) From: Dodji Seketeli To: libabigail@sourceware.org Subject: [PATCH 2/3] ir: remove unused enum_has_non_name_change Organization: Me, myself and I X-Operating-System: Fedora 45 X-URL: http://www.seketeli.net/~dodji Date: Thu, 30 Jul 2026 20:31:33 +0200 Message-ID: <87fr10nxbu.fsf@seketeli.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, LOCAL_AUTHENTICATION_FAIL_DMARC, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on 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, It feels good to remove unused code. * include/abg-ir.h (class enum_type_decl): Remove friend declaration of enum_has_non_name_change. (enum_has_non_name_change): Remove declaration. * src/abg-ir.cc (enum_has_non_name_change): Remove definition. Signed-off-by: Dodji Seketeli Applied to the master branch. --- include/abg-ir.h | 10 ------ src/abg-ir.cc | 79 ------------------------------------------------ 2 files changed, 89 deletions(-) diff --git a/include/abg-ir.h b/include/abg-ir.h index 84dd2939..c5840d04 100644 --- a/include/abg-ir.h +++ b/include/abg-ir.h @@ -2858,11 +2858,6 @@ public: traverse(ir_node_visitor& v); virtual ~enum_type_decl(); - - friend bool - enum_has_non_name_change(const enum_type_decl& l, - const enum_type_decl& r, - change_kind* k); }; // end class enum_type_decl bool @@ -2871,11 +2866,6 @@ operator==(const enum_type_decl_sptr& l, const enum_type_decl_sptr& r); bool operator!=(const enum_type_decl_sptr& l, const enum_type_decl_sptr& r); -bool -enum_has_non_name_change(const enum_type_decl& l, - const enum_type_decl& r, - change_kind* k); - /// The abstraction of an enumerator class enum_type_decl::enumerator { diff --git a/src/abg-ir.cc b/src/abg-ir.cc index 2e9d2084..d9230404 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -20470,85 +20470,6 @@ enum_type_decl::traverse(ir_node_visitor &v) enum_type_decl::~enum_type_decl() {} -/// Test if two enums differ, but not by a name change. -/// -/// @param l the first enum to consider. -/// -/// @param r the second enum to consider. -/// -/// @return true iff @p l differs from @p r by anything but a name -/// change. -bool -enum_has_non_name_change(const enum_type_decl& l, - const enum_type_decl& r, - change_kind* k) -{ - bool result = false; - if (*l.get_underlying_type() != *r.get_underlying_type()) - { - result = true; - if (k) - *k |= SUBTYPE_CHANGE_KIND; - else - return true; - } - - enum_type_decl::enumerators::const_iterator i, j; - for (i = l.get_enumerators().begin(), j = r.get_enumerators().begin(); - i != l.get_enumerators().end() && j != r.get_enumerators().end(); - ++i, ++j) - if (*i != *j) - { - result = true; - if (k) - { - *k |= LOCAL_TYPE_CHANGE_KIND; - break; - } - else - return true; - } - - if (i != l.get_enumerators().end() || j != r.get_enumerators().end()) - { - result = true; - if (k) - *k |= LOCAL_TYPE_CHANGE_KIND; - else - return true; - } - - enum_type_decl &local_r = const_cast(r); - interned_string qn_r = l.get_environment().intern(r.get_qualified_name()); - interned_string qn_l = l.get_environment().intern(l.get_qualified_name()); - string n_l = l.get_name(); - string n_r = r.get_name(); - local_r.set_qualified_name(qn_l); - local_r.set_name(n_l); - - if (!(l.decl_base::operator==(r) && l.type_base::operator==(r))) - { - result = true; - if (k) - { - if (!l.decl_base::operator==(r)) - *k |= LOCAL_NON_TYPE_CHANGE_KIND; - if (!l.type_base::operator==(r)) - *k |= LOCAL_TYPE_CHANGE_KIND; - } - else - { - local_r.set_name(n_r); - local_r.set_qualified_name(qn_r); - return true; - } - } - local_r.set_qualified_name(qn_r); - local_r.set_name(n_r); - - return result; -} - /// Test if a given enumerator is found present in an enum. /// /// This is a subroutine of the equals function for enums. From patchwork Thu Jul 30 18:32:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dodji Seketeli X-Patchwork-Id: 140297 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 00FF64BBC0F8 for ; Thu, 30 Jul 2026 18:33:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 00FF64BBC0F8 X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by sourceware.org (Postfix) with ESMTPS id 68F3E4BB8F4A for ; Thu, 30 Jul 2026 18:33:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 68F3E4BB8F4A Authentication-Results: sourceware.org; dmarc=fail (p=quarantine dis=none) header.from=seketeli.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 68F3E4BB8F4A Authentication-Results: sourceware.org; arc=none smtp.remote-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1785436380; cv=none; b=ovxPj/i8Gkaa/vMsyPRyBKSjk4VGdpYuiReTil/pljtNKr7VtPd1Uigyx/Hta53UG1etgwBEI+GL7QWpnIw6jVZQIaMNNDm1BooqYCNM6nC8YIGxD6UepJZXBmX+bUIIavB+sq1bvgov0Hb26ltqHTX0cAGBYd6JBFpHIF00Jyc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1785436380; c=relaxed/simple; bh=6cCKvY3ZGHz+HPKUQkGlnYvXV0hGf7lkH95sd9JaZkg=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=fGkS5wEyiGXvZsXDUPjsOY6AReRm91F4hUb2pCKA9btWGtCS4DSVgfzeLJAHCkSvk08oZHpPAJP4Y271u9jD2rBPKrOMce+c2VH/CHxGIeXfRJa0tI1CER0AmSK44oMmG1FzSDnxLuUjCI4NHVS9SQVFqUBEd3l7GxEinQZkGEw= ARC-Authentication-Results: i=1; sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 68F3E4BB8F4A Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-49553515a8bso1163705e9.1 for ; Thu, 30 Jul 2026 11:33:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785436379; x=1786041179; h=content-type:mime-version:user-agent:message-id:date:organization :subject:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=l86RNu5pTZdiYxH5ugbOApzQMjGJETP/wtOjs2LWK80=; b=i3w3H207aHytQu76WFAN5rk692/dYtxbf+srMp/NLVLeVM3aZyePtFHvGbMzMT6tPU NfvNXh4WfeatIBzaYe5+YJZSMQ+1+Rc4dq5EaPQ+36R5ZROBR5L16r5jJtIHQge53pN6 jl/v6LcQ7qtRvIVUEPaqRFo6yTTMuRFZWQR41Y+OhdRo7NrrJmT1Gn6Oot2z69oYQl/k UwrQSMV6x7QA35EF2jIQ90D5QqesKa8JonLIawiu1MKqz+CmrpTZ2yem1MPiSuuW0Ih9 4ufPo6VGTLpZtLIBuONmYGwtNgilZVy1dk0t+2QjMW7nCYa1Sc6vwUT/SDuJWAg2MXfS zpOg== X-Gm-Message-State: AOJu0YwrObd+0HWzeZbu5W1rmBwa3/YPRzjmCs1slvECIp39CZleqkGy 1s2u3+b4cthmBXvzoBhkV8zuHq8o15YMranewjlQgooZN0sXSmy3xEhmAybFgdYn X-Gm-Gg: AR+sD12AAyTR3wywD8Seq2RwO/gF7XHT8ckvHh4nWk/JQIqpMK5kprlnEbsb1pE5Xbu QMcYEU2iBcGSruR0S5KII4eU2UYGUesHEHO6zgHH8+wR6tbGv9M8hH71CFL2D/L2L6mi3iVAwrQ eBuN+IjD5Z4P+NlNE1vtV2SmQqjDETHqjojL+2Rq49YFr8QxOqEPmalypnSVp9nma7mIJazq67n Ro4RRQkWrWLBimYU0kkKegOofi7OrIBCzZkSfBcs+dJxBBXEhPFlEIwhwToL4hTyG9svzwo8jPK rtC8euSvcNmpM+0OIe7qYBU8fm/hpZQ/rF8c75R40xnjZEgcODOSbgMBgxbXv3u25pwwGKIpdnL R2gJ+dRDKJmPVvTyjDtuuXilmwlsrStXd4DL5sguytTfCMGprr6GdnGzaR4/cw9PyuFtvhYt+/r kcUTT7bD3yGdT3SDEvm7ydkMH01QNSuPx7/ZssFVfYb73b2DKfR3lRkhg6qwGY/U+rs6fFoF+Rg t4pajpEvg1m1AEePU3AVK9qe4hXmlY/ow3MWaMPYdg= X-Received: by 2002:a05:600c:6c4a:b0:495:5172:6620 with SMTP id 5b1f17b1804b1-49800ead8b0mr41720215e9.31.1785436379221; Thu, 30 Jul 2026 11:32:59 -0700 (PDT) Received: from localhost ([82.67.74.110]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-498010a051csm75748405e9.11.2026.07.30.11.32.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jul 2026 11:32:58 -0700 (PDT) Received: by localhost (Postfix, from userid 1000) id C2FED6058B8A; Thu, 30 Jul 2026 20:32:57 +0200 (CEST) From: Dodji Seketeli To: libabigail@sourceware.org Subject: [PATCH 3/3] ir: make is_at_{class,global}_scope more crash proof Organization: Me, myself and I X-Operating-System: Fedora 45 X-URL: http://www.seketeli.net/~dodji Date: Thu, 30 Jul 2026 20:32:57 +0200 Message-ID: <87bjbonx9i.fsf@seketeli.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, LOCAL_AUTHENTICATION_FAIL_DMARC, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on 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, While hacking on something else, I figured the middle-end could use some crash avoidance care. * src/abg-ir.cc (is_at_{class,global}_scope): Add checks to avoid crashes here. Signed-off-by: Dodji Seketeli Applied to the master branch. --- src/abg-ir.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/abg-ir.cc b/src/abg-ir.cc index d9230404..9f0175d4 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -10603,7 +10603,7 @@ is_at_global_scope(const decl_base_sptr decl) /// @return true iff decl is at global scope. bool is_at_global_scope(const decl_base* decl) -{return is_at_global_scope(*decl);} +{return decl && is_at_global_scope(*decl);} /// Tests whether a given decl is at class scope. /// @@ -10623,7 +10623,7 @@ class_or_union* is_at_class_scope(const decl_base* decl) { if (!decl) - return 0; + return nullptr; return is_at_class_scope(*decl); } @@ -10637,6 +10637,9 @@ class_or_union* is_at_class_scope(const decl_base& decl) { scope_decl* scope = decl.get_scope(); + if (!scope) + return nullptr; + if (class_or_union* cl = is_class_type(scope)) return cl; if (class_or_union* cl = is_union_type(scope))