From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id IdxlB5UgTWqkLisAWB0awg (envelope-from ) for ; Tue, 07 Jul 2026 11:51:49 -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=q8qagdx1; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=q8qagdx1; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 190531E098; Tue, 07 Jul 2026 11:51:49 -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 9316B1E024 for ; Tue, 07 Jul 2026 11:51:48 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 59F444BA23E8 for ; Tue, 7 Jul 2026 15:51:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 59F444BA23E8 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=q8qagdx1; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=q8qagdx1 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010029.outbound.protection.outlook.com [52.101.84.29]) by sourceware.org (Postfix) with ESMTPS id C58A64BA7983 for ; Tue, 7 Jul 2026 15:51:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C58A64BA7983 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 C58A64BA7983 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=52.101.84.29 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1783439474; cv=pass; b=fDunbAVGxDLNTLgV1TMiOGBxCr6vtYAqi/oExtKJLM2QT0xlyTH+aPUsn1X8XfESKNnYhLhgDR+vks3/PmPQR1RKKbsjKRbAyBp63mHgYN3M9EvKS7fSslAm+HdPLpaCLwfyb0KDewa3MxjL4OogQN+lkhsx3PshYCRAKtzGfT4= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1783439474; c=relaxed/simple; bh=R7zP1tFqTpgPedscZg4zjgWfKKt+M34jRH1aIByOjLA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=moaQ+bVvHFfls7mGQl1kNdg8GzvQU1BZeW1MZnw45i1LYTL+vEsk1+5fSbdj89gCq9L/HzwrSgi2axYexCihm6H0Vgz6vEnSZ/pf8WkMjSYLVPpGKNK28c7CBYmjrS6tkJMcVX7RHt0obyUlo12yVhfirSl7tjMGfWbacbCl94U= 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=q8qagdx1; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=q8qagdx1 DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C58A64BA7983 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=yKYggSWee3tiAAC7uxCcnzuv3Vj2ClZl/x+zw7cgGnvurZY9folUMwGK/kRzO6cC3BJpYJ7TETz9rhecM8kNJmvkiOARX5+hxpFjb1dOtn+nRhdMKnL5yxYHiN5V9fKdTI1xXChqtukbBUW8rlviVgjlP8MhsNlRSyw0HIEdmCSoiemOYF/ZUtxz7gWAT0ny+hAnOitEMFu2+94GbI/3b4NHARs5J/0bkysECzPs0PjSZlpluDKONH7u2/lVlqPKCAAGUXTrUEQbNG79ncD1pS+se+cC8xFw9yMo7H4gZhYoRNZoB9T8pG+hpDYdMxpZDv+8OoDcTVDxXofb2zi/3Q== 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=ljbTr9A8+W9TWzjraT0gy3izHoy8xtqi7f71C3zGgKs=; b=haZFFI1k25nyDJVB8ce1Y2MlCQRdxSdM1HoF/hM8dSFb3dcP++juz1EsoUhMMGXZ94S7ZguhQ78BNY6fgi2F4NQ0I6Np9TxQXxqwWYane2BBk+2TQ252FRQb0jsQAXbxFdup3mTW5em/iwjSPXb4WG3Q/eZqoBKM1mpSDqlmBdx8M6WAEnrzfqcZKiLtHd2+uVPWlW2QUibS/wnNydQbHibsgr/hlEEQhYlJQJHQG3gvOAFXrsbp7jblIFFBy/IMnkBLTK03oE+rP3/KMnzkOnUQK6MCd+kK0MMOR4z5CZe7n4iQlPMV8p2/NLzujmjADFhsC5utQ5opYe4AKX660w== 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=ljbTr9A8+W9TWzjraT0gy3izHoy8xtqi7f71C3zGgKs=; b=q8qagdx1B1ixN0SWS0bJpKM6GoN0RvAvwEm//3j+k6nyI3TzE/3R11OmdPGTZQ748kJauaXsAVOzXz68FmK53o4QuB6XemFhOx4AuCogFsVEJhIMupK0nXR5r1t9h6RWwqm6XdDo7haFYWq8Px5jw7KHYCOEn9k1NLvPDbDCwqQ= Received: from AM9P195CA0002.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::7) by DB8PR08MB5452.eurprd08.prod.outlook.com (2603:10a6:10:111::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.13; Tue, 7 Jul 2026 15:51:07 +0000 Received: from AM2PEPF0001C711.eurprd05.prod.outlook.com (2603:10a6:20b:21f:cafe::15) by AM9P195CA0002.outlook.office365.com (2603:10a6:20b:21f::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.181.9 via Frontend Transport; Tue, 7 Jul 2026 15:51:07 +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 AM2PEPF0001C711.mail.protection.outlook.com (10.167.16.181) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.181.6 via Frontend Transport; Tue, 7 Jul 2026 15:51:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gLzZ4idyAX1BJ0LulWiVEOt4JabiHYatGkc7rhH7tuLJDXGhdJSvBYtCzQvVGTTNua5Hn/c7HJ+tuCh830WJcX+ZTzARwEPrVthA78FVNvpgmqh3t509NY5UIqL/X2r3EGUm3nO71st0V+p/214xlg1LHEeXuaDNy9EUXTubDwUEEREYaRyMAiDihHK3a+7bjkD2uvvxs+JeXuBMV5S0EEhlH2F9D4JsVdhFTVv2x92GJbe3ffSBIH8Px4e1MymGFXlX8RO1uHays7PCsmVSGZ+67Fb0bpT34kFrYWgLBb5V9C0L6wwzyS43RQSglbhU2PmI3XTHnnSFQdXw8CwjBg== 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=ljbTr9A8+W9TWzjraT0gy3izHoy8xtqi7f71C3zGgKs=; b=VSUF03kG8d8Kjq7xqTxreQFSXT1XxkMi9kGfPelTLcwc0Isnsfw3d4dmxASbaJCRB5wZViXImwa5Hwn4sTd9jnuD5LZx8UnuofavygH8LpqH1uxIfkiKzRsaYGAY5qzBgfVLbv91s1Hki1NcszSqNdUJESGj4QZCKcJi8U3hTRCPaWJ6IvDxP9g91QgJLJQQns2A17prdd8pCCGq1QRplM6p9JPtfRD3vH93bXFkTYYJUK8eJR43Kub6oK5WFMVZrTBogizcqm00J5IWcawDQAXDWCEEoSbr19q9Ck3NDjPmvXA0hbejW3Ct7br9J+ckM0fx6v0z+2jH6TqvLKvYug== 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=ljbTr9A8+W9TWzjraT0gy3izHoy8xtqi7f71C3zGgKs=; b=q8qagdx1B1ixN0SWS0bJpKM6GoN0RvAvwEm//3j+k6nyI3TzE/3R11OmdPGTZQ748kJauaXsAVOzXz68FmK53o4QuB6XemFhOx4AuCogFsVEJhIMupK0nXR5r1t9h6RWwqm6XdDo7haFYWq8Px5jw7KHYCOEn9k1NLvPDbDCwqQ= Received: from DU2PR04CA0210.eurprd04.prod.outlook.com (2603:10a6:10:28d::35) by DB9PR08MB9489.eurprd08.prod.outlook.com (2603:10a6:10:458::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.10; Tue, 7 Jul 2026 15:50:04 +0000 Received: from DB5PEPF00014B9A.eurprd02.prod.outlook.com (2603:10a6:10:28d:cafe::74) by DU2PR04CA0210.outlook.office365.com (2603:10a6:10:28d::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.181.13 via Frontend Transport; Tue, 7 Jul 2026 15:50:04 +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 DB5PEPF00014B9A.mail.protection.outlook.com (10.167.8.167) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.6 via Frontend Transport; Tue, 7 Jul 2026 15:50:04 +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; Tue, 7 Jul 2026 15:49:47 +0000 Received: from PF4S4363.arm.com (10.57.40.47) by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Tue, 7 Jul 2026 15:49:47 +0000 From: Matthieu Longo To: CC: Luis Machado , Luis Machado , Andrew Burgess , "Yury Khrustalev" , Pedro Alves , "Tom Tromey" , Matthieu Longo Subject: [PATCH v1 04/10] gdb support: add gdb::replace algorithm for iterators and ranges Date: Tue, 7 Jul 2026 16:48:54 +0100 Message-ID: <20260707154900.94542-5-matthieu.longo@arm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260707154900.94542-1-matthieu.longo@arm.com> References: <20260707154900.94542-1-matthieu.longo@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B9A:EE_|DB9PR08MB9489:EE_|AM2PEPF0001C711:EE_|DB8PR08MB5452:EE_ X-MS-Office365-Filtering-Correlation-Id: 941d79a4-68ef-4b42-3f3e-08dedc3f8f09 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|36860700016|376014|23010399003|82310400026|1800799024|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info-Original: pVvL1YD5CUjIsMEWs8I5zBaTyNAeBKxNAeI9okwFCSEgxQfZ4SGCzNiZFmwUbxH0T2nsrZUVAOiOgaAjeSwhXMiDDSCVaCNGZ6M7Phu4s7U1h6JHxe8wvzC5fK+snfCztjrkq+Is0VTcX4ZSerbCkwJLMMVNCktCt0+2gdTtCp1LKWLLHzv4z4of8l96SkbVz/0N7LK7ChuxjWtlsQp7obVWEhe4Cv10QIBY6FmRX2J2t0pj7aJZKRTb5VlYOygPao+fXLed8aslcNk1ECorlWwlCTEeEsCcgFLmlCKCIhBX289eskcA+JvshXW+Qu8a3x576fiszA8PdK8bXXgXMQDoSIlwIyXVkyyhihHdRwRBw0Ovuo7/lQq6s1/ZErkC/xFK5LyGEsF1yJiXSDTUBSu3r73fvpjuXB3/4BfldsyFXz9Ef4WFhSHiBi9mfxhys2qRZ0hONJYXuzluG0RO5NW7FROZVylUYHHf5zBCo/17/HKhbYdxPDW4gAk7N1jUKSmV8A9VVczgcOCIR1lhug6IAQzSeVoLYVsGBRqE0Cu/YfwmLyf+FnO1DUc5eMaQtwTWgqHKsoXvDixqJYL8X0X1byjtQBSY8Zm6sKNBCMmyq93LslvqUNj3XZBNknuYkzIN21rEXM5LfOuxP42n7GKJIx6UYM/lYfBg4V7vwwJT9xWnix91A5BguZnjUzKlMFQp1XllaLqV4kooKr7/Qg== 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)(36860700016)(376014)(23010399003)(82310400026)(1800799024)(56012099006)(11063799006)(18002099003)(22082099003); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: DLc5DRpU4F/+jg7j0fFHej4ATEjwFIyQQi9PvhdZcenLTEO4DRE1EGzFYM8WOQQ0OBefTxcoe5NTDL8jzECADAseKS1KyeO93jE8vSGiCKnLPrLtajyZBNoNHGL2mRQae1yztOHweaPc6ydSe0KmQRWXwd1mo5P1AVUZn4w8PDqTLte06Y13EtQNlJ4+f9DsHwIV35B2CbsDijesB9GMmyOxo42+6mpf0DmZwKBDRB4S2xSyveUdHL9AOoczfzppxtXJrnwWpedXInQypH8rtv+zP3efg6hbgwQ/gZLhM81qZOXDPwcxF6ZX3vYmXKQEapmmCGtCMq5vVp1LbO1WHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9489 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM2PEPF0001C711.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 9744cc99-8560-4a5a-fdff-08dedc3f698a X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|23010399003|14060799003|82310400026|1800799024|35042699022|36860700016|18002099003|22082099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: lqYJbtLBC8vS+iK9mz9ZdsRaK4rem1BBTqH1wRYeRn3s8mJiGxh0Di8dDYwHbaEkY/KBTAkyUFOWn6llXUCKxTpBGlkRJz4YYOdhx3pweKvGhXGtHFKLLjl9USAxHECGP4fnija91St2jCLZ3WW6nM9t4HsXMRvgtpg8Eb56/8SDQeMNZ7Kuu1GXTE/j5T5HadRdgMx7Yd2n7zlYUMt9hAge6PNbRXr6hkFQvZRqZu2Cjis09SzRbup/v16/VVwasSKI3Yy0eh7GJyHLc1zFqAJc4jZBqCOv64iHQNj4DasQRTpMzbS5GH1hEuLi8lS4OPCEVqoW/XJlzrufRQSVeRMxHObZ9ammbpSKt7sBOyTfcIbT7Xi2h/CVx1chQR1nv0hJ4Lq9DAjjP3SK2z9M9h9SymqzxSFJkn0vQr8gv9hd3NKhsubGKkwzfH7PWr4GEP74rpzY3QMusU63nuQuUW4G5QBZGkqYuGz0BvApKd5QWdlWJP+oIRLsz2hIg22QFXGg3BNMxAirR0Yvk6b9wWfq7Smnvvj1cbawFyDmwWUgPfyUAXK9IUqQ5c1Hb43bAimB4wMLdYNt83Ni0L3GxtDarENUVyc1VOimv/Vif/5nfKZJCa7HCADZk10EHCn29+LruIhgZCpE+G2pRx2Nbp+bGOxi80Ge3KktLE9xkn7JAfc+SlHVFuF1nBs+61w+lBTabzyHq59s2QIq5awoww== 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)(376014)(23010399003)(14060799003)(82310400026)(1800799024)(35042699022)(36860700016)(18002099003)(22082099003)(11063799006)(56012099006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1y64met47eWifYhZ0fl5BxHVs2rHmIX66Kc64e7tZJBMlxQczA8M7PUGP5u61XnL6XbXYE58dbclGj9F/pdwHQkXC/ROGpmdN/RD8nFOyVWK2UGmBNii2nSnnWqRi+3Bb14ogkmin+6TvzB1/dgqskTp9Q/0rNqoUPiRHf/416OTI4bPARX4l4qhOjkaeKGbT2/ccRVXPONs6aAXRxbHpNee9JyZgnpEZZaWAZArTjThk4fMTaVZ5v3bDIMIOcvr7A6fxKYSMslDjRma+Hr2Y6q05GFtyEFbvErfUeK01JArghbBUzHuKM+ufCMRHAKAaA+rGhvnsdwMlMyjCU9LG+zGkiMj2gfzz9dhSDFtTT8MHGPXljICMQqIUmQPy4m/rH5FzyRySG5gyqCgjqJg/quZ8WoVTY7A1AptWeUhCz8VyyRduH3JRr4PWjlvDR5Z X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2026 15:51:07.3095 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 941d79a4-68ef-4b42-3f3e-08dedc3f8f09 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: AM2PEPF0001C711.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5452 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 8431d7f5add..61119d7a8e2 100644 --- a/gdbsupport/array-view.h +++ b/gdbsupport/array-view.h @@ -225,6 +225,32 @@ void copy (gdb::array_view src, gdb::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