From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id AZobEw2SF2koZwIAWB0awg (envelope-from ) for ; Fri, 14 Nov 2025 15:33:17 -0500 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=Epn4rC0/; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 49DE41E04C; Fri, 14 Nov 2025 15:33:17 -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 server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (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 4F6691E04C for ; Fri, 14 Nov 2025 15:33:16 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EB91B3858C50 for ; Fri, 14 Nov 2025 20:33:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EB91B3858C50 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=Epn4rC0/ Received: from YT6PR01CU002.outbound.protection.outlook.com (mail-canadacentralazon11022127.outbound.protection.outlook.com [40.107.193.127]) by sourceware.org (Postfix) with ESMTPS id B1DE73858D20 for ; Fri, 14 Nov 2025 20:32:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B1DE73858D20 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 B1DE73858D20 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.193.127 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1763152352; cv=pass; b=Bs61Iu5+5lG5vGZRUlS0WmB8YV3FoqC3UmAe6LSVZIyXiSzztvxQdV1XyYs4D3jqi0XLaVPToRD8qHZlRoADvaEb6C6gmEfwa5/0tWHZpghRwYGeUXt0fH73j9y0yfjPfdhWKUYcMalvhxcVFlNN3MpnEJeoDawYaBZZ39ASf80= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1763152352; c=relaxed/simple; bh=6Ky/7h+y6+Jmpz8sJ7OUMppwEmkJPkmdv8IMVypwZpY=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=Q0sMh/L64DNDTkl7n9ULseEoQziiYE0agx5Gu/tKL/Gf9IY3+1U1Chy7WBCrkSBY/hZ7c9IthZXBDVzGuVKcHWpuuiwj6n0fKOa/YtsUElsWkAh1oISIXfdY/oureTql819IVsV/imDRubZ1YEKMjlHDZNQDfuJmiwA1duGWhLk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B1DE73858D20 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dePhyjxBYOb9xEPv3sYlgW+ZN3a5okpftg+5tVmlMBtemFBD+G7Zbxkr/grrk59yFLVAJigTV4040WIiRR/3plwI1GMlbhlUXRPYUOu18j2oG+rvMoHlorE9rmxKEBW8c058OT5YMxnHVhwNM+82fiybXXE9lsS5m67s7xT2wBxn1WWZ21bPpSWQdUxgEyCNjC9xoVwoEMPSOcI9Kv1rOhMVxEOE+0VUDWJuP7NoyIK4zr/I2ThZkMbKjK6h7oUedxPQN4kYJ7aKO0Q6aCRUykvbchYkuBfTf72fdDxXujSiWNuIRLcHYPxPdzUVRUxEpdtd4IyBeVCbk3NeZVtIPA== 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=aBujze6XTU601aYcM4z/mpW4yLi162bpmaXqgtLp7vk=; b=Q4RovrjbY7VApoV9nsD51pQcLJBmJ+1heZALwPe/acuwv02nl+PrCZQF2d3JQxHBnFizc3h2xVRLNcyu5FbtxSpTJLPrTWdZDt76omL8iNF47lXTWpshgk8q+kA4/Poow5vndc5GVsXnBdRsq50qRklQ4V35+2IJPSpx5gPR2/55yMqgJvWMIBzaZAj/02ZDtaEFrMybFZlsr/SPsI+uvhMePON411pupgP11WndP7SQ7u4Kx9F4tGsNDMclBRLQRQfJCs0dUcIyXBkiV+uG5krlxe2W5uH7WeC06xk3a1A5dPcNBNqFUvIb0dWS+xZkEWdeFaFXwddVz0RWNaAGmQ== 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=aBujze6XTU601aYcM4z/mpW4yLi162bpmaXqgtLp7vk=; b=Epn4rC0/BYZoVVpq0ZZcSy2kAQfJbiJ5/eYwfGT2Kc0qK7mCWyiQ5D/Ejt7VO5Mvv6K8QbvUoM/kqE284K6PvvZKv+FsWFhdnXlOoE6OVSviJdv9R8k0CHY+LUS33nmoYLnYdiRfq9LHJbeZMc4zgK7oJwbTDEJSDwRmG3EDdwDkAiX+tsCy3KNexCq8bAE9Q471cCcvq+m3BNnMDlBDZLNA9e5elDlgzHZ2Y5PKUYudBLJFdeQeAyWmqX/7jKq7BKxe0jp4NXHKzjvJv8qqQL1o+QECsDRhaltnIFNAXmG3tH1+dhY7HiYdhOujPDEaoBcAr6LeVdsMD6t7SE/TGA== Authentication-Results: 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 YT2PR01MB5712.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:58::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Fri, 14 Nov 2025 20:32:24 +0000 Received: from YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM ([fe80::bbfa:179f:fdc8:b15d]) by YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM ([fe80::bbfa:179f:fdc8:b15d%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025 20:32:24 +0000 Message-ID: Date: Fri, 14 Nov 2025 15:32:13 -0500 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] gdb: use gdb::unordered_{set,map} at a few places To: Tom Tromey , Simon Marchi Cc: gdb-patches@sourceware.org References: <20251113213506.313040-1-simon.marchi@efficios.com> <20251113214507.359286-1-simon.marchi@efficios.com> <87a50ov1gv.fsf@tromey.com> <87wm3stm63.fsf@tromey.com> Content-Language: en-US From: Simon Marchi In-Reply-To: <87wm3stm63.fsf@tromey.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQBPR01CA0137.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:1::37) To YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2c::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YQXPR01MB5418:EE_|YT2PR01MB5712:EE_ X-MS-Office365-Filtering-Correlation-Id: 8e0c6c00-44bf-41a7-95b0-08de23bceb08 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MlJOWFFKY0cvTUlkNFRnTW1oOVEwdC9WdE80TUExMk0vVysxWElsT0N4bUN0?= =?utf-8?B?Mlkxc1J2NmVhdVFFRFZ6SGROOEhxbG1UYWRPaHFsQTJpNWNpeitNcm40Vmt5?= =?utf-8?B?NU15N2x5dVVxSTFQOGRzeTBRWmlFTXFTdFZVSVh3UmVleHVWcm9YSjBIcUxu?= =?utf-8?B?VmM4ai8xWkZiMG9NUW55Z3JwNUdFZlV1T3dQQ0FwME1wSjNldSswMG9vT05a?= =?utf-8?B?dXA2OEsrY2ZraE5ERTFrMm4wYmVEM21YdkVFK3dPWjdZNFNQNEgydjFVVnlo?= =?utf-8?B?V2xWOVZaMnl2M0oxT2NsMlNkNHJUT3dpQ0tVaUVwNHF2N003VlEvWUViTHc3?= =?utf-8?B?YkhDV3JSTnRGbDFRRm5aTEJHTE1lT0daMWlJS2lhS3VaVFVQSUFTd1locWh6?= =?utf-8?B?R0crcXhRQUNIK1F5Vmg5N3pQOWZyNW56V1FHeGtxMnd3SFNOVFF3MXZDcGhW?= =?utf-8?B?dk9LVmF5K21nc2RJalZxQUlyK1k1NWlydjdhTHJXOXI1YkJUSEZ0R1ZKM2Vp?= =?utf-8?B?bTVzRVRIQ1JIQnlOcXRkK0srdlBxbVRrWlQySjVucGZ0YWtja2ZMelVLbVlU?= =?utf-8?B?M0Z0UjF6ZnJEajZGUmtBOE5uYmltRlpsaS9WMjNRWlpvUTB3eUkyYTlRMytu?= =?utf-8?B?UTNyYWF1bTFGSkowNm5vSGx4ZHdVeXR4MGx4ZzNGbmJBd05BaXF2d01LelNv?= =?utf-8?B?RjdJekFQWW8xckEwdmN5MkhXT255U0JxdmFvRVlCVlh3M3NIN240VWFVM2or?= =?utf-8?B?allhRVhxMkFDbHl1M1hxSkp0cTVUc2lscFVDV0t1clQ3MkVzM2dKUXlSQ1hP?= =?utf-8?B?SEtlOUhvbWJQTjFFdGFEaTVkaE81MWZZSTczTmFqWERmNDdpeHhkeVNVRDRS?= =?utf-8?B?SzdJRk9NOHNJYjN3cHo0TjVIdXJYVmY2d0ZnTGhJMkZEVWNmeVEzM1kwalRP?= =?utf-8?B?ZVh6YzFwRzBwendwVjZqQ0dLZllLVFM1ajZXUldVTGNyeG10MGZRZlhiekxQ?= =?utf-8?B?SGhlRDdiTk1CS3RMejhBRTFvWkF3b01ZK3E2eEw3cWZRVzAwV3ZXMVQxRlhX?= =?utf-8?B?dG9tMmJ0WFVrelRUSHpic2VNdEdleDdkYlEvaHoyc1RXRGYydjNSYjRBQzhT?= =?utf-8?B?dGlOb0FqTENycHlBV3M4QmdoM2ZGK01GTDRDeWdPZzZWMjBUQ3g3S2RXVGhQ?= =?utf-8?B?UUdJZ0ZHbFJRQmorTSt2OUFXSXhzN2N3VnhGYWdqWmYvMHlUUE9vUHFKVWli?= =?utf-8?B?OHdPV2hicElaRUFZVVhzYVY1RlJKbm9GTEFLLzZJNTJmK2w0WEtzK0xOQ1Qy?= =?utf-8?B?NjlYTGR1RDZXT1BaWHZueXpxMnNUQUZIV2twMnFVRUlPUGRFWGZFOFFhT2Zn?= =?utf-8?B?Vmp5ODFMNnlhSzJkMEQ4U1VaWUhyTmdsT1Rsa05iSmhUb1U5eGE3VTNNRGJr?= =?utf-8?B?dGtlR3hKdzV3WVNyOWZtK1I4cDlvYTFSVnhSS0xjbVVLN05tTkF2MEpVS1lj?= =?utf-8?B?RGdISThaK3krSnpJWU9QWTJ0eldMaWdNSjNTNzVNTlRRQ092bkdBS2ZBV05h?= =?utf-8?B?YTd4QUUybWRzZ2dPMk1NS0ZBRDJmWS9iSm9IM0pGVWs3c2V4eHdQQk9yRzZ4?= =?utf-8?B?emJjWisvdUJITFcvV0szejd0SGFoeklob3RvTTgyTi9PL3VUTHZJK3Y2aUpO?= =?utf-8?B?TVRsb1hoYWZaZWN1Y0ZRZGRHWkRnazdBbjJ1U3N1bnZvYk5BMmJIdzJ3RHFF?= =?utf-8?B?YXJXbk1qV2FGdE45dWkzb0NKMjdXTXljU2RoT2txVWdYOGpjbWdleUQ3ZVlz?= =?utf-8?B?bmpGSWFKK01uTGhSbW9YSVpiOW5uU0IzZzVuODZJS3lmN0kvUjJCa1MyUFAx?= =?utf-8?B?ZjJvbWJ6cGs1Mk1aajNLWDJ2Zm5rb2ZCdndaMVVMLzBJd1BhZm9wWDIvV0hn?= =?utf-8?Q?y6FK2HnG5LmnEFnYpo49D/X9i6DY9mS7?= 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)(1800799024)(366016)(376014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RFhjUEM4NTFHNmF5UkxZOW5TT3UrVTVDVEl0NVI4a2NOdDk1ZHFLOXptZEdB?= =?utf-8?B?eGxhSjVnOE9vZk1PdlJreGRsRUd0Um1sK3JRU0JYdWdHRk5jUVMyZ0RrQkZp?= =?utf-8?B?dlFGeUJ3T3lGSldkQjEwYXdqTTVmMkNab0dSenR2VlE3TkpqcU91Q2dJdTha?= =?utf-8?B?UHVGWXcwR0drZmZNVWtlWU44RituNHdLUldkcnY2YWhyVGp3ZDBjb3R2QUhH?= =?utf-8?B?TFR3bmpWbW1rbDdBM3kyK244b0srQkh4YmZ5cVVvc05BYkJyMTZUTnU4YlNP?= =?utf-8?B?ajJoSVIzQWM5WjNLcGUzYVJkdjV1ZnRHelpEbmFyV05nZU5taFQ4ZVlzNlJ2?= =?utf-8?B?TFJKWTB1Ny9GcjFOM1VVaTQyRGhMQWp4QmQ0UFdISm9UVkVGZVU0UXZDTjI2?= =?utf-8?B?cklUcVBaVmswTGNSaXl3a3pQZ1JvMWhvL2dRb2lQYzNxemgrRjJyWFFUWEZw?= =?utf-8?B?YU9IaU5VNE5peUR1VVhON20wdDNLMlQ2dENreG1JSU5YN25oYUV6WmxXcUky?= =?utf-8?B?NCswYUhpbzI1aUh2TEY1TjVsZW43aUFYU3lpZWU1QlJ2UXd3Rlk1SythdkRQ?= =?utf-8?B?STVDNkYySHRnUTlUMm9rTlpYQ0pRN1BLdWRoVUpEd3JvbjAwMGJqWGVxc3Ew?= =?utf-8?B?U1ZLeTc5c3lENnJTWUcyOElQSU9heC9JUUljaDVPcGxSVjltYXVueVNBR3Jm?= =?utf-8?B?eWQ4RlFrMk9JZ1V5SWFwL0FZc1NKdGVMc0tnT2R6RTU0bFoybklqWHcybG02?= =?utf-8?B?bzl6cWJ0V0E4c0Q5Y00yVERsMi8rNzc4dWV1cm9jZTVzb3RNZytlWmtmNXkx?= =?utf-8?B?YUEzZ0xXSlppa1NBV3pZVDFlZzJ2cS9nVy8rbUxSTTYrNnczbXd3WXY5dlc2?= =?utf-8?B?VFBpMVJ2OUNrUGFDSnlCckRaK3VMbXphMi9JYVpycUZWcDcrd3Jzd0hnZUZ5?= =?utf-8?B?U0JjNkZGUnJaYjNrWFVReWE5T041WDd6QzkybG96blJ3UVBDU0FENHpoZnpo?= =?utf-8?B?QTZGT1JQNEwyRmdiNkphZVNLbHN2NFFHUElIR2RoOHcxdGNxMURST0dvcElU?= =?utf-8?B?WU1qaTdWSjZ6ZytZTkNpVEY1U1BDOUt5Z2hidXlsd0VHcmhJL2RDdEd1RWNj?= =?utf-8?B?bll3akNsMVFOZWRFcCtqTC9aVVo3N28zU0hQQ2xNaDZVSEhBa0k4NUVLSkFD?= =?utf-8?B?UTZ0TENYYXVxVkxydlNiOTJlQVFibnBUMHIxOExwNlQrWG1SV21iUVpNUGJH?= =?utf-8?B?MnNTaks3eFNoQVA1SHRCK3pkeWRuQW4rT2wyK0VJNFNyRWdQeVVrVmd6aDZj?= =?utf-8?B?VVBjanpKcjBSK2JQbFFBSUhnOVFDYlRVdzBReXoyNnQ1Nzh5MDN2K2txN0dW?= =?utf-8?B?M2NvcHEyVmd5VjNxTEJuRURHKzZmb0huQTlBczd6M2pwMDhLVGVlbTM0MXY5?= =?utf-8?B?MzVaZVlwQWxMWGVFTTBVaGs5MWwzblAwT2V4bnFkNVYzZ3JKeEV2MTBFNk5G?= =?utf-8?B?TGxhRitra1J6NGdGUERnOGUrS3lTY0xmM2NIeHpkUHpXcjlBbngrSFFTVnQ2?= =?utf-8?B?QW5MRG1QMHB5WkRjZklmU3JiTjJ5WlllSktLcWxhWGpBMlg3ZjVJVFprVXpu?= =?utf-8?B?eWVFT2NYNTIwVUoxOEVZdFh6TmtUMzVBNmQrRG8yRDZpaTFuWG9MSnljMmE5?= =?utf-8?B?VVRuZENxbUZvQmtza2FNK3QvdXNLcXpURUZQcW9mVWxZZ0dGRWxjRXpRQmYr?= =?utf-8?B?SVYwK2lTeUNkbVpmR0F4UFNON0EwcXdzYU9DNVE5QXZFUHNGaTMxOWdYNGV1?= =?utf-8?B?NTh4blkxRnhoWHl0a1BSdWJPMjNIZnV1c2dnSHp3TVl6TWQ5WHN1TWlUYVhX?= =?utf-8?B?SDNMRW9CaitiWG9RajB6Y1RCRW0zWEhQSnlaNWNIU0gzM2JiTEJsR3FGeGxr?= =?utf-8?B?OGNnRWRkVDY5VTh1VUQ3dlc0dGxVeEJ0aG53aHlIT0JkYXVGZXVzK2dZR3Ni?= =?utf-8?B?VnBWd09UdHJsVXlYNmtHOGNoWURsampLTjNzTGZ1cW15SGZMc2U2VHVVdTdP?= =?utf-8?B?NnBtWDVqTXNCMkpucXdwS3VIL0pDU0RBK1N6aHJBaWl5NHFmeUducTBtMU1R?= =?utf-8?Q?XYXyndZEaSI4Wy76xdgr1WdtP?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e0c6c00-44bf-41a7-95b0-08de23bceb08 X-MS-Exchange-CrossTenant-AuthSource: YQXPR01MB5418.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 20:32:23.9375 (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: eDDf84xvvnL9WaCVSh5qf5IGbMuVHgoKroTLS/n5p/kJSb50htwc2k8k5Q1jJzXhe7lKsNNIE0TLWwBHBfbjlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT2PR01MB5712 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 2025-11-14 15:05, Tom Tromey wrote: >>>>>> "Simon" == Simon Marchi writes: > >>> Adding DISABLE_COPY_AND_ASSIGN to proc_mem_file isn't really need, since >>> it's handled by scoped_fd, though maybe it's worthwhile for clarity. > > Simon> I'm a bit confused with your answer. But if I don't explicitly default > Simon> the move constructor and move assignment operator in proc_mem_file, it > Simon> won't build. I would have expected proc_mem_file to automatically have > Simon> them since its scoped_fd field already is movable. I don't understand > Simon> what makes it non-movable unless I explicitly default the operations. > > The move operators are fine, this particular part of the note is just > saying that perhaps proc_mem_file would benefit from the explicit > addition of DISABLE_COPY_AND_ASSIGN. However it's not truly needed. Ok, I have no problem being more explicit than necessary and using DISABLE_COPY_AND_ASSIGN there. See updated patch below. >From e1f67cc4665e6c7ef4fc3fe6133c1447bab795c2 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 13 Nov 2025 16:43:56 -0500 Subject: [PATCH] gdb: use gdb::unordered_{set,map} at a few places Use the gdb:: set/map types instead of the std:: ones. I only changed places in files I can build on my dev machine. I needed to explicitly default the move constructor and assignment operator in proc_mem_file. I think this is ok, as nothing takes the address of a proc_mem_file, requiring it not to move. I also needed to do it for refcnt_fd, in solib-rocm.c. It's a bit odd to prevent moving / copying a refcnt_fd, as this struct doesn't directly hold a resource, but I think I get why it was done. Change-Id: If6f2d7ba3b1ae338eba38b0ab9f987400e661dff --- gdb/aarch64-tdep.c | 2 +- gdb/amdgpu-tdep.c | 2 +- gdb/amdgpu-tdep.h | 9 ++++----- gdb/arch/amd64-linux-tdesc.c | 3 ++- gdb/arch/i386-linux-tdesc.c | 3 ++- gdb/i386-tdep.c | 3 +-- gdb/linux-nat.c | 8 ++++++-- gdb/solib-rocm.c | 12 ++++++------ gdb/solib-svr4.c | 2 +- gdb/x86-nat.c | 4 +--- 10 files changed, 25 insertions(+), 23 deletions(-) diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index 89142e0a2149..b1cc17499bfb 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -66,7 +66,7 @@ #define HA_MAX_NUM_FLDS 4 /* All possible aarch64 target descriptors. */ -static std::unordered_map tdesc_aarch64_map; +static gdb::unordered_map tdesc_aarch64_map; /* The standard register names, and all the valid aliases for them. We're not adding fp here, that name is already taken, see diff --git a/gdb/amdgpu-tdep.c b/gdb/amdgpu-tdep.c index a2cb7d8984ac..e0f64ee4b21e 100644 --- a/gdb/amdgpu-tdep.c +++ b/gdb/amdgpu-tdep.c @@ -356,7 +356,7 @@ using amd_dbgapi_register_type_enum_up /* Map type lookup names to types. */ using amd_dbgapi_register_type_map - = std::unordered_map; + = gdb::unordered_map; /* Parse S as a ULONGEST, raise an error on overflow. */ diff --git a/gdb/amdgpu-tdep.h b/gdb/amdgpu-tdep.h index 67bcaaf243a5..ac30023d74fc 100644 --- a/gdb/amdgpu-tdep.h +++ b/gdb/amdgpu-tdep.h @@ -23,9 +23,8 @@ #include "gdbarch.h" #include -#include -/* Provide std::unordered_map::Hash for amd_dbgapi_register_id_t. */ +/* Provide gdb::unordered_map::Hash for amd_dbgapi_register_id_t. */ struct register_id_hash { size_t @@ -35,7 +34,7 @@ struct register_id_hash } }; -/* Provide std::unordered_map::Equal for amd_dbgapi_register_id_t. */ +/* Provide gdb::unordered_map::Equal for amd_dbgapi_register_id_t. */ struct register_id_equal_to { bool @@ -74,12 +73,12 @@ struct amdgpu_gdbarch_tdep : gdbarch_tdep_base std::vector dwarf_regnum_to_gdb_regnum; /* A map of gdb regnums keyed by they equivalent register_id. */ - std::unordered_map regnum_map; /* A map of register_class_ids keyed by their name. */ - std::unordered_map + gdb::unordered_map register_class_map; }; diff --git a/gdb/arch/amd64-linux-tdesc.c b/gdb/arch/amd64-linux-tdesc.c index 879666274e0e..4a7f2329f23d 100644 --- a/gdb/arch/amd64-linux-tdesc.c +++ b/gdb/arch/amd64-linux-tdesc.c @@ -21,6 +21,7 @@ #include "arch/amd64-linux-tdesc.h" #include "arch/amd64.h" #include "arch/x86-linux-tdesc-features.h" +#include "gdbsupport/unordered_map.h" /* See arch/amd64-linux-tdesc.h. */ @@ -29,7 +30,7 @@ const struct target_desc * amd64_linux_read_description (uint64_t xstate_bv, bool is_x32) { /* The type used for the amd64 and x32 target description caches. */ - using tdesc_cache_type = std::unordered_map; + using tdesc_cache_type = gdb::unordered_map; /* Caches for the previously seen amd64 and x32 target descriptions, indexed by the xstate_bv value that created the target diff --git a/gdb/arch/i386-linux-tdesc.c b/gdb/arch/i386-linux-tdesc.c index bd736eb68817..74f192b9c37c 100644 --- a/gdb/arch/i386-linux-tdesc.c +++ b/gdb/arch/i386-linux-tdesc.c @@ -21,6 +21,7 @@ #include "arch/i386-linux-tdesc.h" #include "arch/i386.h" #include "arch/x86-linux-tdesc-features.h" +#include "gdbsupport/unordered_map.h" /* See arch/i386-linux-tdesc.h. */ @@ -31,7 +32,7 @@ i386_linux_read_description (uint64_t xstate_bv) xstate_bv value that created the target description. This needs to be static within this function to ensure it is initialised before first use. */ - static std::unordered_map i386_tdesc_cache; + static gdb::unordered_map i386_tdesc_cache; /* Only some bits are checked when creating a tdesc, but the XSTATE_BV value contains other feature bits that are not relevant diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index e00b3337beaf..72d880a7a8a0 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -62,7 +62,6 @@ #include "user-regs.h" #include "expression.h" #include -#include #include "producer.h" #include "infcall.h" #include "maint.h" @@ -4206,7 +4205,7 @@ static std::string i386_stap_adjust_register (struct gdbarch *gdbarch, struct stap_parse_info *p, const std::string ®name, int regnum) { - static const std::unordered_set reg_assoc + static const gdb::unordered_set reg_assoc = { "ax", "bx", "cx", "dx", "si", "di", "bp", "sp" }; diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 0c24e10c2c9e..322b44eae65a 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -63,7 +63,6 @@ #include "gdbsupport/scope-exit.h" #include "gdbsupport/gdb-sigmask.h" #include "gdbsupport/common-debug.h" -#include /* This comment documents high-level logic of this file. @@ -4039,6 +4038,11 @@ class proc_mem_file gdb_assert (m_fd.get () != -1); } + DISABLE_COPY_AND_ASSIGN (proc_mem_file); + + proc_mem_file (proc_mem_file &&) = default; + proc_mem_file & operator= (proc_mem_file &&) = default; + ~proc_mem_file () { linux_nat_debug_printf ("closing fd %d for /proc/%d/task/%ld/mem", @@ -4067,7 +4071,7 @@ class proc_mem_file (also default), we don't create an inferior for the fork child, but we still need to remove breakpoints from the fork child's memory. */ -static std::unordered_map proc_mem_file_map; +static gdb::unordered_map proc_mem_file_map; /* Close the /proc/PID/mem file for PID. */ diff --git a/gdb/solib-rocm.c b/gdb/solib-rocm.c index b48e4426fd41..b328cc7b5d06 100644 --- a/gdb/solib-rocm.c +++ b/gdb/solib-rocm.c @@ -32,8 +32,6 @@ #include "solib-svr4.h" #include "symfile.h" -#include - namespace { /* Per inferior cache of opened file descriptors. */ @@ -60,15 +58,17 @@ struct rocm_solib_fd_cache private: struct refcnt_fd { - DISABLE_COPY_AND_ASSIGN (refcnt_fd); refcnt_fd (int fd, int refcnt) : fd (fd), refcnt (refcnt) {} + refcnt_fd (refcnt_fd &&) = default; + refcnt_fd &operator=(refcnt_fd &&other) = default; + int fd = -1; int refcnt = 0; }; inferior *m_inferior; - std::unordered_map m_cache; + gdb::unordered_map m_cache; }; int @@ -101,7 +101,7 @@ rocm_solib_fd_cache::open (const std::string &filename, int rocm_solib_fd_cache::close (int fd, fileio_error *target_errno) { - using cache_val = std::unordered_map::value_type; + using cache_val = gdb::unordered_map::value_type; auto it = std::find_if (m_cache.begin (), m_cache.end (), [fd](const cache_val &s) { return s.second.fd == fd; }); @@ -544,7 +544,7 @@ rocm_bfd_iovec_open (bfd *abfd, inferior *inferior) tokens.emplace_back (uri.substr (last)); /* Create a tag-value map from the tokenized query/fragment. */ - std::unordered_map params; for (std::string_view token : tokens) { diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index c91e0b2c37b4..2d15e7dfd8a5 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -3758,7 +3758,7 @@ svr4_solib_ops::get_solibs_in_ns (int nsid) const faster, and to be able to remove SOs from the map, to avoid returning the dynamic linker multiple times. */ CORE_ADDR debug_base = info->namespace_id[nsid]; - std::unordered_map namespace_solibs; + gdb::unordered_map namespace_solibs; for (svr4_so &so : info->solib_lists[debug_base]) namespace_solibs[so.name] = so.lm_info.get (); diff --git a/gdb/x86-nat.c b/gdb/x86-nat.c index eb44dd58a4f4..381364cdd70e 100644 --- a/gdb/x86-nat.c +++ b/gdb/x86-nat.c @@ -21,8 +21,6 @@ #include "cli/cli-cmds.h" #include "inferior.h" -#include - /* Support for hardware watchpoints and breakpoints using the x86 debug registers. @@ -42,7 +40,7 @@ struct x86_dr_low_type x86_dr_low; need to keep track of processes that aren't bound to any inferior (e.g., fork children, checkpoints). */ -static std::unordered_map x86_debug_process_state; /* See x86-nat.h. */ base-commit: 5f224e54aee5bfe64175749aec885d15e69d6874 -- 2.51.2