From patchwork Fri Jan 10 21:29:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 104547 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9205A3857C58 for ; Fri, 10 Jan 2025 21:48:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9205A3857C58 Authentication-Results: sourceware.org; dkim=fail reason="signature verification failed" (768-bit key, unprotected) header.d=tromey.com header.i=@tromey.com header.a=rsa-sha256 header.s=default header.b=dsCzyhIj X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta34.uswest2.a.cloudfilter.net (omta34.uswest2.a.cloudfilter.net [35.89.44.33]) by sourceware.org (Postfix) with ESMTPS id ED1433858433 for ; Fri, 10 Jan 2025 21:29:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ED1433858433 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org ED1433858433 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.33 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544562; cv=none; b=B13vmUIIE7X+zI8QAiogw48sUSLz9PHmJThiehgXh9R7tQaSm+ZIb1vZO+kvVlxUj3ADgyKiYVh+jyLwxv9sBx+aBQ6nNn4Pyn9AGGc0xYfS2NuYV43Sm4kuBloFoKb3caAdtwLnnRzNcodIehK8q7xDpUC5E/nL/IQ70ExfTpg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544562; c=relaxed/simple; bh=BpmjIBmZZio4eWtipNb9UNGBPWl3NAFb+eF7a39Dck4=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=AByOJTMXKnwGOACm4cpRMVkpa6O5A+E2GPNJBrrGxeXujkrNuRU4c3XCgcfMHP8gJ8LnXO5u7YoHehI3sFmHxKsMbWiKaans4N0Qait+exLeFXeAKP2VV3HsTVBxII3EbE/yce9MsW/wtf7h3auiChtMz5quLs7cYUDkXfR0wBA= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ED1433858433 Received: from eig-obgw-5010a.ext.cloudfilter.net ([10.0.29.199]) by cmsmtp with ESMTPS id WB2StWc3E09RnWMZEtKhDF; Fri, 10 Jan 2025 21:29:21 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id WMZDtmp07VCldWMZEt4NVf; Fri, 10 Jan 2025 21:29:20 +0000 X-Authority-Analysis: v=2.4 cv=ZvPrKc7G c=1 sm=1 tr=0 ts=67819130 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=VdSt8ZQiCzkA:10 a=ItBw4LHWJt0A:10 a=7d_E57ReAAAA:8 a=9OoM-kX4OdzaEwLqyBkA:9 a=QEXdDO2ut3YA:10 a=jhqOcbufqs7Y1TYCrUUU:22 a=6Ogn3jAGHLSNbaov7Orx:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=ln9gJGG3ErpGWtxgHm9ABsffPHRbmPoWX0jT7mii17w=; b=dsCzyhIjV/ttIdaeU0lrsNRfnp GUk0tfSWog46RfbOebH7p+KdXmEx4gtdEc/raK6zdlzcrl+jDMJ/VVAo3UWDmo671bAJO+Br0LTzd 8aXFQARI9cDS1r4dHfHZL43qj; Received: from 97-118-36-154.hlrn.qwest.net ([97.118.36.154]:40752 helo=prentzel.local) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1tWMZD-0042hb-1m; Fri, 10 Jan 2025 14:29:19 -0700 From: Tom Tromey Date: Fri, 10 Jan 2025 14:29:16 -0700 Subject: [PATCH v2 1/6] Add constructor and destructor to linespec_state MIME-Version: 1.0 Message-Id: <20250110-linespec-state-cxx-v2-1-a17144fa5c36@tromey.com> References: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> In-Reply-To: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> To: gdb-patches@sourceware.org Cc: Tom Tromey , Simon Marchi X-Mailer: b4 0.14.2 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 97.118.36.154 X-Source-L: No X-Exim-ID: 1tWMZD-0042hb-1m X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-118-36-154.hlrn.qwest.net (prentzel.local) [97.118.36.154]:40752 X-Source-Auth: tom+tromey.com X-Email-Count: 3 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfCmszOAxI6J5PqxRhNiw4jP60QG5YeZRnBvsZpXTqgmwd5tPswpAuhJPnheB+xGr7uFvZK1t56BDRWEykcsBKHn5s2BME/vw1Qpz5Xjju/PHFRhiLfqZ dd5XH+RaNaV+EMYVFZlSrZRmVZuAePJQ01pm4mHGBWp1T2F1e77gJ1J/yZ5nS55NvgbkqQ6nG6IHE2z60XH3eIxVDK/KRPjn8Ks= X-Spam-Status: No, score=-3019.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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 server2.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 This changes linespec_state to have real constructors and a destructor. Approved-By: Simon Marchi --- gdb/linespec.c | 135 ++++++++++++++++++++++++++------------------------------- 1 file changed, 61 insertions(+), 74 deletions(-) diff --git a/gdb/linespec.c b/gdb/linespec.c index d70008778e29abd13b89c889f48aeffb13f1f31b..86dbbacbba8859898b4fbe2e896f66f1256c8aeb 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -132,12 +132,67 @@ struct linespec_canonical_name struct symtab *symtab; }; +/* A hash function for address_entry. */ + +static hashval_t +hash_address_entry (const void *p) +{ + const address_entry *aep = (const address_entry *) p; + hashval_t hash; + + hash = iterative_hash_object (aep->pspace, 0); + return iterative_hash_object (aep->addr, hash); +} + +/* An equality function for address_entry. */ + +static int +eq_address_entry (const void *a, const void *b) +{ + const address_entry *aea = (const address_entry *) a; + const address_entry *aeb = (const address_entry *) b; + + return aea->pspace == aeb->pspace && aea->addr == aeb->addr; +} + /* An instance of this is used to keep all state while linespec operates. This instance is passed around as a 'this' pointer to the various implementation methods. */ struct linespec_state { + linespec_state (int flags, const language_defn *language, + program_space *pspace, + program_space *search_pspace, + symtab *default_symtab, + int default_line, + linespec_result *canonical) + : language (language), + program_space (pspace), + search_pspace (search_pspace), + default_symtab (default_symtab), + default_line (default_line), + funfirstline ((flags & DECODE_LINE_FUNFIRSTLINE) ? 1 : 0), + list_mode ((flags & DECODE_LINE_LIST_MODE) ? 1 : 0), + canonical (canonical), + addr_set (htab_create_alloc (10, hash_address_entry, eq_address_entry, + xfree, xcalloc, xfree)) + { + } + + linespec_state (const language_defn *language, program_space *program_space) + : linespec_state (0, language, program_space, nullptr, nullptr, 0, nullptr) + { + } + + ~linespec_state () + { + htab_delete (addr_set); + xfree (canonical_names); + } + + DISABLE_COPY_AND_ASSIGN (linespec_state); + /* The language in use during linespec processing. */ const struct language_defn *language; @@ -165,14 +220,14 @@ struct linespec_state struct linespec_result *canonical; /* Canonical strings that mirror the std::vector result. */ - struct linespec_canonical_name *canonical_names; + linespec_canonical_name *canonical_names = nullptr; /* This is a set of address_entry objects which is used to prevent duplicate symbols from being entered into the result. */ htab_t addr_set; /* Are we building a linespec? */ - int is_linespec; + int is_linespec = 0; }; /* This is a helper object that is used when collecting symbols into a @@ -284,8 +339,6 @@ struct linespec_parser int default_line, struct linespec_result *canonical); - ~linespec_parser (); - DISABLE_COPY_AND_ASSIGN (linespec_parser); /* Lexer internal data */ @@ -305,7 +358,7 @@ struct linespec_parser int is_quote_enclosed = 0; /* The state of the parse. */ - struct linespec_state state {}; + linespec_state state; /* The result of the parse. */ linespec result; @@ -1086,29 +1139,6 @@ add_sal_to_sals (struct linespec_state *self, } } -/* A hash function for address_entry. */ - -static hashval_t -hash_address_entry (const void *p) -{ - const struct address_entry *aep = (const struct address_entry *) p; - hashval_t hash; - - hash = iterative_hash_object (aep->pspace, 0); - return iterative_hash_object (aep->addr, hash); -} - -/* An equality function for address_entry. */ - -static int -eq_address_entry (const void *a, const void *b) -{ - const struct address_entry *aea = (const struct address_entry *) a; - const struct address_entry *aeb = (const struct address_entry *) b; - - return aea->pspace == aeb->pspace && aea->addr == aeb->addr; -} - /* Check whether the address, represented by PSPACE and ADDR, is already in the set. If so, return 0. Otherwise, add it and return 1. */ @@ -2667,30 +2697,6 @@ parse_linespec (linespec_parser *parser, const char *arg, } -/* A constructor for linespec_state. */ - -static void -linespec_state_constructor (struct linespec_state *self, - int flags, const struct language_defn *language, - struct program_space *search_pspace, - struct symtab *default_symtab, - int default_line, - struct linespec_result *canonical) -{ - memset (self, 0, sizeof (*self)); - self->language = language; - self->funfirstline = (flags & DECODE_LINE_FUNFIRSTLINE) ? 1 : 0; - self->list_mode = (flags & DECODE_LINE_LIST_MODE) ? 1 : 0; - self->search_pspace = search_pspace; - self->default_symtab = default_symtab; - self->default_line = default_line; - self->canonical = canonical; - self->program_space = current_program_space; - self->addr_set = htab_create_alloc (10, hash_address_entry, eq_address_entry, - xfree, xcalloc, xfree); - self->is_linespec = 0; -} - /* Initialize a new linespec parser. */ linespec_parser::linespec_parser (int flags, @@ -2699,30 +2705,13 @@ linespec_parser::linespec_parser (int flags, struct symtab *default_symtab, int default_line, struct linespec_result *canonical) + : state (flags, language, current_program_space, search_pspace, + default_symtab, default_line, canonical) { lexer.current.type = LSTOKEN_CONSUMED; result.explicit_loc.func_name_match_type = symbol_name_match_type::WILD; result.explicit_loc.line_offset.sign = LINE_OFFSET_UNKNOWN; - linespec_state_constructor (&state, flags, language, - search_pspace, - default_symtab, default_line, canonical); -} - -/* A destructor for linespec_state. */ - -static void -linespec_state_destructor (struct linespec_state *self) -{ - htab_delete (self->addr_set); - xfree (self->canonical_names); -} - -/* Delete a linespec parser. */ - -linespec_parser::~linespec_parser () -{ - linespec_state_destructor (&state); } /* See description in linespec.h. */ @@ -3753,10 +3742,8 @@ symbol_searcher::find_all_symbols (const std::string &name, struct program_space *search_pspace) { symbol_searcher_collect_info info; - struct linespec_state state; + linespec_state state (language, current_program_space); - memset (&state, 0, sizeof (state)); - state.language = language; info.state = &state; info.result.symbols = &m_symbols; From patchwork Fri Jan 10 21:29:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 104536 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C867A3858039 for ; Fri, 10 Jan 2025 21:35:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C867A3858039 Authentication-Results: sourceware.org; dkim=fail reason="signature verification failed" (768-bit key, unprotected) header.d=tromey.com header.i=@tromey.com header.a=rsa-sha256 header.s=default header.b=oIrhwMu1 X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta038.useast.a.cloudfilter.net (omta038.useast.a.cloudfilter.net [44.202.169.37]) by sourceware.org (Postfix) with ESMTPS id 32F6D3857C6C for ; Fri, 10 Jan 2025 21:29:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 32F6D3857C6C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 32F6D3857C6C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.37 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544562; cv=none; b=u2eHcGtvO8zMVKKBFSFpmCVcEasLipot4HDD2QohfzAlzaiCOzU5dYagevy3WbKVcpleuiHL4Y7HF1ptEJEJzjCUIGRbH+Nl11rAl1/E0g3CU0pHbUY3+UaNAqfdd5Ytce8+CRGklCEG0KVyTM2T0TyDc8a7b1Tqm0mMfY4XwAA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544562; c=relaxed/simple; bh=ubASIFHJBbHgLiEcBxWQZlTcgI1rh7bCG8kP8hCBe2Y=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=hR2kiOtDBjhKhWHPnljDLL6q5gHjQ61bApkds9WYvUPr5OpFn3YDpj1YEo6tmj169oCrpFxWwquCAJ1LvfTN2jOdTIkuhq3xEIwfsrQdJE7JF6RhBPhpCmCsc6OG57OfDWI6aMcjedg0wNunIPkx5Og/mk8OAeq+TAUBGvZq29E= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 32F6D3857C6C Received: from eig-obgw-6008a.ext.cloudfilter.net ([10.0.30.227]) by cmsmtp with ESMTPS id VtEKttoKWjMK7WMZEtpaxJ; Fri, 10 Jan 2025 21:29:21 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id WMZEtEP2w7R7JWMZEtypRn; Fri, 10 Jan 2025 21:29:20 +0000 X-Authority-Analysis: v=2.4 cv=Yaq75RRf c=1 sm=1 tr=0 ts=67819130 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=VdSt8ZQiCzkA:10 a=ItBw4LHWJt0A:10 a=J8VhU67wQ4pyfjdV97sA:9 a=QEXdDO2ut3YA:10 a=6Ogn3jAGHLSNbaov7Orx:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=UAfWUdfBF1V3vCymfk9ME3/uM+z9KzsMhJgVtkzanj0=; b=oIrhwMu1UeUrf8zVsuNc5E9AvU vEOPqcmcUQnMsZuWH/mAJahiTARkM8oXqJh+vT4IiFbW7AyUkBgoIbb9FvdP44GozQL6gI/bXwEUg SaW9q3aj0nLPX84DHqtlLfT4C; Received: from 97-118-36-154.hlrn.qwest.net ([97.118.36.154]:40752 helo=prentzel.local) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1tWMZD-0042hb-2T; Fri, 10 Jan 2025 14:29:19 -0700 From: Tom Tromey Date: Fri, 10 Jan 2025 14:29:17 -0700 Subject: [PATCH v2 2/6] Use gdb::unordered_set in linespec_state MIME-Version: 1.0 Message-Id: <20250110-linespec-state-cxx-v2-2-a17144fa5c36@tromey.com> References: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> In-Reply-To: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> To: gdb-patches@sourceware.org Cc: Tom Tromey X-Mailer: b4 0.14.2 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 97.118.36.154 X-Source-L: No X-Exim-ID: 1tWMZD-0042hb-2T X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-118-36-154.hlrn.qwest.net (prentzel.local) [97.118.36.154]:40752 X-Source-Auth: tom+tromey.com X-Email-Count: 5 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfBsR5bOxtAzI6aePNKLFjNeOmFWn749F+/YCxp7kikhDGk+h9EAbGTYjTgM9paG0LeTTmBSh3DrYK5TBb9JU9fynYMhbs2hILs2uPvcOUgmx67XIRYSC o40SLMLWdkR9kzjwamb1n5GAGzeOilENdMkuUW9Lqh2Cpv7gmQEpbjnx6JaD77nNyeT7X8P5HPwu+sXPYSupbI9bYxmRNeo9bA8= X-Spam-Status: No, score=-3019.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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 server2.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 This patch changes linespec_state to use gdb::unordered_set. This simplifies the code a little and removes some manual management. It also replaces address_entry with a std::pair, which simplifies the code even more; and since this is a private type, IMO it doesn't reduce readability at all. --- gdb/linespec.c | 89 +++++++++++++++------------------------------------------- 1 file changed, 22 insertions(+), 67 deletions(-) diff --git a/gdb/linespec.c b/gdb/linespec.c index 86dbbacbba8859898b4fbe2e896f66f1256c8aeb..03a76ae6afd227c0b35dbd3307107f76f4feb29a 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -76,16 +76,6 @@ enum class linespec_complete_what KEYWORD, }; -/* An address entry is used to ensure that any given location is only - added to the result a single time. It holds an address and the - program space from which the address came. */ - -struct address_entry -{ - struct program_space *pspace; - CORE_ADDR addr; -}; - /* A linespec. Elements of this structure are filled in by a parser (either parse_linespec or some other function). The structure is then converted into SALs by convert_linespec_to_sals. */ @@ -132,29 +122,6 @@ struct linespec_canonical_name struct symtab *symtab; }; -/* A hash function for address_entry. */ - -static hashval_t -hash_address_entry (const void *p) -{ - const address_entry *aep = (const address_entry *) p; - hashval_t hash; - - hash = iterative_hash_object (aep->pspace, 0); - return iterative_hash_object (aep->addr, hash); -} - -/* An equality function for address_entry. */ - -static int -eq_address_entry (const void *a, const void *b) -{ - const address_entry *aea = (const address_entry *) a; - const address_entry *aeb = (const address_entry *) b; - - return aea->pspace == aeb->pspace && aea->addr == aeb->addr; -} - /* An instance of this is used to keep all state while linespec operates. This instance is passed around as a 'this' pointer to the various implementation methods. */ @@ -174,9 +141,7 @@ struct linespec_state default_line (default_line), funfirstline ((flags & DECODE_LINE_FUNFIRSTLINE) ? 1 : 0), list_mode ((flags & DECODE_LINE_LIST_MODE) ? 1 : 0), - canonical (canonical), - addr_set (htab_create_alloc (10, hash_address_entry, eq_address_entry, - xfree, xcalloc, xfree)) + canonical (canonical) { } @@ -187,12 +152,18 @@ struct linespec_state ~linespec_state () { - htab_delete (addr_set); xfree (canonical_names); } DISABLE_COPY_AND_ASSIGN (linespec_state); + /* Add ADDR to the address set. Return true if this is a new + entry. */ + bool maybe_add_address (program_space *pspace, CORE_ADDR addr) + { + return addr_set.emplace (pspace, addr).second; + } + /* The language in use during linespec processing. */ const struct language_defn *language; @@ -222,12 +193,19 @@ struct linespec_state /* Canonical strings that mirror the std::vector result. */ linespec_canonical_name *canonical_names = nullptr; - /* This is a set of address_entry objects which is used to prevent - duplicate symbols from being entered into the result. */ - htab_t addr_set; - /* Are we building a linespec? */ int is_linespec = 0; + +private: + + /* An address entry is used to ensure that any given location is + only added to the result a single time. It holds an address and + the program space from which the address came. */ + using address_entry = std::pair<::program_space *, CORE_ADDR>; + + /* This is a set of address_entry objects which is used to prevent + duplicate symbols from being entered into the result. */ + gdb::unordered_set addr_set; }; /* This is a helper object that is used when collecting symbols into a @@ -1139,29 +1117,6 @@ add_sal_to_sals (struct linespec_state *self, } } -/* Check whether the address, represented by PSPACE and ADDR, is - already in the set. If so, return 0. Otherwise, add it and return - 1. */ - -static int -maybe_add_address (htab_t set, struct program_space *pspace, CORE_ADDR addr) -{ - struct address_entry e, *p; - void **slot; - - e.pspace = pspace; - e.addr = addr; - slot = htab_find_slot (set, &e, INSERT); - if (*slot) - return 0; - - p = XNEW (struct address_entry); - memcpy (p, &e, sizeof (struct address_entry)); - *slot = p; - - return 1; -} - /* A helper that walks over all matching symtabs in all objfiles and calls CALLBACK for each symbol matching NAME. If SEARCH_PSPACE is not NULL, then the search is restricted to just that program @@ -2243,7 +2198,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec *ls) = sym.symbol->symtab ()->compunit ()->objfile ()->pspace (); if (symbol_to_sal (&sal, state->funfirstline, sym.symbol) - && maybe_add_address (state->addr_set, pspace, sal.pc)) + && state->maybe_add_address (pspace, sal.pc)) add_sal_to_sals (state, &sals, &sal, sym.symbol->natural_name (), 0); } @@ -2308,7 +2263,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec *ls) { symtab_and_line sal; if (symbol_to_sal (&sal, state->funfirstline, sym.symbol) - && maybe_add_address (state->addr_set, pspace, sal.pc)) + && state->maybe_add_address (pspace, sal.pc)) add_sal_to_sals (state, &sals, &sal, sym.symbol->natural_name (), 0); } @@ -4157,7 +4112,7 @@ minsym_found (struct linespec_state *self, struct objfile *objfile, sal.section = msymbol->obj_section (objfile); - if (maybe_add_address (self->addr_set, objfile->pspace (), sal.pc)) + if (self->maybe_add_address (objfile->pspace (), sal.pc)) add_sal_to_sals (self, result, &sal, msymbol->natural_name (), 0); } From patchwork Fri Jan 10 21:29:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 104545 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AEEC43858294 for ; Fri, 10 Jan 2025 21:45:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AEEC43858294 Authentication-Results: sourceware.org; dkim=fail reason="signature verification failed" (768-bit key, unprotected) header.d=tromey.com header.i=@tromey.com header.a=rsa-sha256 header.s=default header.b=AW7dwqrT X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta38.uswest2.a.cloudfilter.net (omta38.uswest2.a.cloudfilter.net [35.89.44.37]) by sourceware.org (Postfix) with ESMTPS id 2C8313857C68 for ; Fri, 10 Jan 2025 21:29:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2C8313857C68 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2C8313857C68 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.37 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544562; cv=none; b=nQXZfCCGXtwIAle9kBtpXsttyLChMtPLpamrKyGa/gwIJ8AMTzf9N2H3GNYgjkweAnT8WzQZ8+AoRxsrZHK69/+qOH/AywWf43MBy1jkDJGdToUnUAa0khfnPjlG+T3OsBtsPGhiQhz0y/fDKZsGwuTysRE4ibQWdAUUrSnFgcM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544562; c=relaxed/simple; bh=b/sBi874NVBj8Mt/4xvbNu+PqiLCVSTw6sdVPzaAIGk=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=LamEJyddCMKwNIChxZgWGqrOygGUtIsjO+NDE3ZJnb1G05QUN9GZslmfOIn5RxoloQWFvhp+HaxV1OeC4eUYJwIAcEr7IVdlik1X008/7VvZ9IpyCnMebzpIrgegIlsbNwb9kr/r0tbh45x0GhOjCo/guDn3mOAqtrh7s5rlKIM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2C8313857C68 Received: from eig-obgw-6010a.ext.cloudfilter.net ([10.0.30.248]) by cmsmtp with ESMTPS id WMYltg4ToqewVWMZFtQO1x; Fri, 10 Jan 2025 21:29:21 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id WMZEtCn2somw8WMZEttbXR; Fri, 10 Jan 2025 21:29:20 +0000 X-Authority-Analysis: v=2.4 cv=fJY/34ae c=1 sm=1 tr=0 ts=67819130 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=VdSt8ZQiCzkA:10 a=ItBw4LHWJt0A:10 a=7d_E57ReAAAA:8 a=_MR1hBvuMjvGZjrAFSIA:9 a=QEXdDO2ut3YA:10 a=jhqOcbufqs7Y1TYCrUUU:22 a=6Ogn3jAGHLSNbaov7Orx:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=wgBX0Q6vT1hyzT8i1ASGY+X1tsGlqiywzUy3QQABS9k=; b=AW7dwqrTp4RFycCbXl/iBlR0cb TpGEnkgOrKJoxwfy11/2u/ogoRFvRhzyL8eH4JsuvV49Pk/pJaOzCeOMkRa9c9onipT+ktFLh7Kc0 OCSvdMkZaRdkxdVJmVjeYCToK; Received: from 97-118-36-154.hlrn.qwest.net ([97.118.36.154]:40752 helo=prentzel.local) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1tWMZE-0042hb-0n; Fri, 10 Jan 2025 14:29:20 -0700 From: Tom Tromey Date: Fri, 10 Jan 2025 14:29:18 -0700 Subject: [PATCH v2 3/6] Use std::vector in linespec_state MIME-Version: 1.0 Message-Id: <20250110-linespec-state-cxx-v2-3-a17144fa5c36@tromey.com> References: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> In-Reply-To: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> To: gdb-patches@sourceware.org Cc: Tom Tromey , Simon Marchi X-Mailer: b4 0.14.2 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 97.118.36.154 X-Source-L: No X-Exim-ID: 1tWMZE-0042hb-0n X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-118-36-154.hlrn.qwest.net (prentzel.local) [97.118.36.154]:40752 X-Source-Auth: tom+tromey.com X-Email-Count: 6 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfAVQVEAnPOb1mClHn4J0bdASFEWc653JoDxjVwDCuyp+kOFlZLGm3v2RrIdlv8zc3JItiEiKoQbfY0P3C0gnYei1t36MilEwWyEvg1GdCaDzv6xADC62 tDfJdya9MW/gA5cqNcbA3ZgT7ok/X3uqo5iZTFiDwht01BgDw49MqPweMYVWM0luR20ZYXk758R+qX3Zra5YACda3nGx5cM737M= X-Spam-Status: No, score=-3019.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 server2.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 This changes linespec_state to use a std::vector, and changes linespec_canonical_name to use std::string. This removes some manual memory management, including some odd cleanup code in in decode_line_full. Approved-By: Simon Marchi --- gdb/linespec.c | 45 ++++++++++++++------------------------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/gdb/linespec.c b/gdb/linespec.c index 03a76ae6afd227c0b35dbd3307107f76f4feb29a..09ce0d9df4a5f0f56137be99850988a670c5d68f 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -116,7 +116,7 @@ struct linespec struct linespec_canonical_name { /* Remaining text part of the linespec string. */ - char *suffix; + std::string suffix; /* If NULL then SUFFIX is the whole linespec string. */ struct symtab *symtab; @@ -150,11 +150,6 @@ struct linespec_state { } - ~linespec_state () - { - xfree (canonical_names); - } - DISABLE_COPY_AND_ASSIGN (linespec_state); /* Add ADDR to the address set. Return true if this is a new @@ -191,7 +186,7 @@ struct linespec_state struct linespec_result *canonical; /* Canonical strings that mirror the std::vector result. */ - linespec_canonical_name *canonical_names = nullptr; + std::vector canonical_names; /* Are we building a linespec? */ int is_linespec = 0; @@ -1083,12 +1078,9 @@ add_sal_to_sals (struct linespec_state *self, if (self->canonical) { - struct linespec_canonical_name *canonical; + linespec_canonical_name &canonical + = self->canonical_names.emplace_back (); - self->canonical_names = XRESIZEVEC (struct linespec_canonical_name, - self->canonical_names, - sals->size ()); - canonical = &self->canonical_names[sals->size () - 1]; if (!literal_canonical && sal->symtab) { symtab_to_fullname (sal->symtab); @@ -1098,21 +1090,21 @@ add_sal_to_sals (struct linespec_state *self, the time being. */ if (symname != NULL && sal->line != 0 && self->language->la_language == language_ada) - canonical->suffix = xstrprintf ("%s:%d", symname, - sal->line).release (); + canonical.suffix = string_printf ("%s:%d", symname, + sal->line); else if (symname != NULL) - canonical->suffix = xstrdup (symname); + canonical.suffix = symname; else - canonical->suffix = xstrprintf ("%d", sal->line).release (); - canonical->symtab = sal->symtab; + canonical.suffix = string_printf ("%d", sal->line); + canonical.symtab = sal->symtab; } else { if (symname != NULL) - canonical->suffix = xstrdup (symname); + canonical.suffix = symname; else - canonical->suffix = xstrdup (""); - canonical->symtab = NULL; + canonical.suffix = ""; + canonical.symtab = NULL; } } } @@ -1307,7 +1299,7 @@ canonical_to_fullform (const struct linespec_canonical_name *canonical) return canonical->suffix; else return string_printf ("%s:%s", symtab_to_fullname (canonical->symtab), - canonical->suffix); + canonical->suffix.c_str ()); } /* Given FILTERS, a list of canonical names, filter the sals in RESULT @@ -1418,7 +1410,6 @@ decode_line_2 (struct linespec_state *self, std::string displayform; canonical = &self->canonical_names[i]; - gdb_assert (canonical->suffix != NULL); std::string fullform = canonical_to_fullform (canonical); @@ -1430,7 +1421,7 @@ decode_line_2 (struct linespec_state *self, fn_for_display = symtab_to_filename_for_display (canonical->symtab); displayform = string_printf ("%s:%s", fn_for_display, - canonical->suffix); + canonical->suffix.c_str ()); } items.emplace_back (std::move (fullform), std::move (displayform), @@ -3130,14 +3121,6 @@ decode_line_full (struct location_spec *locspec, int flags, gdb_assert (result.size () == 1 || canonical->pre_expanded); canonical->pre_expanded = 1; - /* Arrange for allocated canonical names to be freed. */ - std::vector> hold_names; - for (int i = 0; i < result.size (); ++i) - { - gdb_assert (state->canonical_names[i].suffix != NULL); - hold_names.emplace_back (state->canonical_names[i].suffix); - } - if (select_mode == NULL) { if (top_level_interpreter ()->interp_ui_out ()->is_mi_like_p ()) From patchwork Fri Jan 10 21:29:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 104541 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 32E833857727 for ; Fri, 10 Jan 2025 21:42:55 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta40.uswest2.a.cloudfilter.net (omta40.uswest2.a.cloudfilter.net [35.89.44.39]) by sourceware.org (Postfix) with ESMTPS id 2157E3858290 for ; Fri, 10 Jan 2025 21:29:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2157E3858290 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2157E3858290 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.39 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544563; cv=none; b=XPNfAVea6rvg9MRqDXyHs07utdjDjsrxL/hnAwG7jx0DzT1DA5CZh52yNGcsjV9YQdhwFynaJtoTlborQ0BWA2cWbaaoCSvcxKbRE6xn3yqTdHglnCiYROpYzaCuE+MPSbWrx59xpvwxec/t/TlHUVozeZFnxxG6FosEtmM8ew4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544563; c=relaxed/simple; bh=KrsIWt0fbxGBKhPSHzJ+C01xHhdt/2fFeYSQq+15vNY=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=hUQ7DeP3gJJnM7TsBK0s4T3TDm9OomUyee/XQab96sV/LbAx7ZL1IaXKlFNMq1GefBe/s+Qe2qzF1IBrkDQHAACL+xbjBcEPMPLlBTSHOi5F2GeJoBZ41iZzSdtakAhx+49GXXakDNkIsuPks2J8CkZqRQRdqW4luHmJW6aFEJo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2157E3858290 Authentication-Results: sourceware.org; dkim=policy reason="signing key too small" (768-bit key, unprotected) header.d=tromey.com header.i=@tromey.com header.a=rsa-sha256 header.s=default header.b=YEgVV0sQ Received: from eig-obgw-5003a.ext.cloudfilter.net ([10.0.29.159]) by cmsmtp with ESMTPS id WF95tS8jtfC5ZWMZGtzNnH; Fri, 10 Jan 2025 21:29:22 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id WMZFtRpoyGJ47WMZFtoGQS; Fri, 10 Jan 2025 21:29:21 +0000 X-Authority-Analysis: v=2.4 cv=b+R54cGx c=1 sm=1 tr=0 ts=67819131 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=VdSt8ZQiCzkA:10 a=ItBw4LHWJt0A:10 a=7d_E57ReAAAA:8 a=lT97ZhyhDVa61FYwSFUA:9 a=QEXdDO2ut3YA:10 a=jhqOcbufqs7Y1TYCrUUU:22 a=6Ogn3jAGHLSNbaov7Orx:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Cc7gK7+EJcRGVq9RxOtsYt61w1MYBWMqxCMkFtG80mU=; b=YEgVV0sQsY0PtruJ0ImYbsB/Cz /U7tUCiV/SGfxG7qTXssSHH+NOALZjaOZkoQuV6Omke/zIPBcD5QXxqZhuuIlNQpW74E3RsngnGet 90yB5wprsL1tBaDxomjlC1LBY; Received: from 97-118-36-154.hlrn.qwest.net ([97.118.36.154]:40752 helo=prentzel.local) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1tWMZE-0042hb-2c; Fri, 10 Jan 2025 14:29:20 -0700 From: Tom Tromey Date: Fri, 10 Jan 2025 14:29:19 -0700 Subject: [PATCH v2 4/6] Minor cleanup in linespec.c:add_minsym MIME-Version: 1.0 Message-Id: <20250110-linespec-state-cxx-v2-4-a17144fa5c36@tromey.com> References: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> In-Reply-To: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> To: gdb-patches@sourceware.org Cc: Tom Tromey , Simon Marchi X-Mailer: b4 0.14.2 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 97.118.36.154 X-Source-L: No X-Exim-ID: 1tWMZE-0042hb-2c X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-118-36-154.hlrn.qwest.net (prentzel.local) [97.118.36.154]:40752 X-Source-Auth: tom+tromey.com X-Email-Count: 8 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfBOFuujbIFtP3KDkBeGRxr6khSgXMe894OFWncubhE4CMA/u9H5A5VI2moLc4NbWSchQOmD+5Jr3dUC4PkmaKexNsljMPtUStF6zOC5alUk+xDTxcSqI 2FvNFNS7ODoRZQPb+QeCu4YcR9/IeGxKSl0Eepoy10I38q8O0FddsA+Dc5ahcmvCogakX/xfwOs+n6KxI4XLGrZasdpzkuFEx5w= X-Spam-Status: No, score=-3019.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 server2.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 This cleans up a 'return' in linespec.c:add_minsym. Approved-By: Simon Marchi --- gdb/linespec.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gdb/linespec.c b/gdb/linespec.c index 09ce0d9df4a5f0f56137be99850988a670c5d68f..db979431002cc2048f9fcab52da0066793ef17c5 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -4122,11 +4122,8 @@ add_minsym (struct minimal_symbol *minsym, struct objfile *objfile, } /* Exclude data symbols when looking for breakpoint locations. */ - if (!list_mode && !msymbol_is_function (objfile, minsym)) - return; - - msyms->emplace_back (minsym, objfile); - return; + if (list_mode || msymbol_is_function (objfile, minsym)) + msyms->emplace_back (minsym, objfile); } /* Search for minimal symbols called NAME. If SEARCH_PSPACE From patchwork Fri Jan 10 21:29:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 104546 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9D1713857C58 for ; Fri, 10 Jan 2025 21:45:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9D1713857C58 Authentication-Results: sourceware.org; dkim=fail reason="signature verification failed" (768-bit key, unprotected) header.d=tromey.com header.i=@tromey.com header.a=rsa-sha256 header.s=default header.b=WNEgmtqL X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta036.useast.a.cloudfilter.net (omta036.useast.a.cloudfilter.net [44.202.169.35]) by sourceware.org (Postfix) with ESMTPS id A8F553857C5F for ; Fri, 10 Jan 2025 21:29:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A8F553857C5F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A8F553857C5F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544562; cv=none; b=MIyPEZsT4KogVPG5deJ7Vki0pyeTFMwZKy6NVTeOzxo8YaG4FunXLgz3cHzL2rI2zBtHAHbOY2efNBOsehP6Lpn+yGTxxWHP0exdUjxGHXFi1+C+JhHG1FJUsJoFbz98pMhonmBCn5iJAr1NHScVJUmjhGyZYHVAFgVth/7Fwp8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544562; c=relaxed/simple; bh=O65bTXUlj0u12GDFMEFP29Hw7LVDte2mdpq6uBIcxQ0=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=ctlxhlb5IqYBFatdcDk1+9kpLcGp7mJkX3coq8KY3aFl1AiXCcG+8TgXYjPSnR0hYKcDieYeshGPrwmcz5NCvKMdTg0naCOna6WQVJuhQSq20g+2NYnhXAi8Cf2jPq5uMTrzfEg80l32gEj0pd0OLsHLpIqjUxX/xK7MxY5LbBE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A8F553857C5F Received: from eig-obgw-6007a.ext.cloudfilter.net ([10.0.30.247]) by cmsmtp with ESMTPS id WKR4tbWhDxoE1WMZGtEiHS; Fri, 10 Jan 2025 21:29:22 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id WMZFtmv5NbUGLWMZFtfOon; Fri, 10 Jan 2025 21:29:21 +0000 X-Authority-Analysis: v=2.4 cv=Lv2UyGdc c=1 sm=1 tr=0 ts=67819131 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=VdSt8ZQiCzkA:10 a=ItBw4LHWJt0A:10 a=7d_E57ReAAAA:8 a=EuqcBZHCz_egLTRmhbYA:9 a=QEXdDO2ut3YA:10 a=jhqOcbufqs7Y1TYCrUUU:22 a=6Ogn3jAGHLSNbaov7Orx:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=330Ss4GVZuRYfWmigHM0DK6s/rRgT3nhUMMUhMuHk5M=; b=WNEgmtqLcgrmofZRVpW47+FlVa +VP+Iu3HlsdhRsQAwBaBROpTIk3Zkq89DJh7K3QB5Y+i5CHKeyOZCWY5NCM7XWlD3iwjjs99Ty0P8 9i2bBGQ6PrkoxVyIk8BiEe7wc; Received: from 97-118-36-154.hlrn.qwest.net ([97.118.36.154]:40752 helo=prentzel.local) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1tWMZF-0042hb-0R; Fri, 10 Jan 2025 14:29:21 -0700 From: Tom Tromey Date: Fri, 10 Jan 2025 14:29:20 -0700 Subject: [PATCH v2 5/6] Hoist lambda in linespec.c:add_matching_symbols_to_info MIME-Version: 1.0 Message-Id: <20250110-linespec-state-cxx-v2-5-a17144fa5c36@tromey.com> References: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> In-Reply-To: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> To: gdb-patches@sourceware.org Cc: Tom Tromey , Simon Marchi X-Mailer: b4 0.14.2 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 97.118.36.154 X-Source-L: No X-Exim-ID: 1tWMZF-0042hb-0R X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-118-36-154.hlrn.qwest.net (prentzel.local) [97.118.36.154]:40752 X-Source-Auth: tom+tromey.com X-Email-Count: 10 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfOGGTY1eiL22U3DJscHyOv+Cdeh7y3QB75t2CAZNffbzjqUgBwfsUPXPczjQ0qG2cywtNcWmn3d3cNL4h20HFsM09cCXTEtzPDByQ6Ude+ZpaTvFGZgs HjnWzI59qIj+FxpRzZck6AlJgdutF3AqFkVydtOlJoU8tw9gCWqEQtqFh3EAxDZGySVw8scdhxZhQsxeq1gIwBrRDMM3jlggHkM= X-Spam-Status: No, score=-3019.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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 server2.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 I noticed that two parts of linespec.c:add_matching_symbols_to_info use the same lambda, and hoisting this seems slightly more efficient. Approved-By: Simon Marchi --- gdb/linespec.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gdb/linespec.c b/gdb/linespec.c index db979431002cc2048f9fcab52da0066793ef17c5..eb27cb7e2d6706122ac7ae8ab7bab4ad8a44b8aa 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -4250,6 +4250,11 @@ add_matching_symbols_to_info (const char *name, { lookup_name_info lookup_name (name, name_match_type); + auto add_symbol = [&] (block_symbol *bsym) + { + return info->add_symbol (bsym); + }; + for (const auto &elt : *info->file_symtabs) { if (elt == nullptr) @@ -4257,8 +4262,7 @@ add_matching_symbols_to_info (const char *name, iterate_over_all_matching_symtabs (info->state, lookup_name, domain_search_flags, pspace, true, - [&] (block_symbol *bsym) - { return info->add_symbol (bsym); }); + add_symbol); search_minsyms_for_name (info, lookup_name, pspace, NULL); } else if (pspace == NULL || pspace == elt->compunit ()->objfile ()->pspace ()) @@ -4270,9 +4274,7 @@ add_matching_symbols_to_info (const char *name, program_space *elt_pspace = elt->compunit ()->objfile ()->pspace (); gdb_assert (!elt_pspace->executing_startup); set_current_program_space (elt_pspace); - iterate_over_file_blocks (elt, lookup_name, SEARCH_VFT, - [&] (block_symbol *bsym) - { return info->add_symbol (bsym); }); + iterate_over_file_blocks (elt, lookup_name, SEARCH_VFT, add_symbol); /* If no new symbols were found in this iteration and this symtab is in assembler, we might actually be looking for a label for From patchwork Fri Jan 10 21:29:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 104542 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DC3C03857724 for ; Fri, 10 Jan 2025 21:44:11 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta36.uswest2.a.cloudfilter.net (omta36.uswest2.a.cloudfilter.net [35.89.44.35]) by sourceware.org (Postfix) with ESMTPS id 221033858023 for ; Fri, 10 Jan 2025 21:29:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 221033858023 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 221033858023 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544563; cv=none; b=A5TUHWVsWD316Hu2y+wv7eKIffRRofFOEz64RUe5YOjy2nZVPKNPpNbgG2r1946FVtE6L07QX8HSwaVBFdedUlqHBHyj/AxFu5v/HpCZy7c91dbGW4uHdHLKG4smjB8i+4v9igBtTUqX9/Mv7TeAFuUwe2V9FWRZPsWCdm0SryY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736544563; c=relaxed/simple; bh=MSJWxgFElM7u4qojWqnDrnRfVqjUkkmVeLxaDCDOQvE=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=d9cK+UEsXzQNBqiEsp5tI9M6DJoK58B1h+HoQO4Klom8Cq9bZ8hZ3FwYuRJ5d+Fmp5joDN8DgdXvy9tFckPvA3+Wad135LK7IhpgznKxXVxlRm7jxlpbXLoTtCP4EyVY8StXLi26OsViJ8Z2f28xsVn3WO31bZhA3cN3GyiGBJ8= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 221033858023 Authentication-Results: sourceware.org; dkim=policy reason="signing key too small" (768-bit key, unprotected) header.d=tromey.com header.i=@tromey.com header.a=rsa-sha256 header.s=default header.b=q/yd8+sN Received: from eig-obgw-6007a.ext.cloudfilter.net ([10.0.30.247]) by cmsmtp with ESMTPS id WKR3th5IDYpSZWMZGtSbUu; Fri, 10 Jan 2025 21:29:22 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id WMZFtmv5cbUGLWMZGtfOow; Fri, 10 Jan 2025 21:29:22 +0000 X-Authority-Analysis: v=2.4 cv=Lv2UyGdc c=1 sm=1 tr=0 ts=67819132 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=VdSt8ZQiCzkA:10 a=ItBw4LHWJt0A:10 a=7d_E57ReAAAA:8 a=yqVGEpWH_T9SaNXiONsA:9 a=QEXdDO2ut3YA:10 a=2l-XiW3A4bR-waBpo9cO:22 a=jhqOcbufqs7Y1TYCrUUU:22 a=6Ogn3jAGHLSNbaov7Orx:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=zp5OzXchNSucQ8+3CBzyvdGih8G57I65EJv9+mtMWdU=; b=q/yd8+sNU+uCRcy3lasz0A3Pif qpMhVc/bTMF241ZjoOGaLZ+3lzfgusE1kZCpM0dudGOCFlo1yDuXwD274/aZlw4c71b2IiqpKZnhK E//SEhiC+GA5XqnQ5fOI2A1VU; Received: from 97-118-36-154.hlrn.qwest.net ([97.118.36.154]:40752 helo=prentzel.local) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1tWMZF-0042hb-1H; Fri, 10 Jan 2025 14:29:21 -0700 From: Tom Tromey Date: Fri, 10 Jan 2025 14:29:21 -0700 Subject: [PATCH v2 6/6] Use bool in linespec MIME-Version: 1.0 Message-Id: <20250110-linespec-state-cxx-v2-6-a17144fa5c36@tromey.com> References: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> In-Reply-To: <20250110-linespec-state-cxx-v2-0-a17144fa5c36@tromey.com> To: gdb-patches@sourceware.org Cc: Tom Tromey , Simon Marchi X-Mailer: b4 0.14.2 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 97.118.36.154 X-Source-L: No X-Exim-ID: 1tWMZF-0042hb-1H X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-118-36-154.hlrn.qwest.net (prentzel.local) [97.118.36.154]:40752 X-Source-Auth: tom+tromey.com X-Email-Count: 12 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfHBSLaQrtsTaHCYLYldRF6lSeRFwzwi2ZzCYI9LnYUVe7U64FdkXETgOxDlWVsbit8NuK69rvfo0MVFSXXUoiKA8+kYhOM5su45qUFEasGxquIKAaVqL uoZtga3DZ1wrjg2DUa28CsTEa0hoCpgMJtnH/rZeByQwQQBE3DrhDB3r2qnRPgWMMIPAce0yVQg+StzlU55ZbfXaJeLuMquC200= X-Spam-Status: No, score=-3015.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_SOMETLD_ARE_BAD_TLD, PDS_OTHER_BAD_TLD, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 server2.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 This changes various spots in linespec to use a bool rather than an int. Approved-By: Simon Marchi --- gdb/linespec.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/gdb/linespec.c b/gdb/linespec.c index eb27cb7e2d6706122ac7ae8ab7bab4ad8a44b8aa..b58b4ce029a02d912e8fb8d3d76c179efb6da599 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -139,8 +139,8 @@ struct linespec_state search_pspace (search_pspace), default_symtab (default_symtab), default_line (default_line), - funfirstline ((flags & DECODE_LINE_FUNFIRSTLINE) ? 1 : 0), - list_mode ((flags & DECODE_LINE_LIST_MODE) ? 1 : 0), + funfirstline ((flags & DECODE_LINE_FUNFIRSTLINE) != 0), + list_mode ((flags & DECODE_LINE_LIST_MODE) != 0), canonical (canonical) { } @@ -177,10 +177,10 @@ struct linespec_state /* The 'funfirstline' value that was passed in to decode_line_1 or decode_line_full. */ - int funfirstline; + bool funfirstline; /* Nonzero if we are running in 'list' mode; see decode_line_list. */ - int list_mode; + bool list_mode; /* The 'canonical' value passed to decode_line_full, or NULL. */ struct linespec_result *canonical; @@ -189,7 +189,7 @@ struct linespec_state std::vector canonical_names; /* Are we building a linespec? */ - int is_linespec = 0; + bool is_linespec = false; private: @@ -328,7 +328,7 @@ struct linespec_parser } lexer {}; /* Is the entire linespec quote-enclosed? */ - int is_quote_enclosed = 0; + bool is_quote_enclosed = false; /* The state of the parse. */ linespec_state state; @@ -396,8 +396,8 @@ static struct line_offset linespec_parse_variable (struct linespec_state *self, const char *variable); -static int symbol_to_sal (struct symtab_and_line *result, - int funfirstline, struct symbol *sym); +static bool symbol_to_sal (struct symtab_and_line *result, + bool funfirstline, struct symbol *sym); static void add_matching_symbols_to_info (const char *name, symbol_name_match_type name_match_type, @@ -1986,7 +1986,7 @@ static std::vector create_sals_line_offset (struct linespec_state *self, linespec *ls) { - int use_default = 0; + bool use_default = false; /* This is where we need to make sure we have good defaults. We must guarantee that this section of code is never executed @@ -2005,7 +2005,7 @@ create_sals_line_offset (struct linespec_state *self, ls->file_symtabs = collect_symtabs_from_filename (self->default_symtab->filename, self->search_pspace); - use_default = 1; + use_default = true; } symtab_and_line val; @@ -2461,7 +2461,7 @@ parse_linespec (linespec_parser *parser, const char *arg, /* A special case to start. It has become quite popular for IDEs to work around bugs in the previous parser by quoting the entire linespec, so we attempt to deal with this nicely. */ - parser->is_quote_enclosed = 0; + parser->is_quote_enclosed = false; if (parser->completion_tracker == NULL && !is_ada_operator (arg) && *arg != '\0' @@ -2473,7 +2473,7 @@ parse_linespec (linespec_parser *parser, const char *arg, /* Here's the special case. Skip ARG past the initial quote. */ ++arg; - parser->is_quote_enclosed = 1; + parser->is_quote_enclosed = true; } } @@ -2843,7 +2843,7 @@ linespec_complete (completion_tracker &tracker, const char *text, parser.lexer.stream = text; parser.completion_tracker = &tracker; - parser.state.is_linespec = 1; + parser.state.is_linespec = true; /* Parse as much as possible. parser.completion_word will hold furthest completion point we managed to parse to. */ @@ -3034,7 +3034,7 @@ location_spec_to_sals (linespec_parser *parser, case LINESPEC_LOCATION_SPEC: { const linespec_location_spec *ls = as_linespec_location_spec (locspec); - parser->state.is_linespec = 1; + parser->state.is_linespec = true; result = parse_linespec (parser, ls->spec_string.get (), ls->match_type); } @@ -4104,7 +4104,7 @@ minsym_found (struct linespec_state *self, struct objfile *objfile, static void add_minsym (struct minimal_symbol *minsym, struct objfile *objfile, - struct symtab *symtab, int list_mode, + struct symtab *symtab, bool list_mode, std::vector *msyms) { if (symtab != NULL) @@ -4292,14 +4292,14 @@ add_matching_symbols_to_info (const char *name, /* Now come some functions that are called from multiple places within decode_line_1. */ -static int +static bool symbol_to_sal (struct symtab_and_line *result, - int funfirstline, struct symbol *sym) + bool funfirstline, struct symbol *sym) { if (sym->aclass () == LOC_BLOCK) { *result = find_function_start_sal (sym, funfirstline); - return 1; + return true; } else { @@ -4312,7 +4312,7 @@ symbol_to_sal (struct symtab_and_line *result, result->pc = sym->value_address (); result->pspace = result->symtab->compunit ()->objfile ()->pspace (); result->explicit_pc = 1; - return 1; + return true; } else if (funfirstline) { @@ -4327,11 +4327,11 @@ symbol_to_sal (struct symtab_and_line *result, result->line = sym->line (); result->pc = sym->value_address (); result->pspace = result->symtab->compunit ()->objfile ()->pspace (); - return 1; + return true; } } - return 0; + return false; } linespec_result::~linespec_result ()