From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2087.outbound.protection.outlook.com [40.92.65.87]) by sourceware.org (Postfix) with ESMTPS id CCB3F3858024; Mon, 20 Mar 2023 17:45:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CCB3F3858024 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=hotmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=hotmail.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ri5c5Z2rd1QM6bRNwL7R7CSFm/wB0n45cHbp3RTn8w7cRFIwcBPIFVZS4cens6mT9JcM8mq4QkD9Is2MGm4bbhEFn2UYhOsmoehW5BH0WgSnjxLTPuAWGjT+NSHcTISNreoGVm3dTM2ZBfiDPcqRtBrPbEf+G0qG2f05ui3Q5DQGQP7Al+qSjQnhOVWfTKLwMVACwXuP7UbhWZ/7QzVXd9yXzMc8uwLbiJqnQGGyhV740G/oJvVgq4TApP93cbdBZJEcbVACSyNo1KbUhKQZeXJ98utYRVll/NV4hUhD2xeRtifFzZ9jJmdAXEGRbxg2rv69drfnc6pSewcEYyBZjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=NWlXms7jVLUlPLGebP3QJ/jCxyTu/6Ff0aYe8g61BZA=; b=MvzOdPmmt1gEQw56wWB0gc9PQlB0SZ04EYmwxvZ3ijf0BZdCwoWZCmn4gY+T7DWeMHAqmDQDipSIWVp5QzayimtErwqCxy8QxtijAfU2MmuRZTLizO/EQaQENl1kdbuYqIIHymUwBz8QVqpYM+0nK4OUiHSpv+amXgOSMkuv1kmJOpZ2knBYULrohp5u1zdpoRpmTpPkKx0ooD7gbHU9Id7PWadGDhwkyai7Xlh1CDI0HoSONRf0a69OkRkdednW8HYy0s/SgLRxO2rXxWx/2z5p+03oKlQu/VIFUtRL/wHw9IzwYHNNeQT87TqzJBafMJ0NLYukPIv4x+F8Qp9DzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NWlXms7jVLUlPLGebP3QJ/jCxyTu/6Ff0aYe8g61BZA=; b=nJ3c+zzLF+GCZsiFxoof+JPRoMdFhiNDGzG+Mc7ItMtJiBN+z5A6PoghbwaWRM22WtIlrFVbtvRpQa/kvGK0uHSxH+8M0MDiSu6523qUtPdG31LPkcud1pJjG6GvHZ1xZhK8PZ0EqNjfp1lB4i7o2/2czbEr4UpiZuOwEVDZY+xS3ZnBAZKWiH3TOn854odHAq3fYkZweAjn/zahMi1JJQ7zHWy7h4ShkUNC8dVAWQdyZrJLHp6XaDEvdUnG9yzPQDn6Yhgz6WvI+7Y5JEcBge/oOzLD7OTtfbHPX+2QVNme3bNAe7DOhwbxj+VSRXHxIZLfghJkdWnzapIXU9wzIA== Received: from AS1P192MB1620.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:4a0::7) by PAXP192MB1462.EURP192.PROD.OUTLOOK.COM (2603:10a6:102:289::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.24; Mon, 20 Mar 2023 17:45:51 +0000 Received: from AS1P192MB1620.EURP192.PROD.OUTLOOK.COM ([fe80::2418:1ef3:17f5:341f]) by AS1P192MB1620.EURP192.PROD.OUTLOOK.COM ([fe80::2418:1ef3:17f5:341f%7]) with mapi id 15.20.6178.037; Mon, 20 Mar 2023 17:45:50 +0000 Message-ID: Subject: Re: [PATCH] libstdc++: Fix handling of surrogate CP in codecvt [PR108976] From: Dimitrij Mijoski To: Jonathan Wakely Cc: gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org Date: Mon, 20 Mar 2023 18:45:47 +0100 In-Reply-To: References: Content-Type: multipart/alternative; boundary="=-+VU3PAGTyatoNBnuoLBb" User-Agent: Evolution 3.44.4-0ubuntu1 X-TMN: [CcuSTedwMDjoRj/lvEISbMZSf6ljw6jz] X-ClientProxiedBy: VI1PR0901CA0089.eurprd09.prod.outlook.com (2603:10a6:800:7e::15) To AS1P192MB1620.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:4a0::7) X-Microsoft-Original-Message-ID: <78712d44240a258752b3de14359cef07c67e951a.camel@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS1P192MB1620:EE_|PAXP192MB1462:EE_ X-MS-Office365-Filtering-Correlation-Id: ba7e59ca-5546-4a0b-de19-08db296af1b4 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kGCX0QQtfYTUdIKMxfvFJNGe6RaXPjj7AscgjGpvhbMzqL4ZwarPD1L7k9wPqMDbsShKyxnhjSv9kkeZbBOLsbyC0uXIS4MIsPYYb51D/HHxmV9aGis0ERw05SoDtrJiNo1CaALlM4KIrmtIE3v17c9AIW2w3OdLcjpSyfDNl0oqc7K3oW5VcNrIQ+g6FlaEEuRdE3A3PrQYOVPrmxH9bnhl2M1Tc7nOCmKGqMnbb+oNAZewm0ISrgXNdsegOTm07wFt5Ow0EueFRBtNgWp1sGbBLyasyNeS2vbPFt3hIyI5gHBoRrvyJgLcJzIFHsjB+lv8GBeBl6mqXu2pl9oYf/l8au1HUdSnohm3iqejjFG2FGFz8jcb+iwRDpDsk6ShgtPix9oRZEUSdtyQlzbph3Bcmum3WurxrqzqxFOqiCa+7XOXCgAyECay2nVHVyQtCsvwiWSXqH0OcclfRztFd/wcEjfX3kO0/vo+dBKQ2k6OfW+zVWqz+Qt6EFewanM/Mc31wKyNtB96w27y9cMKODvcOHcEduTRT1EPPlpVxgvs5VZvqCrVh6LfHSHjgE1yfEU3paDmv0FESvBmvH5P7V7MqKSvt4T6fuGYWUFh7OXPTV+EpE6+85SQRQM74AtK8llXWryptvh5n3ba4dO9FE7FCjRf0nHe1Fpddl372A0= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MFpuM2g4R0dRQ2J1MHZnaWRwYm1kMU8xYXFoZG51TmUvNkg4Nlc4OXhXOFpt?= =?utf-8?B?L0d1RVAwNllvMW1teWVnb01JS0JUYUhTMlZkUjBzQm9KaDR4Qk1kclQzdUVX?= =?utf-8?B?bXhaZkZsMEpWeWVlbUNXVCtiOFB3Ynh2MkRiRTVCS0h2aU0ycC9FUG5pczdZ?= =?utf-8?B?OVNsNi83LzlnODdSUHJJcjdLeTBDWDNFUlZBUmxtQzVzTGk1OWxjSER1czJx?= =?utf-8?B?dkF1NlZMOGhzRTBNR3VVcUFPSDV2RmFIcTJneCtnVVQzakI0K2F5MFhWdjQ1?= =?utf-8?B?b016djFUV3V6S0NnMmtTbDhLSlVkQTEwd2ViK0c2bVh6ZG5FZEVZamtXR0NC?= =?utf-8?B?dTlHTmZ5ZjdCb1o5cUtocElmbGVQbk54UlFid0dzUXZ1TzFEUTkyVitNN2Zj?= =?utf-8?B?R0R1SmlLNDlvOEw1Y3FhdTMwbXRoZ1A3SVpRQUxVRDJmQm1LOXNRS2VpcDd6?= =?utf-8?B?Z005WjFTWWsvaThBVStFdTdLdWdsVnIwcm8wVHRDU1A4N2lTK0dMN3lHR25C?= =?utf-8?B?bVhEalIyVUFCbkhUckdiZWxlbUJyL0FxMjl0VEw4UkoyNmxIMUJISVJ2VU9U?= =?utf-8?B?ZlZwd0ZHNFppeEpabXd1T3RZUEk2dDlBbmRtQ1RkcUhQS2pmVS9MekVJVXho?= =?utf-8?B?ZTYyRVVYbHVtTDJFUjhia2NOUEhRZm5WWUtKVjhwOThiZ3Rudld4Tmpoc3NS?= =?utf-8?B?eHNwR21xeDVXcnhNWHB4RkhoejZZdHBja2JPK0k2Yk8rWkxnc1dSOURQRWFX?= =?utf-8?B?ZHhDMFpqdmMxb3RyWlNmamFRekU1elN2ejIwRXowNEVEVVVkb0Q1eUxuVEIr?= =?utf-8?B?MFVjMXZJMmFGWjgwOTN4S2Y3ajhZSDc4QTVmRHJLVHpzUkxERWRFdzBpSGxm?= =?utf-8?B?bkczRmhqcU9UankxWW9CUVdRTU1lNHdJTU1uSVpYU1hCeDdxU2Z4aHd3U1BX?= =?utf-8?B?b1hvRkRuNFVJSllJVFV1dDM0OWJ1L3JNV0ZXUnNDemNZTCtzYloxbjcrVWlS?= =?utf-8?B?R20xNnk2NFRjRHJYS0RROGlDSHg4VWZkejR2cmFIWEo1TWFLbll6SnVaU0Rl?= =?utf-8?B?ZHIzMEE1VklFWUlTOUxQMWdEdnovT0xOVjhpNXB3MUM0bnM5QWNLdVZMMTFz?= =?utf-8?B?OVV4RFVGZ1owWCs0MERnTkJ2RmVCZmZQUE1OeTMwUW5vbGd1WGlpWkZJcUs2?= =?utf-8?B?MkdKYkV1UXJWYzBtSkp1aVJCQXQzbzE0MUcyY3BVMW9DZUJoL3E1YVlPYUIy?= =?utf-8?B?YXVubDZ0TUZjcFdCV2pKUFgzZU9JQlRxNWhIVFZ0SnprWFFhZFBtdXEyM0N1?= =?utf-8?B?eTJpOHdHMFlmTkdFbUhIMEVldENBMVhacGhuQndVTmNockszK2syMHpkZHVh?= =?utf-8?B?TkJzenFZcFdUV21aOFBLOWo3bnV6KzdmbkJHM1FYSmptMDhHSHN5S2tMYnhM?= =?utf-8?B?WTB1QW9aVVV4UFpaNjlscnAvQW9JUWt5S3U1M1RjY2VpQzlDdEtWckdZS0tY?= =?utf-8?B?VjFwTDZmT1ZJRU8rTVl5dXpRdFpkV2p5bERXakYrL2lDSzBaK2QxZW4zRjdT?= =?utf-8?B?R1JjRk1LL1ZsN0RLMjhNWU5MME1scG0vZlZMSGw3R09McEtqUmNsTjdlWGht?= =?utf-8?B?MGJZN2NtSmJuVEFLem9Vak1wVTRBaitjVk9zOVd4ZGFWUEdzTEp0eDVsbFow?= =?utf-8?Q?IP/2PUJJ1Dwkja1gESJY?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-fb43a.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: ba7e59ca-5546-4a0b-de19-08db296af1b4 X-MS-Exchange-CrossTenant-AuthSource: AS1P192MB1620.EURP192.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2023 17:45:50.3849 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXP192MB1462 X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HK_RANDOM_ENVFROM,HK_RANDOM_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --=-+VU3PAGTyatoNBnuoLBb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2023-03-20 at 15:21 +0000, Jonathan Wakely wrote: >=20 > Thanks, the patch looks OK to my uninformed eye, but I'm seeing a new > regression: >=20 > /home/jwakely/src/gcc/gcc/libstdc++- > v3/testsuite/22_locale/codecvt/codecvt_utf16/79980.cc:86: void > test06(): Assertion 'result =3D=3D u"from_bytes failed"' failed. > FAIL: 22_locale/codecvt/codecvt_utf16/79980.cc execution test Most likely this regression appears because the change related to the case when odd number of bytes are given to std::codecvt_utf16::in(). The old test 79980.cc:86: void test06() is probably wrong and it should be changed. > Also, I see that libc++ fails some of your new tests the same way as > current libstdc++ does: >=20 > unicode: /home/jwakely/src/gcc/gcc/libstdc++- > v3/testsuite/22_locale/codecvt/codecvt_unicode.h:298: void > utf8_to_utf32_in_error(const std::codecvt mbstate_t> &) [InternT =3D char32_t, ExternT =3D char]: Assertion `res = =3D=3D > cvt.error' failed. > Aborted (core dumped) >=20 > Does that mean they have the same problem? Or is the test wrong? Or > is your patch implementing something that contradicts the > requirements of the standard? I think it's that libc++ has the same > handling of surrogates, but I'd like to be sure that's right. See bug=C2=A0https://github.com/llvm/llvm-project/issues/60177=C2=A0. It ca= n be reproduced with the testsuite codecvt_unicode without this patch, it is not related to surrogates. GCC had that bug too but I already fixed it with my previous big patch on the codecvts. --=-+VU3PAGTyatoNBnuoLBb--