From patchwork Wed Apr 8 07:02:10 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 132789 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 8F2F04BA2E14 for ; Wed, 8 Apr 2026 07:02:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8F2F04BA2E14 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=dcZvP4A+; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Br91zqKX; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=YFBEWWaw; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=zpzrW84V X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 681144BA2E07 for ; Wed, 8 Apr 2026 07:02:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 681144BA2E07 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 681144BA2E07 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775631733; cv=none; b=ksS1MZbShOzJD5532PYoR2iKOGH1vNtI8nyrlZay/nYYZNj7os8L2N3gKQdvqDA1ZFzeSwUaIT64PLmo2gMbZTP5lmyAO0GLNZ8LST147wISRT4+zKHh4GHS4Lxhq8FqTzU70zVByazvvvYhuauprLA0vNP1L8RRQ6FKvGJZBzU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775631733; c=relaxed/simple; bh=8zEu5zJ1V4wobvFcva+TYgX2LvRdI9Ex6eahxvaDwGc=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=Gqiw4u6807SYhAcdPe/lpkRjGILt5xNIzwhlZ7bfst6/7a0q2gCcjWstgng2Mhflf42d3CF2lUBGgOIc0LLllnnJvjeBAxRrtqR+UQrJaeMZAuH7mJEo2rHKCNpYh+Ln1Ht21M/qBYBAprCgG89ZhCx4MzaAAVwbvUNEsA2md74= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 681144BA2E07 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id F1EF84E887 for ; Wed, 8 Apr 2026 07:02:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1775631732; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EVqPrZB0dqZLzQDp/cmbE2slQH9WWJ0xYqRpUlfa2BU=; b=dcZvP4A+7pakjFK6G7ZXC4cC7IDyiJKfGZlvqC0NN38CD2Ifec1qemDLS5i9nE3v4Yjfo+ gSxIsXr0sDryZhVozA8fnOw2QcDxD2AbaA+1x/comSPwQ2AzeZrAar+sLvwFUtLpORE7ud nMjYOwn8/P9p8hlb4lGfLWCZc3fs5rs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1775631732; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EVqPrZB0dqZLzQDp/cmbE2slQH9WWJ0xYqRpUlfa2BU=; b=Br91zqKXqRNYzP8rsrU9Mj+J6CvE+mEWus0MNyHROQTwHiGeZaemZXVQtIOEzwmI39NGkB AJfEljuFV/wXuFCQ== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=YFBEWWaw; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=zpzrW84V DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1775631731; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EVqPrZB0dqZLzQDp/cmbE2slQH9WWJ0xYqRpUlfa2BU=; b=YFBEWWawg64s1SaLnmLYqSkn4YerMfYA4Ccni9Yttb4GApgfMvtYiL6Z3W2s1hqsVKqmCv 3KE5BPEklI2ZOujPmBAF34/heF+Dr5sJa38lytN4rpwQcqv+NvupND+lMo36rVABpA3HhJ VRqz4QrAsaEs9ykw5jfWjGoSNf0P4NA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1775631731; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EVqPrZB0dqZLzQDp/cmbE2slQH9WWJ0xYqRpUlfa2BU=; b=zpzrW84Vz1Ev/c2Hip5NelFGxrAEZhPX8mGBuJ4InVwtCQsp2SGZ4jGYMlH9lu/TiGXap5 GhZvuP5I3EX9RzBQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D762F4A0B4 for ; Wed, 8 Apr 2026 07:02:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id qPEtM3P91Wl3GQAAD6G6ig (envelope-from ) for ; Wed, 08 Apr 2026 07:02:11 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH v2 1/2] [gdb] Break up complex assignment in cp_lookup_symbol_via_imports Date: Wed, 8 Apr 2026 09:02:10 +0200 Message-ID: <20260408070211.124957-2-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260408070211.124957-1-tdevries@suse.de> References: <20260408070211.124957-1-tdevries@suse.de> MIME-Version: 1.0 X-Rspamd-Action: no action X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.de:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo, imap1.dmz-prg2.suse.org:rdns, suse.de:dkim, suse.de:mid] X-Rspamd-Queue-Id: F1EF84E887 X-Spam-Score: -3.01 X-Spam-Level: X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~patchwork=sourceware.org@sourceware.org In cp_lookup_symbol_via_imports, we have a complex assignment: ... directive_match = (search_parents ? (startswith (scope, current->import_dest) && (len == 0 || scope[len] == ':' || scope[len] == '\0')) : streq (scope, current->import_dest)); ... Writing it like this makes it: - harder to comment on parts of the expression, and also - harder to understand and modify it. Also, len == 0 makes the startswith redundant, so that part of the expression can be hoisted. Doing so makes it clear that scope is not compared against in all cases. Fix this by breaking this up into three separate assignments: ... if (search_parents) { if (len == 0) directive_match = 1; else directive_match = (startswith (scope, current->import_dest) && (scope[len] == ':' || scope[len] == '\0')); } else directive_match = streq (scope, current->import_dest); ... --- gdb/cp-namespace.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/gdb/cp-namespace.c b/gdb/cp-namespace.c index c8cd5c245aa..f8b71be3ff1 100644 --- a/gdb/cp-namespace.c +++ b/gdb/cp-namespace.c @@ -394,7 +394,6 @@ cp_lookup_symbol_via_imports (const char *scope, { struct block_symbol sym = {}; int len; - int directive_match; /* All the symbols we found will be kept in this relational map between the mangled name and the block_symbol found. We do this so that GDB @@ -425,13 +424,21 @@ cp_lookup_symbol_via_imports (const char *scope, do not use this directive. */ if (!current->valid_line (boundary_sal.line)) continue; + len = strlen (current->import_dest); - directive_match = (search_parents - ? (startswith (scope, current->import_dest) - && (len == 0 - || scope[len] == ':' - || scope[len] == '\0')) - : streq (scope, current->import_dest)); + + bool directive_match; + if (search_parents) + { + if (len == 0) + directive_match = 1; + else + directive_match = (startswith (scope, current->import_dest) + && (scope[len] == ':' + || scope[len] == '\0')); + } + else + directive_match = streq (scope, current->import_dest); /* If the import destination is the current scope or one of its ancestors then it is applicable. */