From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id tq73OHV3vmoDKiQAWB0awg (envelope-from ) for ; Thu, 01 Oct 2026 11:08:37 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=selector1 header.b=giTI/+Vi; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id D5EB21E01F; Thu, 01 Oct 2026 11:08:37 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.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 autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::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 BB3051E01F for ; Thu, 01 Oct 2026 11:08:36 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CAE424BB3BBF for ; Thu, 1 Oct 2026 15:08:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CAE424BB3BBF Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=selector1 header.b=giTI/+Vi Received: from YQZPR01CU011.outbound.protection.outlook.com (mail-canadaeastazlp170100000.outbound.protection.outlook.com [IPv6:2a01:111:f403:c104::]) by sourceware.org (Postfix) with ESMTPS id 7B3794B99F5B for ; Thu, 1 Oct 2026 15:08:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7B3794B99F5B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7B3794B99F5B Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c104:: ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1790867287; cv=pass; b=XMpFfvKc6sX1/sqjJ6PFuazsAvxQe9e3TZIuCuVYbXuEr1nCLnXNeI0hUO7PtKLkYFusxwt4fHm2ZJUcnR/EcIF+gvuGZGaJQc8k+SGu0jQWoPXNpo15TEBVb0wsZXVL7tqMdAF6hWervvJm+51NzSTRuClwIQcRgkJEbEZ7BDo= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1790867287; c=relaxed/simple; bh=MDgM8qZf6I/amRePHxd/J6HBN7NnCFD6E0D+3WjPcqE=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=IjFFB9u2x0AJsJ3YMKEHaQFtBgCRHZA4RDzQHVFSxvohOtlmZoQWvfawOz+PUDtMBMJMYKr0xfv4SsnfjvA3Adyazmrv1CAUpH+5voIDt+OP0o+61HslTboMi6lAlle8o7RMnA3wDaZouYEAyCDA+dSacWoTqDrrzcWdSssv1I4= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=selector1 header.b=giTI/+Vi DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7B3794B99F5B ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=svUbx/C4pC5hyQvJxMKntuYa35o8s+iz9PQXhL/732i2gzPX7EGg8uAWrlpWXf7kljOjIEF4R6j0f/pv7+80spDXETJNzkmVQYp24aBKVYYwleJPG0rvFURTMAg9mfMXjCOx2XTblHRgCm5hQIotjHHHNFe/h83hzmNymV7Tk03MGhVokD9i4xIZ58WaYFRf6rx85enR0k1jHcD9Ixf+Df/LAUoPVpWEyi7XTv5NhAnay/ed37JsiWARlqET4pg7IJFmxUDzB0Q5/hRXjAxc5ErIFS+mxGCYN1y1ri4ubBJlmYxNXtHey6NqeJ/Ack/T+VLluI5eDe+OM9OFdbOUdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jplNzZLbY5qr7Pk6+LBaKIchuYhGzEADptz2ETOFMuA=; b=SBTAUlkhu2pJQVOwEELS3CGcTNC+bvvNxVbZMQj3QFtPsitcp5V3p5WGlbAV89zXUoQJsi9IxrLvLoDrxqrG9rhDu1msEuj5+ymGIlrFzwc4GEW3IeElk3JKrWF115/6dazsc1nGwiPIAHqX1aAlwhFZUOHNIAuW6j0HhVD18BUOCDqm6VGAOQTTS0XEZ/KIVpJgtJqP4Qi+BlB8pVo5XFk1P6liR3ANJsvBKsbfFWr0tpNv4H+EH/ohXTwcjt6+lIZPgH9H7Ba98GkEtUT3KSHUpB3FQJ3Bqemd4lO/hTPdxZ49YYk14ouGRpgxuERrsVby8S4WdTqJFVwUGGppFg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jplNzZLbY5qr7Pk6+LBaKIchuYhGzEADptz2ETOFMuA=; b=giTI/+Vi8Lmn8nXPE2taWbK4oiQqruiYantR6/EkAvaKzCYgYyGo8Epz4bZHF/5PLsgr5vQTKlpgZljWBmqvzA8SIRMDkM4Zfjtvm1fUJDVbb590jlwJT3lj4NgKdbk4xox42JcdeotHCFDIxdF6ZaB3xAUzw0fww9LU3kVNFx/5tPKaulFOySOLMlG2HFfb/9k15gttLqSpE8khRUR/8GIBjewKtbIv1MlxlwOo2gTmUBeCo7zG7AmtXe2F7nPYPLw0kqffVP9Ps3VnXwt/4XG+5ZBjFusop7F+PWFQo2o6psM/UPKvY0amoAV2jVD3fNdqIwhysWkiIVhcWr75iQ== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2c::6) by YT2PR01MB11109.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:146::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.472.18; Thu, 1 Oct 2026 15:07:53 +0000 Received: from YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM ([fe80::bbfa:179f:fdc8:b15d]) by YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM ([fe80::bbfa:179f:fdc8:b15d%7]) with mapi id 15.21.0451.026; Thu, 1 Oct 2026 15:07:52 +0000 Message-ID: <38b4d102-1114-41a6-b16d-00a6f77faa66@efficios.com> Date: Thu, 1 Oct 2026 11:07:51 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 06/11] gdb: use a switch on m_kind in add_matching_symbols To: Andrew Burgess , simon.marchi@polymtl.ca, gdb-patches@sourceware.org References: <20260929194119.155169-1-simon.marchi@efficios.com> <20261001020952.698419-7-simon.marchi@polymtl.ca> <87y0chxy68.fsf@redhat.com> Content-Language: fr From: Simon Marchi In-Reply-To: <87y0chxy68.fsf@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQBPR0101CA0199.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:67::19) To YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2c::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YQXPR01MB5418:EE_|YT2PR01MB11109:EE_ X-MS-Office365-Filtering-Correlation-Id: bec376fd-a5b8-4ffb-3817-08df1fcdc3eb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|23010399003|366016|1800799024|376014|18002099003|22082099003|4143699003|6133799003|10067099003|56012099006|5023799004; X-Microsoft-Antispam-Message-Info: K99UjZmDHi/CgBdJ1JbeOeyEIPzi70Zo8aNYVwFdo1P+TgF4rywulP1uvqBPb0m+mn66dqi5q5FrSsTUZp28fWwl4N426wQInKLCJGs/N+SuaKfJbHLaoGgAtguO+J3hnfiZoK0z/32Z/+ZNwGhkopcuFFJXVekLeTqxLHXXtcQwN5RRCb7MsxfobfuYUf7aXhzBz3Pz4d0KAlQD452Owq3PonrLEGp+nwRZJZ/X0bWRUXP3f/lBRKosojSdRbviTak/agLsLxLaH1f1V2ai7+qftFA3DoOX1Gkauuce1yhGMRrhrsGMlJ7auG7kU8LSMYRewXWn/p8s92w3yQKDxgmxxc9+pPxs4w8br+88eK7nyVDMVKJtZmvkb29Gwj2VLF2w6XUU2kYvFaA9bTNwNwnZAy+3JswxWbtuDvWbRny0P4mjG8GseyXxrSxgb5rjegE6ihST/qdlakFSVRVeunSiRnCKLtEZgrvf8P6wKh1RHNaU3on4D9BMnLgs/DoFCzH3Zp5Evdtda38VgXhjXXWXwbqqD4HsdoZj1aTOlAhM8g7WiziBOuBb68EAX1DPe7ToSnGnybzl/4X+SEp9ymxgOJdLUWoSLpdVW2V3yiB8scXil0kdR01OE7li77XLFgEJYcIV4Tf5dyMQ/FzqQnVxfTnrjQFSNUVhwa8THaU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(23010399003)(366016)(1800799024)(376014)(18002099003)(22082099003)(4143699003)(6133799003)(10067099003)(56012099006)(5023799004); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UFlxTWZZcXB5SXhzMGZ1Q1d6cG8wTjFvVnZJTkc2QnhhWHM5S1VUZ09sbXRB?= =?utf-8?B?SWxRREZmaWRVMGh1ZjJxM3IxYUdpMk4wODZTNlpJTWV3UGVDdkRGQ2RZMFZ0?= =?utf-8?B?M1pDdDVqQ0toMlM5bjREVmN5cFhyektkcU9IYlhyZTFIU1lXZFlud2E2NVFJ?= =?utf-8?B?K1ZQSmRNYnlSVGo3bW9QRVhheVE0dzNhVW5QNVZxNW9lSUpZM2FkckUvZkNm?= =?utf-8?B?WWZldzBuMUV2MU01UGR3Ti81VFlsVjI4RXNWbDMwS1NpMHlzUytPeVhYYnd0?= =?utf-8?B?Tk1RVjNxUnJvam5UcmdGM1FjRmVzdnhhM1hrUjZPZWYvS25qSHQvRm0zUzVT?= =?utf-8?B?VkgxTnBjdExTV0ZzOVlUdlV2eVBROUlGUXRSYmNKdE0rcytVNTkzY3BPdDFn?= =?utf-8?B?R3hIQ00rTlhQSUw3SEhySUMxMm9nUzZDMHl3L1ZEWG10Njl6MzlaUHhycDA0?= =?utf-8?B?RVA3R1ExZDlPdS9sazdjYWVudmNLMzEzN2Y3YVZWRXRIeW1KNXNQdzlFLzNW?= =?utf-8?B?cHNyL0ZUdkhyaXk2bmdzOUJkZncvOExDUGxmOUhtbUt6dWMzY2dFWThjMUVv?= =?utf-8?B?eG11aWxvNjA0dWpNVUp4LzA4anNwTk9XZDVEZUxKZXZCTi9YNjg3dTVwbmFx?= =?utf-8?B?bTZZdFpWbGpoNHdBZTFQV3pkcUdXay9uMGZTSC9GSE02L3U2Mjk0eG1OS0th?= =?utf-8?B?ZCtQd0d1UXBSRXFmSUxkczZFUkJqcnJWUnhBcHNNaXpRMWpycEgyQStuM1ll?= =?utf-8?B?eWV5Um5EcElWRW94aXZsTzkrZ2xLYW9HdUhSaVZad3dNNjlnMDlUeE9QV3NC?= =?utf-8?B?WTRiWGtVa3FpYXZCbmxySlhjUDlYOGFsdkZNNjRjY1B0OVJKSkZmZU5HS21u?= =?utf-8?B?dkJvSXl1azdFYkFvcngwMjZNQ0s5Q2o2c0xkZk5lQUxZVk0vK20zZGxXWGhW?= =?utf-8?B?R2NZYmJ4SFBEajRQUjlIRmd5cW9JZi83a2ZGU0NsZ204V2gySHdUTU1qUGZ2?= =?utf-8?B?R1BGWlc2NEovVXV6bnZySStNN2FMVFdmWlBIVTlIL0dQam5ZUXJsNVRRNXk3?= =?utf-8?B?bVM0cjBEbGE2d0w2L1NVVEg1ODU2NUxIVXBGbjBSM3JTditJdXlXVVFyc0hZ?= =?utf-8?B?bVM2cHJEOVBEQmtETjdqYm9aTjk5VXpsWkZueFI0amNyRXVQQmpxUlZ6a1NS?= =?utf-8?B?ZXZnQVBNY0RWS2FkNXpieXhsK1F3STRIWFQ2N3FGOXZRMHFrdkNXNVdqMTBm?= =?utf-8?B?WERVcXh2dC9HckRySnpaQkorQ1VRaHowcGRkQnk1RkZIZm95WENwUEprWmVY?= =?utf-8?B?dEF2NGZEeDVHTzNnWkJFMEJpaElEYUpXWFFtMlprbGNmcnBKbWdiQzlCbDht?= =?utf-8?B?UkJwN2s3N2NMWU4ySi9YNnVlNEtINzF3cEJlVnpQeFNHeWNrYnAyZC9WV3My?= =?utf-8?B?emg1YzBLam9YaXczaTl6bU9VaXZEaDlxWlorUnV3ZE1Uc2tGOTlEMlAxWEZj?= =?utf-8?B?S3p0dG9tSU9ZZWhoL3YzMWw2WjZMN3l0S2FmcHhqdVByc2cwUG1wZ0E5T2xr?= =?utf-8?B?VGFRZmlXaFdDRnpwSVMvalJaZS9hVFRHV1MxN1FPV2pNbmFPZVcvSEUvbzdT?= =?utf-8?B?WENaQmpGdEtZS05UclZFU2N1eTRrT1BmcGNodnk2bzc2YnprUGp4Vll1WG1s?= =?utf-8?B?Qi9KcGZqNW03dHBBSEJaSHhKM3JYTi8rVU41VnUrbnk4RkwxbmJiWno4YXVK?= =?utf-8?B?MStQQ0oweTY5aG4yM1psdE55bnZxdElEaFVWNjVCeGxPUmIxN1lsZWErcXM3?= =?utf-8?B?Z3JodDlwdW93OTd0UzdVam9uMmx0OWE1R3V4TGRuNGZvRFZuOW1hYXJwd0ZD?= =?utf-8?B?YXFZWkR5UGQyYUdueEdSL3ZHQVVIODhxRmlHZllBOG9HZ0xBVDAwNG5LR2JG?= =?utf-8?B?Y2tWVkVoQnlZVDhaQWc0cnRIS3hJM1NBTENGcTJUZkNQeTg1eWJLZ3REYzJw?= =?utf-8?B?NFYzTk5kZVlVK2tIWjh1ZnV4WVZXbHgwUEEyZEl4ZnFJZFArM2tZQVFjQ2do?= =?utf-8?B?R0VRMEZEOGREOFFSMlQ2ekZPRlhHTVMvRWdLV3VwYnBvK1I2WHc3bXVQS3RJ?= =?utf-8?B?LzZYamhpbDh2aEdTQ2ZLdmZEaDZxdUFtTVlKcFc5c0VhdWxzTGUvSjhja1pS?= =?utf-8?B?cjZuYVVRSFZML2Y4cGdZYXJWWWx6SEhjU1I1dHR3QmR6Y3BIemtnbVVzdHhu?= =?utf-8?B?OThnR0FqcmxKVEoxb2hvSzVOS29xdHFYNzRYQ2kxT0JwV2NqNU1jMSt2d3cx?= =?utf-8?B?TUVPOFdUd213YWQ5RUo2NGlzV3NSd3pvY29QSVUrVHNwVTU4aUo0dz09?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: bec376fd-a5b8-4ffb-3817-08df1fcdc3eb X-MS-Exchange-CrossTenant-AuthSource: YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Oct 2026 15:07:52.7735 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SSdVHu4ugU4vX+xUcmVxWjQIzzbU1us6cgFvIx4e87ArqS6hEo6wr9pX4QBzjvJmMoPX2879WW2drTx3qdlpSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT2PR01MB11109 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 On 10/1/26 11:01 AM, Andrew Burgess wrote: > simon.marchi@polymtl.ca writes: > >> From: Simon Marchi >> >> add_matching_symbols applies some filters that only make sense for some >> kinds of searches: the type regexp for variables and functions, the >> LOC_UNRESOLVED / enum constant filter for variables, and the line number >> filter for modules. Some of these check m_kind, others check the >> symbol's domain. Since the earlier sym->matches check only lets through >> symbols whose domain corresponds to m_kind, the two are equivalent. >> >> Group these filters in a single switch on m_kind. Add a comment for >> the module filter, which skips module declarations, because it wasn't >> obvious to me at first sight. >> >> Change-Id: Idf1b366b4cfd16187848b64075a0067190c111fc >> --- >> gdb/symtab.c | 33 +++++++++++++++++++-------------- >> 1 file changed, 19 insertions(+), 14 deletions(-) >> >> diff --git a/gdb/symtab.c b/gdb/symtab.c >> index 35dd2981a53a..6cc85a7eacc5 100644 >> --- a/gdb/symtab.c >> +++ b/gdb/symtab.c >> @@ -4858,25 +4858,30 @@ global_symbol_searcher::add_matching_symbols >> nullptr, 0) != 0) >> continue; >> >> - if (((sym->domain () == VAR_DOMAIN >> - || sym->domain () == FUNCTION_DOMAIN) >> - && type_regex.has_value () >> - && !regex_matches_sym_type_name (*type_regex, sym))) >> - continue; >> - >> - if (m_kind == symbol_search_kind::VARIABLE) >> + switch (m_kind) >> { >> + case symbol_search_kind::VARIABLE: >> + /* LOC_CONST can be used for more than just enums, e.g., >> + C++ static const members. We only want to skip enums >> + here. */ >> if (sym->loc_class () == LOC_UNRESOLVED >> - /* LOC_CONST can be used for more than >> - just enums, e.g., c++ static const >> - members. We only want to skip enums >> - here. */ >> || (sym->loc_class () == LOC_CONST >> - && (sym->type ()->code () == TYPE_CODE_ENUM))) >> + && sym->type ()->code () == TYPE_CODE_ENUM)) >> continue; >> + [[fallthrough]]; >> + >> + case symbol_search_kind::FUNCTION: >> + if (type_regex.has_value () >> + && !regex_matches_sym_type_name (*type_regex, sym)) >> + continue; >> + break; >> + >> + case symbol_search_kind::MODULE: >> + /* Skip module declarations, keep only definitions. */ >> + if (sym->line () == 0) >> + continue; >> + break; > > I agree with Stephan's suggestion that you should add: > > case symbol_search_kind::TYPE: > break; > > I would not focus on GDB's use or non-use of -Wswitch. Instead, my > argument is that by specifically mentioning the extra case we make it > clear that nothing needs to be done rather than leaving it for a future > reader of the code to try and figure out if TYPE is missing on purpose, > or by accident. > > I don't find the reasoning that there are lots of other missing case > labels compelling, I think the argument for or against should stand on > its own technical merits -- unless you're suggesting that the GDB style > is to trim the case list as much as possible? When seeing an empty case, my intuition would be to remove it, but I really don't have strong feelings about that. Since you both mentioned it, I'll add it. > > That said, I only care enough to send one email on the topic :) If > you're still not convinced then go ahead: > > Approved-By: Andrew Burgess Thanks, Simon