From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id sWp6BughvWrS1B4AWB0awg (envelope-from ) for ; Wed, 30 Sep 2026 10:51:20 -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=ufVB9UyE; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 106D01E051; Wed, 30 Sep 2026 10:51:20 -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 5766E1E01F for ; Wed, 30 Sep 2026 10:51:19 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AEB404BB5894 for ; Wed, 30 Sep 2026 14:51:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AEB404BB5894 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=ufVB9UyE Received: from YQZPR01CU011.outbound.protection.outlook.com (mail-canadaeastazon11020102.outbound.protection.outlook.com [52.101.191.102]) by sourceware.org (Postfix) with ESMTPS id 8AC834BB24EE for ; Wed, 30 Sep 2026 14:50:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8AC834BB24EE 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 8AC834BB24EE Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=52.101.191.102 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1790779849; cv=pass; b=Lb5AOhwR+UjWzlUXUPfnQuAdUQDptW2R8DZbBtexyppB/H4HEbcmatyhugKIRkSUJ8bpLrvmHnBszTMtfW5M2Dpv3YvcSo6QyX5TAChBptgu9cvKIwPojHWjiaEWBzElc1REcjdfoytxWbeyYEgwfkzyDai7UikZKfst4ygofWc= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1790779849; c=relaxed/simple; bh=tpOQcMWPmoEHPygqP8wERSXil+lLbkdl3xPp1RNkPk8=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=iGCZz8ouL4X5OUnbXOiBjlCx/0ZEVJcITfEk4WH/qK2ETNVSzrnfSY9AqUcWisQdBdio0DHCY3dUYvQSpJ79MWGs8nKmQMaEWACgnfQs8iocM1qmj9ZyPrhU2//A6+JF8D9Vp/Q/e5jzz5ubtbiByFhU2r7fbV7vGDvO1h8Kuac= 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=ufVB9UyE DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8AC834BB24EE ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k2UpgvOUxDkD801wZfpWrIhAZ8GsVNhsImXZkqnjSb9e9XNQPxBGjBY4m0B37/SP1FLTNP33Fp33YAZBF+ypdfuQ8jQ2haXQCZDBhA0HsPBjvWNmhFDvQZoObF2Zxm9V91ChHUZcQYZyAz4Mt3p1TXSbMfCJBNL6lQhHwpBX39wJ2j9vFDPLjAY8y25qHtr0fRwyxArjEwYB2eho8+LoiKxnwAhTa14Go+iA/LWL0+TjvbNqkKh/qrA/9L/q3qCBPr3UbGeMMDGxNW3PrPprxB7B7zGUvN6yvIWylnp/WAX5ROzb6KiM6wnNcg5uDZjyL1KhsAe5eE9E/j5Scko2+w== 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=EAUYfchvGNDGl3gIbsxgb7QBVEOBSG0UB6L3kqqK3/0=; b=PCMbpKWKglbR1rHChZH7ilIPQH9iFAaIKdXB9SFoCLGcDEVtKBdwhqiOaIA+ldjLUG1Gi0byK1bUfEse9OcYraM6xtY3TiTFWez/dbT+8XJOIYP4ppMonKLXuHiyr7zc5wGgnzzgLrtIyzwVAkgPNHzyaA5WCcPa3SkYfXOWtcUochHiCHnLZHc7nSampSvCpzeQ66T3YF4fEjr1sOdunOS7rHo7GWuro3f0hmya0+TMiCzpBbN5c1Jt7i1r5pLCwcR2V7OO6Nnex96P+iyTltj0oyCBqbsaFsCwZfdkqUg0m2zwFdODBDlVoel1rQCC9G6kgf6G8mGMv2lys6+KOQ== 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=EAUYfchvGNDGl3gIbsxgb7QBVEOBSG0UB6L3kqqK3/0=; b=ufVB9UyEm9Bz4WqKoO4sNAD34mDvEoFieuC9ojz5X2auw19F12Hlbaj9uYTLhbbU//gCxoH33vppvUjNqEqssngXCivvxSYLhS+qw5aVri9gkBZgQxUpVZaNDZYwRCDiApQuWbT39gQurYqag6chdoPCMsuW1o+3is/xuP8iNi/w6fC32dSMja643DMv+Wj7q27LFIVw+ty0bIgX/zbaiLscSzpWN71eCmebkz0ZR3qtY8SLVHR8SGvXMazNaXu5ED+eJIl/8kxSLiAXL+vz+Dhp1qjuZlxeIg6t/XS8L6RupzgUy43IYW9Fx/3q7u56Km5NvIg/ZRAw++4C763wQg== 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 YT1PR01MB8170.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:c1::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.472.15; Wed, 30 Sep 2026 14:50:44 +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; Wed, 30 Sep 2026 14:50:44 +0000 Message-ID: Date: Wed, 30 Sep 2026 10:50:43 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/9] gdb: add symbol_search_kind enum for global_symbol_searcher To: "Rohr, Stephan" , "gdb-patches@sourceware.org" References: <20260929194119.155169-1-simon.marchi@efficios.com> <20260929194119.155169-2-simon.marchi@efficios.com> Content-Language: en-US From: Simon Marchi In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQBPR0101CA0325.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6c::23) To YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2c::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YQXPR01MB5418:EE_|YT1PR01MB8170:EE_ X-MS-Office365-Filtering-Correlation-Id: 86af5105-6663-4bba-e2d9-08df1f023453 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|23010399003|10070799003|1800799024|376014|22082099003|18002099003|4143699003|6133799003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: JaYeCO3G0MlXqV+WP1+oYPGcEp0sR3pYIfglDcj1rE1fNylwUPsHgxR3ltgGbbxqIt1rekL1S1B5K2BTCtDOWtaSlruhkBG254g/Rltz0+Z9/LMFJDT64yuAtGgTY1SxBLcTSPW5hBQCXbJNNzDNiocDJzmv9L/EOqO9oNWnFWaL+dbUh/ioQpGBweqbN5LgTns3/QKqT8SqYSWrcHPnRTPRdRfFc6Fut8ynvO5OpRBSmx7IjU++s5s6+eb8EtwXDHyruP9K0n7tGMAA/gGVoniMUktTj9FPjQOssUnM8/p+EC5jh6cEQqVbJiOvGMWeI1yHDN8fzzZYJoSFwpZGLZTmbSTGmrpSuJpmXHxsi/c5YcmVgiftWrCnP8xXLITtKTu++/YiJBgSbbqegvi0/Fw7/95FTonU0PcvrPPFjwSClVW5MCrqbxYE/OdtyLIkppmPDLactyKFRL+xoGWOh/ZnUw0Hh1UhPqbbChZrZ/P+NpCru7HImirNQuw+8bAb/sU5SqIMTLvziQ1ogO+4hEyEeHB73jd/MOTPdTHwuQtuUjC6dbL1KwIYD2780zvwXmHrgLj8YQieVhcDmqehF88fuLsNYXUJ1EhU7QkrLkFchrubEjSxD+NVQO+PXJi2J82CXiYUdbwuO3Xlcs6VOrP8tbTLOK6+wlyyTM980SA= 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)(366016)(23010399003)(10070799003)(1800799024)(376014)(22082099003)(18002099003)(4143699003)(6133799003)(10067099003)(56012099006); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UlVPZWxPeW5QeGJwdWcxUXFIeTdtblMrZFRkVDFrZjU1Z0Zha0tFQzF6T2pj?= =?utf-8?B?SWNkTm9CRlMvL21NU2NOUk0wYlppVEdEa3pDdVVQd2M0M1RBSTdBODdWdnVR?= =?utf-8?B?YklGMVd2STd6aUh6K0t3S0cvZ29BVVAwWGZGeElOTXl0NktxMzhOSGFCTmp4?= =?utf-8?B?eElhMWtkN3NUWVVwbHBkeWw0cUFPemw4VWZzV0FuaDViWnV1RTRteWtka1oz?= =?utf-8?B?bWNMelhQbXF1anFyc2lUSjdKdHJvUTJJMzdmeUZIVWM4SzlKbUhFTVU5OEhv?= =?utf-8?B?dDh4K0tRU1dlY0FGbVFwVHBNYXVrc3pXcmU3N21QOGhrZHVWd0hJdmNKYlZY?= =?utf-8?B?TGRUSWwrZ3h3dDR0STRodFhCV2tkeTlHbTBIaU1WNEZpRFRsdExESTc0R1hq?= =?utf-8?B?dktWNjM3L0IzSUE0N25pbzNNNUY0RWh4OEhuUE8zVncvaFMweDBrUTRyY2Mz?= =?utf-8?B?enJEMklVUDdETW9rWlBzWGJhNHZJZUVVN1VQUitVR2tZbnpnbVpyQlozcS9n?= =?utf-8?B?NFZxZk9vajNoM0U0d1hxeGczVndGVEdSQWIxSENoUHQzMGxZTGNmZkdITVNx?= =?utf-8?B?bGtpd0k4cHBvSkIzbDJrbFhjSDVkM0phbVhJV3prTE9QR3VWUU9ZeTJjOHdw?= =?utf-8?B?UW9jcllWZVNXMzRnT1NheXN5NDJJRU96QzNDTmY3eXY0R0FSUHVOZjdPcTA5?= =?utf-8?B?MUh6TzJ0a2FkM2h0ZHRjaHFUWk1pYzYyUXQxa0Q2dUVMOW8ycld5RU1XV2Rq?= =?utf-8?B?dHczcHpsUFR6L09ZQ3RqZklWN05XR2l0eHZNODkzSzVUZnF5cDBBN296MFZz?= =?utf-8?B?SmhybG15RWtaNEdaL20rUEtzVEpZRU12RTVGVS81eU92NGRNVlpISU83SlN4?= =?utf-8?B?dVVpcWFYQkU3VFBPYldSdXQvUWVkYS9WcHYvWmpWYW4rbWg3OTk0QjJCek9D?= =?utf-8?B?OGVmS2NqMmJzRHRlS3o2blBJeHR2ZFBqQ2dvN1l0czd0em9FeXFYSVFwYTND?= =?utf-8?B?YW01VkwvRmFyL2ZneHIreHFVblZHWFQ3bzIxK3ZVdHNNTlA0TExxMCtMQ0hs?= =?utf-8?B?bGo1VCtqdHlZcGJJL0RvMzFSR0swa2VIR0VNajVDVlU1Z2xCbzAwRkl5MkRG?= =?utf-8?B?eFFoRStYRFpkNCtWNnpGdkpoMUZRd1dkNTlFQjh6bmJPUUN6NVdZYXpzYnB6?= =?utf-8?B?NzhDbk8zSFZTL0JTT0xqS29ZaXk4VThuRVBlZVowTHRWL1FESGUrZzJzcksy?= =?utf-8?B?clV5OFQ5R3o0bGdnenZiN29lakxJalMyUEhzREs4RHg2KzlFNGlUb08zaUdh?= =?utf-8?B?QkY0M3UwWXhISjYxZU54Z0FRenEvRjhMT0NCZnE4dTROaWRQYTMyZW5oTk1l?= =?utf-8?B?UHcwaWZqblpldXRYQS80Z1BYeFhyNWZ2VzdVT05kWTBMN1dzQ0pwSEkzTjd1?= =?utf-8?B?dlV4ZU44RnFMckVjU3Z3eFdTaWM4N3pRdE1kdGlpblcxcjlVK0tLQ0VIL2JY?= =?utf-8?B?TWVrVWpuemVkVWpDMDd5UVlCR2JrV1FvK3JpRTVPeEtBeFVCalNGUnVrTFFa?= =?utf-8?B?SVBNemdCdmZXMjlWWWhkK09yUkpsTVFRRWV4YUFNa280bjdNUkF1aWpLVUxD?= =?utf-8?B?NUJUdWVMVks1RnRoWVJ3QWxXdUhSMStTbDNDYVA3c1hoWVFzMExBMmFleTRl?= =?utf-8?B?dzdrUXE1bFZPVzU3LzZkc1dPL2pHQzArSi9jSG1SU25VbWhOamxuS2Ircjdw?= =?utf-8?B?L2plRXRTUFZJd2NxRnVYbzFHdFdPaWl2Mjg5OTNxeVJnNTU3OXVzcXRUVXAw?= =?utf-8?B?dEtaY3F3ZWdJTHZ6STM2ZGoyVVZqMXNVNDBvVWhQOVhCUzdyS3ZnTjRPMlls?= =?utf-8?B?S254UFdNdkJxVTFUZUVxU2pIaTljUVpLa0dwUy9oa21Yc2RCemVBSkwwcHl1?= =?utf-8?B?cGtFT011SVB1ZnMyNEdRemVIUlJLUlRyZ1JnMHpIOTc5c0JoRGZ2WTZSZWtI?= =?utf-8?B?NXpydjFWL3U1MGt3Qlh1d2twa2pYUGhza0lRVVhwUE04N0RNb2FMRWFNaVdQ?= =?utf-8?B?Vy9tMG1XUHl1d2JETUwzZkE2KzhkTzdMVzgyanZEZFZySmZOelR2cno1bXd2?= =?utf-8?B?bkxyNDVVTHl0aTdLSkVnbE5JYUdGSFNPcmtoek1ya1ppV1NVMGJoa0pRQkdE?= =?utf-8?B?NjhEVVVUcGhFTkZpb2FHenpzM2cydGlnRVFkVFVXTjlYL3FpWXE4UGF1Y1Z5?= =?utf-8?B?azdUc2ZqclB6L1loaGJuS1FLTWgxalVWRWtwU2NqVCtqbEVyUWF6eG1YWTN1?= =?utf-8?B?T2dUU3Jwb0xNMG1HSDBLSW1pa1NZdFBJL01wMDQ3dlFOUUJ3c0lUZis5WEhM?= =?utf-8?Q?tOpcD320YoV3LiWPTXr7d88pme+tO1FwwqDOwb1UYy/S7?= X-MS-Exchange-AntiSpam-MessageData-1: sOvnKNZA+6tJUw== X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86af5105-6663-4bba-e2d9-08df1f023453 X-MS-Exchange-CrossTenant-AuthSource: YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2026 14:50:43.9341 (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: 1DqFwgYW6T2ZVEpVfl6uV+eWtgRdpA6U027eBkYFxQ5EsyBOhQCaF8nefzNka+1d8XHdjdRGSQ1PngG+yEREyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT1PR01MB8170 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 2026-09-30 05:31, Rohr, Stephan wrote: > Hi Simon, > > see my feedback inlined below. > > Thanks > Stephan > >> -----Original Message----- >> From: Simon Marchi >> Sent: Tuesday, 29 September 2026 21:39 >> To: gdb-patches@sourceware.org >> Cc: Simon Marchi >> Subject: [PATCH 1/9] gdb: add symbol_search_kind enum for >> global_symbol_searcher >> >> While reading the global_symbol_searcher code, something that was not >> clear to me was that despite accepting a domain_search_flags, searches > > Double spaces in ", searches". Done. >> are mutually exclusive between types, variables and functions. >> >> One snippet of code that really confused me was (now removed by a >> previous commit): >> > > Should we mention the previous commit " gdb: Skip useless minsym scan in > variable-only symbol searches" explicitly? It may help future readers of the > patch. Done. >> diff --git a/gdb/symtab.c b/gdb/symtab.c >> index 27070f74f83e..708df078e2ea 100644 >> --- a/gdb/symtab.c >> +++ b/gdb/symtab.c >> @@ -4698,11 +4698,31 @@ treg_matches_sym_type_name (const >> compiled_regex &treg, >> return treg.exec (printed_sym_type_name.c_str (), 0, NULL, 0) == 0; >> } >> >> +/* Return the domain search flags matching symbols of kind KIND. */ >> + >> +static domain_search_flags >> +to_search_flags (symbol_search_kind kind) > > Same name as " to_search_flags (domain_enum domain)" in symtab.h. > Not sure if this might be confusing. I don't have a strong opinion here. Yes, that's the intent, two overloads that do the same job but with different input. >> +{ >> + switch (kind) >> + { >> + case symbol_search_kind::VARIABLE: >> + return SEARCH_VAR_DOMAIN; >> + case symbol_search_kind::FUNCTION: >> + return SEARCH_FUNCTION_DOMAIN; >> + case symbol_search_kind::TYPE: > > Should we add a comment why the " SEARCH_STRUCT_DOMAIN" is > included? I think this might be helpful for future readers, e.g. > "Some languages have a tag namespace. Search the "STRUCT_DOMAIN", too." I hesitated to put that clarification on the enumerator itself, but then thought that the code here would make it clear that symbol_search_kind::TYPE includes both the bare types and the "struct domain" types. given your comment, I would add that clarification on the enumerator: /* Type names, including those with a struct/union/enum prefix (STRUCT domain). */ TYPE, >> @@ -5166,20 +5179,20 @@ symtab_symbol_info (bool quiet, bool >> exclude_minsyms, >> const char *classname; >> switch (kind) >> { >> - case VAR_DOMAIN: >> + case symbol_search_kind::VARIABLE: >> classname = "variable"; >> break; >> - case FUNCTION_DOMAIN: >> + case symbol_search_kind::FUNCTION: >> classname = "function"; >> break; >> - case TYPE_DOMAIN: >> + case symbol_search_kind::TYPE: >> classname = "type"; >> break; >> - case MODULE_DOMAIN: >> + case symbol_search_kind::MODULE: >> classname = "module"; >> break; >> default: >> - gdb_assert_not_reached ("invalid domain enum"); >> + gdb_assert_not_reached ("invalid symbol_search_kind"); > > I think we could drop the "default" case as part of this refactoring. All > cases are handled; we lose compile time warnings for unhandled cases with > the "default" case. Agreed that we can drop the default. Note that we don't build with -Wswitch, but we specifically enable it locally here and there. >> diff --git a/gdb/symtab.h b/gdb/symtab.h >> index 6443216fd7f0..a35449fbeeda 100644 >> --- a/gdb/symtab.h >> +++ b/gdb/symtab.h >> @@ -2586,6 +2586,23 @@ struct symbol_search >> const symbol_search &sym_b); >> }; >> >> +/* The kind of symbols searched for by global_symbol_searcher. */ >> + >> +enum class symbol_search_kind >> +{ >> + /* Variables, excluding enum constants. */ >> + VARIABLE, >> + >> + /* Functions. */ >> + FUNCTION, >> + >> + /* Type names. */ > > IIUC, this covers "SEARCH_TYPE_DOMAIN | SEARCH_STRUCT_DOMAIN" ? > Should the comment be extended to state this explicitly, e.g., "Type names, > including struct, union and enum tags." ? Done, as per the comment above. Simon