From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id fQiYJIqNcmmnUBAAWB0awg (envelope-from ) for ; Thu, 22 Jan 2026 15:50:18 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256 header.s=google header.b=iyT2f0mM; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 85C2E1E089; Thu, 22 Jan 2026 15:50:18 -0500 (EST) 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 592391E089 for ; Thu, 22 Jan 2026 15:50:17 -0500 (EST) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 979AD4BC8960 for ; Thu, 22 Jan 2026 20:50:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 979AD4BC8960 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256 header.s=google header.b=iyT2f0mM Received: from mail-oa1-x2a.google.com (mail-oa1-x2a.google.com [IPv6:2001:4860:4864:20::2a]) by sourceware.org (Postfix) with ESMTPS id 888264BA23EA for ; Thu, 22 Jan 2026 20:49:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 888264BA23EA Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 888264BA23EA Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:4860:4864:20::2a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1769114954; cv=none; b=W8YtEVjLE2BKfLS/bjitmYJuTLXljEm/LQJGbhEMACmT3BkZKNBHo08/DF+FUXTEr+hAelugPOR8kZivk9bxsZKCm191PQVit/h/CfRXvRnYI8dKHGhkbe9ecOTV00Jm1HboB7WkCQkz5pjy9K1LJIZZW8L3+b+94SOA0I4j+Cg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1769114954; c=relaxed/simple; bh=mK4cP8LahZC/jLvkG0M0mM2XelIgtZjWHjJEbGdKqtI=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=hP80+eGaLIsWvB1mhKItSDZgh6mLW3hsBPKU1I7TOeMeLpLXZ/6KL1l5YvtsJdbff1Aclw4JYW8FcjLapaSZk/LxaHL5h3C9w/aaH+LIImw5yRF+Ph3ppx6u8cYNbpyEG5jgaqpCP6C+G8Oj6PD5nn1ZjlGzh5beqdGNIenas6w= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 888264BA23EA Received: by mail-oa1-x2a.google.com with SMTP id 586e51a60fabf-4042f55de3aso893854fac.1 for ; Thu, 22 Jan 2026 12:49:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1769114954; x=1769719754; darn=sourceware.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=QBFCNIEF6jvMCyV9ftdnXwt4cSLuS0VZ7ATAqOu+r8c=; b=iyT2f0mMuCbUvNf0mxiWpAEx381Zs64o/3PDVJTWMp9jCoV29Ta7jWWtsMUMG6VNpV VwcuSjiuHVRplAkkUV/FUDJgLe2NofPXzxQ8G82ALzcdlZonqr4QrzxodFES81CJNfFd 3L4LGj/Zp0IrvKJZY2rix14/6td7QLk2nR3vGmtBwXDypwIDe9rbI61FLISuyKGlrQzS bJ6Drsf+4cAFbkD8PKbV3B27zix3UEX0fkfw0jxF1QM20SBIMNjqyrL33e2TBd+2U8m2 4A3NQCsOx0pvKmfVmTvI88mx/BTiUqEN3GnOvdEghQNF0xYkyXXnik8couOqmNRzha4x DsEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769114954; x=1769719754; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=QBFCNIEF6jvMCyV9ftdnXwt4cSLuS0VZ7ATAqOu+r8c=; b=LxR6Bjk5TAfFf5eQqL1+G17UliL75D+XStJ3JsA1FwmwmAFN/7oWIn0whYihHCbxJo v0uZXvXZFE05sDDbhKNKSlYXOGEbEMMhToT/d71/7MNhVC/ocRhT07v3eNoqmDIHxWKM ogb6CK/+6JwGimnF92WY8MOqpqcPcU5BaEQuzQ2IEvO2P2zMzO2PgMK/EpLtvJV6NPuU CTxuXzRPCOXP/jiNxjyWxvEGsCsxFkHZN5MuaP4dwibf84A/9XBvyi4+c5KKMC8E+gAz TUhdYvtbfbCgCrtQyYeU/re0j5NWAQDJXmGT3GZs6r1e1PzSa9l4JXvh+Evnn3W2uWpR yeUw== X-Gm-Message-State: AOJu0Yy+LNlhFx+e6qSIUemL5RJFVfv2EWA3KhJgEIIVmZbxE/ad+haJ jtv6RWbs16ZVpXI2I0VBqTQrGPbopeI2OIHHLEfSXj5dtzgUjLghED2CazDtLga6ww== X-Gm-Gg: AZuq6aK7j/D1F3WntNyGT4ootsWiyd5Yt9PZMjQzp4+g0ufeCsfehT6pboSqxEswcMh gmZe++E7Q+0a8xB2P/XnbHlTZa2Joe89AdTtbS5MV2ZEv8HzDJmfoNi3En80tT0SVXwVo5AGGcS JWqZHDluT70d0Uqp2LULIlRgiQtFm7Syxu3hA7EU4TMaRX+6XMBkPL4Xj0fUYJdrIE4ZjXOOxlF 8fweDTX+NRU+Q9Ibe+2EHwPkhltpeQpbuNvbD5T8IWZ9nMdgJVgUO991hQ+zglDVuOZlHf6asK/ rgmRhZUOfxUi9rlf5jYqeaGGLDs0JUljhyzlz86gWVlKHMJGLCpo/oW3jOp5Wu554MQ8dqWUW6x y0jEunT0XwOHC1VRG/WzXHEDv4+C756Njm7jCdFHDPNBsgk3a1zyhD/V2PGbGoSzTCaMxlDWiCH cbLY3hpfSTIM/Qel24+CmmFH9yBmKHgGTX4dcoU4jQhw== X-Received: by 2002:a05:6871:289f:b0:3e8:92f2:caa2 with SMTP id 586e51a60fabf-408ac131ff3mr500879fac.5.1769114953830; Thu, 22 Jan 2026 12:49:13 -0800 (PST) Received: from [192.168.0.26] (97-122-114-32.hlrn.qwest.net. [97.122.114.32]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-408afba74bfsm176755fac.13.2026.01.22.12.49.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jan 2026 12:49:13 -0800 (PST) From: Tom Tromey Date: Thu, 22 Jan 2026 13:49:11 -0700 Subject: [PATCH 1/3] Use string_view in cli-decode.c:find_cmd MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260122-command-no-alloca-v1-1-402aa429bbbf@adacore.com> References: <20260122-command-no-alloca-v1-0-402aa429bbbf@adacore.com> In-Reply-To: <20260122-command-no-alloca-v1-0-402aa429bbbf@adacore.com> To: gdb-patches@sourceware.org Cc: Tom Tromey X-Mailer: b4 0.14.3 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 This changes cli-decode.c:find_cmd to use std::string_view. I've made this a separate patch to make the next patch more obvious. --- gdb/cli/cli-decode.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c index 04935575b67..c9bd610a3ac 100644 --- a/gdb/cli/cli-decode.c +++ b/gdb/cli/cli-decode.c @@ -34,12 +34,6 @@ static cmd_list_element::aliases_list_type delete_cmd cmd_list_element **prehookee, cmd_list_element **posthook, cmd_list_element **posthookee); -static struct cmd_list_element *find_cmd (const char *command, - int len, - struct cmd_list_element *clist, - int ignore_help_classes, - int *nfound); - static void help_cmd_list (struct cmd_list_element *list, command_classes theclass, bool recurse, @@ -2174,7 +2168,7 @@ help_cmd_list (struct cmd_list_element *list, command_classes theclass, found in nfound. */ static struct cmd_list_element * -find_cmd (const char *command, int len, struct cmd_list_element *clist, +find_cmd (std::string_view command, struct cmd_list_element *clist, int ignore_help_classes, int *nfound) { struct cmd_list_element *found, *c; @@ -2182,12 +2176,12 @@ find_cmd (const char *command, int len, struct cmd_list_element *clist, found = NULL; *nfound = 0; for (c = clist; c; c = c->next) - if (!strncmp (command, c->name, len) + if (startswith (c->name, command) && (!ignore_help_classes || !c->is_command_class_help ())) { found = c; (*nfound)++; - if (c->name[len] == '\0') + if (c->name[command.size ()] == '\0') { *nfound = 1; break; @@ -2290,7 +2284,8 @@ lookup_cmd_1 (const char **text, struct cmd_list_element *clist, /* Look it up. */ found = 0; nfound = 0; - found = find_cmd (command, len, clist, ignore_help_classes, &nfound); + found = find_cmd (std::string_view (command, len), + clist, ignore_help_classes, &nfound); /* If nothing matches, we have a simple failure. */ if (nfound == 0) @@ -2676,7 +2671,7 @@ lookup_cmd_composition_1 (const char *text, /* Look it up. */ int nfound = 0; - *cmd = find_cmd (command.c_str (), len, cur_list, 1, &nfound); + *cmd = find_cmd (command, cur_list, 1, &nfound); /* We only handle the case where a single command was found. */ if (nfound > 1) -- 2.52.0