From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id xMuEMY9j32nC6RgAWB0awg (envelope-from ) for ; Wed, 15 Apr 2026 06:08:15 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=bl8cWVzs; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=xMlOAIq5; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=bl8cWVzs; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=xMlOAIq5; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id AF0491E0B1; Wed, 15 Apr 2026 06:08:15 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id E6EB11E0B1 for ; Wed, 15 Apr 2026 06:08:13 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id F0F274BA2E06 for ; Wed, 15 Apr 2026 10:08:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F0F274BA2E06 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=bl8cWVzs; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=xMlOAIq5; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=bl8cWVzs; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=xMlOAIq5 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id E893D4BA5436 for ; Wed, 15 Apr 2026 10:07:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E893D4BA5436 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 E893D4BA5436 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776247667; cv=none; b=Baxqc5EmzgiAaISyVNsV/7axTrqhe7l3xvnFYhymeYsGzmtTQv7CWO9feWsj8Q+fDGWQRhJvOf2tGoq4lUtTwZSOHb+Ggnz8JRcoN96Prba39R47Ht1ROqAxd4mxaAWWwM05DkwpaDKudBvtqH5Xgy/4MGkfAqf6F5mfd7e7VJU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776247667; c=relaxed/simple; bh=SBhYt5815ZGPEP0Jof0EUV1xfZdO59SCFLjGaXJahZk=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=NXphiDn5oKQQoIqe9DMpg2ns5NpEgEPDePKqxCxeSzfJlByeGKQW1SJAHjv2Qp2/vGhazMsUKa78Lf22S2A+pZQkicREWYNs6br+ln4YlCA85G15yY9EvvdFSPbyF1tOrgQtEWfpuRBKsEP8QwjEvGClA9uiDerfDYYigIZthtw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E893D4BA5436 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-out2.suse.de (Postfix) with ESMTPS id 8250B5BCDE for ; Wed, 15 Apr 2026 10:07:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1776247659; 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=OMvMmR/AKttZQwgF/LLg8L8azdSLkLe3IigyrwrhsDA=; b=bl8cWVzsWt8MPDUXd7+WHIM68sXdsAIjB6T5dU3WNwZZTiFwxt5HtV4fwdajxmnDk6nSzs dyUexRgbuc5YolVBnqkvAXCPq20lhEtKjzjmadp65C2VjPX/D0gBFHBlsvkdZ/JXHNSuMq he5gaekkHcP7XzRO6oIdUMAF/QyDMbE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1776247659; 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=OMvMmR/AKttZQwgF/LLg8L8azdSLkLe3IigyrwrhsDA=; b=xMlOAIq5s0AOFUCt9PB17N73P5FFjzfTQupYdZFF0o1bVq60XpsIXwjZbpEc7AH+S8wWKs lZTLCG8lHe0HxUAg== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=bl8cWVzs; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=xMlOAIq5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1776247659; 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=OMvMmR/AKttZQwgF/LLg8L8azdSLkLe3IigyrwrhsDA=; b=bl8cWVzsWt8MPDUXd7+WHIM68sXdsAIjB6T5dU3WNwZZTiFwxt5HtV4fwdajxmnDk6nSzs dyUexRgbuc5YolVBnqkvAXCPq20lhEtKjzjmadp65C2VjPX/D0gBFHBlsvkdZ/JXHNSuMq he5gaekkHcP7XzRO6oIdUMAF/QyDMbE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1776247659; 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=OMvMmR/AKttZQwgF/LLg8L8azdSLkLe3IigyrwrhsDA=; b=xMlOAIq5s0AOFUCt9PB17N73P5FFjzfTQupYdZFF0o1bVq60XpsIXwjZbpEc7AH+S8wWKs lZTLCG8lHe0HxUAg== 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 68C1E4B95A for ; Wed, 15 Apr 2026 10:07:39 +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 MEBeGGtj32lfHQAAD6G6ig (envelope-from ) for ; Wed, 15 Apr 2026 10:07:39 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH v4 1/2] [gdb] Break up complex assignment in cp_lookup_symbol_via_imports Date: Wed, 15 Apr 2026 12:07:37 +0200 Message-ID: <20260415100738.1297583-2-tdevries@suse.de> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260415100738.1297583-1-tdevries@suse.de> References: <20260415100738.1297583-1-tdevries@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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)[-0.998]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; MIME_TRACE(0.00)[0:+]; FUZZY_RATELIMITED(0.00)[rspamd.com]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; 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)[]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received]; RCVD_VIA_SMTP_AUTH(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; 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: 8250B5BCDE 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~public-inbox=simark.ca@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 = true; else directive_match = (startswith (scope, current->import_dest) && (scope[len] == ':' || scope[len] == '\0')); } else directive_match = streq (scope, current->import_dest); ... Approved-By: Tom Tromey --- 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..1903287770b 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 = true; + 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. */ -- 2.51.0