From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id EdLwMYMHSGrbGCQAWB0awg (envelope-from ) for ; Fri, 03 Jul 2026 15:03:31 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=GwnLIGZW; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=GwnLIGZW; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id C78E61E024; Fri, 03 Jul 2026 15:03:31 -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 [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id DAAAF1E024 for ; Fri, 03 Jul 2026 15:03:26 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 73E514BA2E0A for ; Fri, 3 Jul 2026 19:03:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 73E514BA2E0A Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=GwnLIGZW; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=GwnLIGZW Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazlp170130006.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::6]) by sourceware.org (Postfix) with ESMTPS id 2F7A94BA23D3 for ; Fri, 3 Jul 2026 19:01:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2F7A94BA23D3 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2F7A94BA23D3 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201::6 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1783105267; cv=pass; b=JqociRseQ+UCu4lJIBNRC/5QkIGOfzLL1Pqf4B43/+sBiZcgB+p9TPlixvfCPJcVkyPqXFJDJBLMT2ZMNVkKpne0kQXOUkK2NbmOOqrWZQ/xJtptMbG4wyj95XYbtik+oE9IRe0zehter1WCCHwXr5nHBV+7LOEN8WHHVlJ6vAU= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1783105267; c=relaxed/simple; bh=4wOa6aB2t5nLJwpUryBPnxpIAzSLqdpv6mbzMmmnwEs=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=UyJ93Wk60ygIDT2dRdxrqMODdZ74nDkS44Pnq6VaXlohrhd1dDIcq6lo/icr9oda4KMQCn9kyA5gmzj8bQsdOPiocQp1Df0O65igw+Y9EaoKno9Snq/5PrausouEMNJo60Ts6Sx4XoyS5SkG2GZzqLtno+J19E3+FNjIY7Vz+8w= ARC-Authentication-Results: i=3; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=GwnLIGZW; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=GwnLIGZW DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2F7A94BA23D3 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=PflF3jYXPWxQZtHiQ9To/XqbAzPwLX2pH3Wjpd2SqA6Yr1hcr1Yu9tKo71Ndj+FGKsYHVEbZgAwWnqMWzWQ76JacgAVvbzloS2L4u3C3dktJ39XUw2Y/bZxSHS2qNNwR6a4Tp35LWWOI+/D35XXPByQBtyXgyP+A+SnEvrFNlInIl/e40spMv0r2CMRTmEZTGodb9umnuNwxllN2wHPRb76NwjGoX8MVbjRCy9Aq2KhOUje/XIiF921/sJDCkXN9l0Ung+r/pzgKaA7j91ujmgkHArsv6ArDI4lJWNQW8MglT3z6+mJxgukVbCFCdp7h1TDrf/rguQJvfQ1evv3ExQ== ARC-Message-Signature: i=2; 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=BVkA0h4GzXBX/VtMhxZj/dVneagVg1l2RlpXIs+QAGU=; b=K9j2dzf4f5O3XoLB1Rn3JGUs/+7acwgsS4i6Rh462wLJtwZAgq3NV1nwVqr4ekNBRapb0ywJPKdgNEcLrNozWpIjaQxtLZBxXwNO18o3dgmbsHmBY2FuCZW2hCweDD/TMJLH2N7DrDa+l5yi74c/F25HY/WVjCEzZS0UQQZXpG2aqPLiPHVn0+IexogRmWWqrTO7ZmGhkJX1Dp4jVNm5RZSrcQ4MjkHZrXz5oc14LIc4r6wm+1emEoRwzJ811+K7TD8TdX18Z5DWMrP6ce8Y4qv2Fn7WTIFd/Di70CGJ8f83R2zj09rwWXOgiTqqX95ueocI7N/2/hSJ/3pPv+onkw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BVkA0h4GzXBX/VtMhxZj/dVneagVg1l2RlpXIs+QAGU=; b=GwnLIGZWhLhwQVjpdOKqFZ8w4QSwz2An2l6bk95S19AvPeQN3BlkB6VX7b+JVsdFikSBC030GNgEAg3i0+6nybLKuMeTC+Om4DMvsbJyAoSakhzi2WGVWtxKmKup5u1q+RuV0Ocv7iHpMnt4kFoM61o25Nf3YZCjAx3DyVzTCYE= Received: from AM0PR10CA0030.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::40) by AS8PR08MB5880.eurprd08.prod.outlook.com (2603:10a6:20b:29f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.11; Fri, 3 Jul 2026 19:00:59 +0000 Received: from AMS1EPF00000048.eurprd04.prod.outlook.com (2603:10a6:208:17c:cafe::18) by AM0PR10CA0030.outlook.office365.com (2603:10a6:208:17c::40) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.181.11 via Frontend Transport; Fri, 3 Jul 2026 19:00:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AMS1EPF00000048.mail.protection.outlook.com (10.167.16.132) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.181.6 via Frontend Transport; Fri, 3 Jul 2026 19:00:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EUIu4oHKbiZDd2+onHFss5iOBJ7tTcX4i5Jqr4yCumdqqxEqbeSmKWpfg3C0dmE/nlkax0QLoA6ZG3ZnbW9bG0O7rD9zwcNRpeAl3/7JEUyex5rmQCYmFX6wxuxJzt2lKrtGBhBFUD16jHvJg7PqJ0qsl5+m+M6tuFRvaxK9bizU00aY5JN/fuGLwFQx1tBndj0hvso3tUPEXW1m2ubQUpaVWx52twx8fUQV5EymQaSEwxZy2bcqMI8zUHFNgyGjZH/WmOHuK1+/rVzGRTsrlf7+hjRpdsHqPHYk3ooCipPF7IkabMvePTtyr7MpFx0KuRtMdHTF3j1yC1e7Zn9LHw== 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=BVkA0h4GzXBX/VtMhxZj/dVneagVg1l2RlpXIs+QAGU=; b=kmF6o0srqkeVwqSkMuZocFNfOxqwg1FES5KTW9SHKpdR+53Hksf91IRUO1EkiTrRMK6ULvQ406jeSOrTp4ao47ZZOoJaZ+zS2xga36p7zRIWsosvxArZ4TJgAn2mmezr/4xJFSCALVGuJlHdnsaDfWbj2Q1icS4O1dnzFNu2J7y0HTyZSxTXNcmLIZaMIv3wagHmLpaS6N4uCPGef+kL6zkl5YzJYUUES7x5dnZ9qMedj1Dbx+oWuLXIzPLc4gTGcJ6PQAtdMzqMxTqgL5REoZDEyqTfk1uS9zBYkZNIUF795xZFErpKCWLX67CqJUXDrjmB4S9ztXmizthmyRdPaA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BVkA0h4GzXBX/VtMhxZj/dVneagVg1l2RlpXIs+QAGU=; b=GwnLIGZWhLhwQVjpdOKqFZ8w4QSwz2An2l6bk95S19AvPeQN3BlkB6VX7b+JVsdFikSBC030GNgEAg3i0+6nybLKuMeTC+Om4DMvsbJyAoSakhzi2WGVWtxKmKup5u1q+RuV0Ocv7iHpMnt4kFoM61o25Nf3YZCjAx3DyVzTCYE= Received: from DU7P189CA0019.EURP189.PROD.OUTLOOK.COM (2603:10a6:10:552::19) by DU0PR08MB9630.eurprd08.prod.outlook.com (2603:10a6:10:449::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.10; Fri, 3 Jul 2026 18:59:55 +0000 Received: from DB5PEPF00014B99.eurprd02.prod.outlook.com (2603:10a6:10:552:cafe::71) by DU7P189CA0019.outlook.office365.com (2603:10a6:10:552::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.181.11 via Frontend Transport; Fri, 3 Jul 2026 18:59:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by DB5PEPF00014B99.mail.protection.outlook.com (10.167.8.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.6 via Frontend Transport; Fri, 3 Jul 2026 18:59:54 +0000 Received: from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX03.Arm.com (10.240.25.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Fri, 3 Jul 2026 18:59:53 +0000 Received: from PF4S4363.arm.com (10.1.37.19) by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Fri, 3 Jul 2026 18:59:53 +0000 From: Matthieu Longo To: CC: Luis Machado , Luis Machado , Andrew Burgess , "Matthieu Longo" Subject: [PATCH v1 5/8] gdb support: add gdb::replace algorithm for iterators and ranges Date: Fri, 3 Jul 2026 19:58:50 +0100 Message-ID: <20260703185853.450440-6-matthieu.longo@arm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260703185853.450440-1-matthieu.longo@arm.com> References: <20260703185853.450440-1-matthieu.longo@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B99:EE_|DU0PR08MB9630:EE_|AMS1EPF00000048:EE_|AS8PR08MB5880:EE_ X-MS-Office365-Filtering-Correlation-Id: 58b4773f-f3f2-41db-5fa0-08ded9356b1a x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|82310400026|376014|23010399003|1800799024|36860700016|11063799006|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info-Original: HBD/Lwd4M0ym7SjULBDlR2LaE2puuDVRG+RhsFo31cyygfgx7uE418NGSNNlpJ95mVLbU6wdz/KPq7mx0jr9+KlMAja8pwqZ/aS3Z9ptBstibFl6aDkhE5akCV/mpn1/+sijd2BEPeXW3GEwAsPEZc8z0osxS8NnHJ8x8F4kJy9eDLiIeDC4FUnABhPA9esrGhoE2Adefw1kJE+1/+M2Ml8uhMQFLl1D/C7LQ73cdk0i6WKnsgbawlwTCvybY0mQDnMYhU5lng0pSqhgue1fcgVERPXr4svehmZPM3EeUYaxTKfwKLg3+awjvPSRY3SXF/v6kBE+Rpfm5NjbqNW+HAqyWUWCOK3zA/reXuXD+/N881lm4AO0XKd04SnfAjst1cyCvO5DLuGxV1Of4KYXYZxEvHGZJALD+GT0ZdKrsL0lZMJR6ZW7SDpfF9SSmyrYljuas6UnkpqbBUOfv9wKdqq3R508fSisEd8IyaP5V5F4iWI/CD7AttOBjzom78560USXE75rZIfk3QMAfIKJkZ1wU1F526iSKt8Gy1vztlBJwyLeYRHkKYxlox2j9VhcT8qMbK148UdDnRVN/9KI0Jv/SoFI/d/hihUF6V8T+C+OZ/0xu+mO5/aHodJ0ugXoG6Q0GixeU1vWSp2tcNx2g83BtePhm3L0fDTmq/Sz375rsHm1xAW2+Ir94g/zDOPQa0HHxY37V8hLSyrsm7UaBQ== X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(82310400026)(376014)(23010399003)(1800799024)(36860700016)(11063799006)(56012099006)(18002099003)(22082099003); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: KNCT4FSYmiEokMysH0ZTvwGNdYIm7bxUgJXwKTjSab+eksj5nW7AvKvZOehXAPpOJ5RF9+ZrZnJlSb9NPYk27b8M/i04+Sep4hUHVSTKq6FhIFlnhHwRLrIHy50S34hWxPv8VPya6mpFRDKdxJHOCcojycRD8Jn12bW8VSzou3Pxbrf+lPu9w6sFYca9R5Qf8fxiZ37VwatA6+zIvqnHlZ+xULmmMEh5PgzR5VJl5XxOtIkKgy7RY47T0aIvF9d6Kbwd8Ln8CRh1Pey4LlURSarwZesrpk2k+FM01hOz2rcuTzAE8bAA1N5isXygWhZ/CQj4cec40Rc1T/dU6xItGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9630 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS1EPF00000048.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 26515cc4-3e9d-4a8c-6b8a-08ded9354494 X-Microsoft-Antispam: BCL:0; ARA:13230040|23010399003|376014|14060799003|82310400026|1800799024|36860700016|35042699022|18002099003|22082099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: F/XAXM3sxUyKrcybsRxKFmfrMYQeb6k5qaUiVXiEOzjlMeMn9ftKDkc7f5QPNkbBx6doL59XvoGfuFx3qq9LJpH1w+g7JirP5oQ9VdM2q+Z43WlUuv74lkK5kOcW1TT88/qWyFHPVyOvWqLGExEzwC6HEI3tbWmgxB2fVZKFs3QZkpKlcHUqHv3Ff7UGkw8Ft/1nlLm/adoAHu3pt7HIPWeLpUodfbwbn/p/zrH6jaEq2qWbEpIfxgXOWF0FuIDDN8fx30Ktr4bRJyNUwySv7kyxlecha9JLj6tlLjFDnPmG6UGS8pGhPNpBzsnqzgJx9aT5XaWdLz5lfJOsoW+bAo9B87LdXX2Yjo6SxD+CJZpr6YMcVFRioxj2Yjxlfogtnl56UV08DEOpKd53PXJki75N3wHWYj68rVSBO9OQ8YYW79EyPZaMmAAMi05secXjMsnLeajTfwm8+96KDPef4Y1uLWxlki2fPAZj0spJo7pYc0rTTV6HbkNG4+DoMr7edEo6DdXhFeCABjZOgUh5mwaz5OGq0LS9BfwaTDQY1ien+EYJNsq1D4wDvuKnLgcevh8LaD497BneqzUvgtX8RZfWwIlnHAQes3b7dS2Y43jA8rjPfwBy9o1woT6JduTMW9WdLYqEP8Xzz5K4BWpa8xTYS53zPa6V2F2KLfu5+S7nK8qV/WHoQ851k+YgQmnNODNZv3AH/1O5d/tS7Dh/6w== X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(23010399003)(376014)(14060799003)(82310400026)(1800799024)(36860700016)(35042699022)(18002099003)(22082099003)(11063799006)(56012099006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gLA4TC4kKisrLAVQldDLl/H8Qij4jKB1e46avZwNDBU0uHsGG8CApK8grxxPR9xk0Acw2tnFDgxMZSCA5YCdn9IZBV1l2vwl6ka27PZ7pJuet3CoSrOo38FtexXXcpMl8CBnhuNxNRJ8l9u6c572KU1l3ni6HOYPBBKJD+xv3Agztc+FpIVNEJUNXGgBJxM58n8uH+VfqgsPQf1efOZ0FnMtpBP4mvlF/jWQr3zZ4dQIgA/2SjWwWCM6vMlWF3ud33WHSEUVuE5/wjjAX+5JsmfhteZR5NxAqcSZVEP9YPkKzWMQOazTvql0CnDPaAwJYvo0sa2Aonwr/VsBTsv5BuBje0JITfkmSKzpKA+e1jyGUQx5Rxyty2a6VZgbdGNv4Avbi3RWB+Gk3sXSBZgc0xXkHgY8iSX8voar0Sx2acwiRBkOD/fLSBQ2cXHWYHU7 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2026 19:00:58.5686 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 58b4773f-f3f2-41db-5fa0-08ded9356b1a X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AMS1EPF00000048.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5880 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 Add a gdb::replace helper that mirrors the behavior of std::replace for iterator pairs, together with a convenience overload accepting a range. This provides a C++17-compatible replacement for the C++20 std::replace/ std::ranges::replace algorithms, allowing callers to use a consistent interface until GDB transitions to C++20. The helpers should be removed once the C++ standard library implementations become available. --- gdbsupport/array-view.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gdbsupport/array-view.h b/gdbsupport/array-view.h index e7baea728d4..fa2b8889614 100644 --- a/gdbsupport/array-view.h +++ b/gdbsupport/array-view.h @@ -226,6 +226,32 @@ void copy (array_view src, array_view dest) std::copy_backward (src.begin (), src.end (), dest.end ()); } +/* Replace all occurrences of a value in the provided range. + + Note: this helper is a reimplementation of std::replace, only available + from C++20 onwards, and consequently, should be removed once we switch + to C++20. */ + +template +void replace (ForwardIt first, ForwardIt last, + const T &old_value, const T &new_value) +{ + for (auto it = first; it != last; ++it) + { + if (*it == old_value) + *it = new_value; + } +} + +/* Replace all occurrences of a value in the provided array view. + Note: from C++20 onwards, std::ranges::replace should be used instead. */ + +template +void replace (Range r, const T &old_value, const T &new_value) +{ + replace (r.begin (), r.end (), old_value, new_value); +} + /* Compare LHS and RHS for (deep) equality. That is, whether LHS and RHS have the same sizes, and whether each pair of elements of LHS and RHS at the same position compares equal. */ -- 2.55.0