From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2112.outbound.protection.outlook.com [40.107.117.112]) by sourceware.org (Postfix) with ESMTPS id C37443857418; Wed, 11 May 2022 04:19:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C37443857418 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bw2A214422eie7MMkUcHqjAZaFN2x3x0/TNpl4J07WBMDM31ZN6Nsf+N0/jOEPEeg03+wkFJbcWwN2wtV4eOVzppXIEpoV5LrlJ2ZhLru6xJfCdfAiMgqKArCjhbkDuYxC5EcXVJ24Uq0/7Yc87al/oIvUt0GdL5YI3NXJ0HR2U+fizLTR6XfYv1HJWgOCwj96imw8keJGmrKpSDn8sjvr/SaJFVolluxLuL8BAJzO7uMJs68i8o4aIPhezR9r+N9suXxOXDEuFvHXUFl6GoNebkN+a0xmtTq/fu0AzrpsUF4LAgO+/8xX56CfaV0r2mCROmSWWChZ0Mze7Low+B1Q== 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=GWKS1RZ/Bw1R8U6+tujSVWjPZ66RqP/p2Z49W+IWlcU=; b=eq2zfLCdD+ozh6iIEajzO89PywE1jb0InZoNKV6SVzedYMQYbTZ47LnmQ5VCkak0SfJkLrTYXW53oxSFSZwbEkNFbDpbXNZvmPFyX5FgBxuGU4MS5HeGrC9Cs6/fpJK7E+79qeRut8BzKCJkQUwlg6SwV86NVtTzdv9o/1DqgWrzolrwEJDyFdq2U2jm/abq65CKUtMyCNebUagaIKctCMSm1B77dsaKu1QAI7NtLM/5a28EGcA4mRZGpB7wnUPG4jI1g2ys4CD8PM5TNY9pKtV6kbmBpGswT/LlDNL7+LfaJz0/eoeYuiaH5XOdaWjpZ0Yi839Poa4jmUkUqDz6cA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=espressif.com; dmarc=pass action=none header.from=espressif.com; dkim=pass header.d=espressif.com; arc=none Received: from HK0PR04MB2530.apcprd04.prod.outlook.com (2603:1096:203:4e::12) by SG2PR04MB2841.apcprd04.prod.outlook.com (2603:1096:4:1a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.22; Wed, 11 May 2022 04:19:05 +0000 Received: from HK0PR04MB2530.apcprd04.prod.outlook.com ([fe80::c034:9043:24be:28ab]) by HK0PR04MB2530.apcprd04.prod.outlook.com ([fe80::c034:9043:24be:28ab%4]) with mapi id 15.20.5227.023; Wed, 11 May 2022 04:19:05 +0000 From: Jakob Hasse To: Jonathan Wakely CC: "gcc-patches@gcc.gnu.org" , "libstdc++@gcc.gnu.org" , Rocha Euripedes , Ivan Grokhotkov Subject: [PATCH v2] libstdc++: fix pointer type exception catch [PR105387] Thread-Topic: [PATCH v2] libstdc++: fix pointer type exception catch [PR105387] Thread-Index: AQHYZOvbrBGfZfmDsUaFSuFRF4VLwg== Date: Wed, 11 May 2022 04:19:04 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: suggested_attachment_session_id: 1a010d45-adf6-f738-4c6c-619deee368b3 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4fc72d0b-d29d-4945-a51c-08da330562aa x-ms-traffictypediagnostic: SG2PR04MB2841:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: um5n/EPJ+L/ntBUcS5pZSq/DztF+tCMbcHii3p9OTaymqIGfIZTtoZZKFW+OReD11e1A2V1itDjgYzUfMvYD77Gdv5V+32MDKhwypNXn4mvRn7rFu5ofSvY8XSmy5YSiAUNINRIu2jdI3qlf8UV92BSdkPo4DYEnq0YkR6IJ0dfqm9LE4khe5+oEUCly+R9BIklNgnLZzcwMCFMof4U5TNL6d167PQPu6MzCqg71jmE/WdeP7jFzeGR2XWPUKqaxqfg/oURshg/PwkviThyZTVb6EzP2WfkvuxAnoFRlRAKiH7+TDZMqpOZOEMZHLEJxXbvXw/A4KTenaFWM+aDlF2kPPTlVSk0sKFFVfr3b62orIp1Q1KxpmTiL8JUQA0gn7uXybCIfqTowwAsD9MkOr2s0gtqQJhCgk9cJJgO8KYgJeOSIqMkQPiLgigv+VGhxE7drVbmnOJ9wyC1ql9c23ry8L+IJ6k4IW87DK3X+Q9F7VdZ0ve+EU+MM6aaXQEE4skIo7IrWuOGYPY+oR4Or0ZqB/iBwL4x3eQNEHaYLn1qy0cyYdfYSmSeOy4QcrsbgnyJHrVUp53loT683qtMgb4uzj6n8p+EdipcOIGC5kIvF4Z9swGPiTLBkzFFYHKPwQ1ujeTKEfyLiW3W9u3OmJr6RbLE7Oc/czB5VeYv95VJ/vYcuf1LvtskT4tXvuRTl4OWKkEiTI/+6RjU6c2iZLw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HK0PR04MB2530.apcprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6916009)(54906003)(107886003)(9686003)(83380400001)(8936002)(38100700002)(186003)(86362001)(38070700005)(508600001)(99936003)(71200400001)(26005)(6506007)(7696005)(122000001)(316002)(2906002)(55016003)(66556008)(66946007)(8676002)(66446008)(66476007)(64756008)(76116006)(4326008)(33656002)(44832011)(19627405001)(52536014)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?6tD9cXg6JPB5WkZV1depd29EOSEhzw0SZ1wIdK8fpXCySzPY8I5RODD+K4?= =?iso-8859-1?Q?lCCcroF4ogjE+GRhfAT1cjXBOzgtNpWg5TyllSM3u0d72fpy4jzeNkmjkR?= =?iso-8859-1?Q?1/CzONvuWus1gaYZ/jHElNfc9OtG3ZQ6o4F30qM1ReinVMSevOxmLJTqlM?= =?iso-8859-1?Q?Acn4fGiCg/Gy/x33+l7gOEncrmalkpevDewYVdxTCFzCF2Xocrvc9E6vLK?= =?iso-8859-1?Q?ZA2Mr//MqHhgxlJuCbFT3/6fWyiLpANSASDIAsm2s3BH1KlE68CS0jW741?= =?iso-8859-1?Q?sdOzn8FlL0H4BJjltvQdwdpgk8kgaRUf0Q/z8XL18FZDyVHXnC8jHS5fyH?= =?iso-8859-1?Q?BGIwONsWUdjt9NBZPl3BtEDnJh6S2ocPYy/2uVwmCb0IB0Xxa3OdnGQiA3?= =?iso-8859-1?Q?/3PNUGr3nV6tUbLVz1+3LiLd5bT1Rue4g9GkLw/ZOQR/vTIXWT557f77Sb?= =?iso-8859-1?Q?VsFmT92bD+gpvqXt/RD5NcD4syvIMXXH0k4xbvHvlvFfpmOoUszq5VGhgU?= =?iso-8859-1?Q?XHFsxEcGxsmsBl+emeg0PuRRbrjxPsZEl3zLnJW4fwvgk90oJZEjglfYho?= =?iso-8859-1?Q?uQiy1dPTMSZ5aCwKhKBSJpkQAhT/6wIKeO0Y3jcRYgSJktxZKKMCXucShs?= =?iso-8859-1?Q?4IdlDvSWcc47j61Ry1fp9YqtoITs/sJ5nB8LwmZZmr//PVa0hqzknx2k1/?= =?iso-8859-1?Q?oNWO6uzRkbluy1VKLFFVQ2kUuEbBZ+8c4gqUiltYDEh9KN1k9KlQQH9o/s?= =?iso-8859-1?Q?DfeydEBTtu0OKKs3ie3F523UlLhBBXo2ep4+9sAFsL446wR2FlLOH8HzhX?= =?iso-8859-1?Q?iNQJMjUDXt6xXcN6Tl3wRmjPP/DweZp9UedlG8odTlpJRhij/ahOSNfci6?= =?iso-8859-1?Q?JDcRtzYxQ27h0aPJNsMqgJdncxB9q8uaCyvySMi/Amx/Qvb5AqedCTmj9H?= =?iso-8859-1?Q?09jsK2CBdaD0Byq57RQHtTJzEGkuKf5bdWPMm3iVAJcfgM4vq0to/xb67t?= =?iso-8859-1?Q?BoXl9wEjXJZfZbzoaWWNxsJjU896BBB3K6fliwwuIr/fBIxC3vxNpslfex?= =?iso-8859-1?Q?J9hoyU1JMi2INrsJ8RFRefsMVLhzxm4WZ9xtKMYbIu6l5mjNigEWsGk+2B?= =?iso-8859-1?Q?uaUrhFxgi9idhqrbYIfsYNmPXVwoJW3x9neFcOEf8/qkaFuZr++gQW9UP4?= =?iso-8859-1?Q?0KAVBx+7BAj96wPudPfKKEDnobZMz3zoRqabdmb1NHaBspsevi55d5WKl5?= =?iso-8859-1?Q?SJooLKPgSph8z1+Wd2YGdVJK0CEPqli24gql3xWyLbda2NYwYZToro1mMw?= =?iso-8859-1?Q?x6WMVhG5dawT6diNSeV1UViexa/XsyuzXtz5ya4DQM739D13eIIxPLUoXa?= =?iso-8859-1?Q?nMVUGW3ivVvleZ/kpxlxgGsXI6v5dMnZDiPYAwRYAoK2m7ncR1KoAHY0V3?= =?iso-8859-1?Q?SFIl0Rh96y+dk3O0GyaioqRMBgoD2Q9WD93joCWFMe/jjbHyQFN7Aitp/M?= =?iso-8859-1?Q?LpQhJ/BLcazo2VVBlNgJCp43W/Yn4ikYQyFhYug/tTuYMFzyZ81zJBBrDk?= =?iso-8859-1?Q?fCzWJfFF2AcRXaSdf3pTBOqjZa5+MSNc+FCkcPAIFm3nwxk0qh50DIfDew?= =?iso-8859-1?Q?zAfDBEJV/W6jBFi+dIHyFCbhxgyIM3+tPTBBv/w8vlJX1SyaarKYcg3G1V?= =?iso-8859-1?Q?OFnqDpGESuZc5dbGsbvgN2MSUwQoT6AO8g0CJ6CEXDavTr/nyBAyDOBWJ2?= =?iso-8859-1?Q?1X18fzAa10CreIPQYKVR4VW9ZhkZL5+BwN0Td/GxQm3MXOCy91Deb+wC6f?= =?iso-8859-1?Q?sn+vbWLpxQ=3D=3D?= Content-Type: multipart/mixed; boundary="_004_HK0PR04MB25302046E85360F752A87EC2E4C89HK0PR04MB2530apcp_" MIME-Version: 1.0 X-OriginatorOrg: espressif.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: HK0PR04MB2530.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4fc72d0b-d29d-4945-a51c-08da330562aa X-MS-Exchange-CrossTenant-originalarrivaltime: 11 May 2022 04:19:04.9393 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5faf27fd-3557-4294-9545-8ea74a409f39 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZuOGHc7q7le36xxeaUq3SGuJ9KCyTCYelo/39DWZlHC7Jw8EimEbtXnYxWtXBzLNGpn6x1/ZstOF7tzuPs32DJwGP8prgbjarGSQDSbu+t4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR04MB2841 X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, URI_HEX autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 May 2022 04:19:13 -0000 --_004_HK0PR04MB25302046E85360F752A87EC2E4C89HK0PR04MB2530apcp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Jonathan, Thanks for fixing the tests and the guidance regarding the patch! I rebased= the patch on top of that commit (b6b66006787b0991e94f15c7b5c56403f1eb85fb)= and fixed all issues (I believe) which you pointed out. I also added the o= riginal reproducer to the test case as you suggested. I configured as before with ../configure -prefix=3D/usr --enable-languages=3Dc,c++ --enable-multiarch -= -host=3Dx86_64-linux-gnu --build=3Dx86_64-linux-gnu --target=3Dx86_64-linux= -gnu --enable-cxx-flags=3D-fno-rtti and an additional configuration with -frtti instead to check nothing else b= reaks. Now the test results look much clearer: Without RTTI before applying patch: =3D=3D=3D libstdc++ Summary =3D=3D=3D # of expected passes 14560 # of unexpected failures 5 # of expected failures 95 # of unsupported tests 702 Without RTTI after applying patch: =3D=3D=3D libstdc++ Summary =3D=3D=3D # of expected passes 14562 # of unexpected failures 5 # of expected failures 95 # of unsupported tests 702 With RTTI before applying patch: =3D=3D=3D libstdc++ Summary =3D=3D=3D # of expected passes 14598 # of unexpected failures 2 # of expected failures 95 # of unsupported tests 683 With RTTI after applying patch: =3D=3D=3D libstdc++ Summary =3D=3D=3D # of expected passes 14600 # of unexpected failures 2 # of expected failures 95 # of unsupported tests 683 That looks logical to me. I think ideally a test for the pointer-to-member case should also be added.= .. --_004_HK0PR04MB25302046E85360F752A87EC2E4C89HK0PR04MB2530apcp_ Content-Type: text/x-patch; name="0001-PATCH-libstdc-fix-pointer-type-exception-catch-no-RT.patch" Content-Description: 0001-PATCH-libstdc-fix-pointer-type-exception-catch-no-RT.patch Content-Disposition: attachment; filename="0001-PATCH-libstdc-fix-pointer-type-exception-catch-no-RT.patch"; size=4793; creation-date="Wed, 11 May 2022 04:17:00 GMT"; modification-date="Wed, 11 May 2022 04:19:04 GMT" Content-Transfer-Encoding: base64 RnJvbSBjOTI3MWY4MzRkNmUwMWNjMjY5NDEyYTAyY2RiMGQ5ZDI2ZGNkYjFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtvYiBIYXNzZSA8MHhqYWtvYkB1c2Vycy5ub3JlcGx5Lmdp dGh1Yi5jb20+CkRhdGU6IFR1ZSwgMjYgQXByIDIwMjIgMTI6MDM6NDcgKzA4MDAKU3ViamVjdDog W1BBVENIXSBbUEFUQ0hdIGxpYnN0ZGMrKzogZml4IHBvaW50ZXIgdHlwZSBleGNlcHRpb24gY2F0 Y2ggKG5vIFJUVEkpCiBbUFIxMDUzODddCgpQUiBsaWJzdGRjKysvMTA1Mzg3CgpfX3BiYXNlX3R5 cGVfaW5mbzo6X19kb19jYXRjaCgpLCB1c2VkIHRvIGNhdGNoIHBvaW50ZXIgdHlwZSBleGNlcHRp b25zLApkaWQgbm90IGNoZWNrIGlmIHRoZSB0eXBlIGluZm8gb2JqZWN0IHRvIGNvbXBhcmUgYWdh aW5zdCBpcyBhIHBvaW50ZXIKdHlwZSBpbmZvIG9iamVjdCBiZWZvcmUgZG9pbmcgYSBzdGF0aWMg ZG93bi1jYXN0IHRvIGEgcG9pbnRlciB0eXBlIGluZm8Kb2JqZWN0LiBJZiBSVFRJIGlzIGRpc2Fi bGVkLCB0aGlzIGxlYWRzIHRvIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uOgpTaW5jZSBhIHBvaW50 ZXIgdHlwZSBpbmZvIG9iamVjdCBoYXMgYWRkaXRpb25hbCBmaWVsZHMsIHRoZXkgd291bGQKZW5k IHVwIGJlaW5nIHVuZGVmaW5lZCBpZiB0aGUgYWN0dWFsIHR5cGUgaW5mbyBvYmplY3Qgd2FzIG5v dCBhIHBvaW50ZXIKdHlwZSBpbmZvIG9iamVjdC4KCkEgc2ltcGxlIGNoZWNrIGhhcyBiZWVuIGFk ZGVkIGJlZm9yZSB0aGUgZG93bi1jYXN0IGhhcHBlbnMuCgpOb3RlIHRoYXQgYSBjb25zZXF1ZW5j ZSBvZiB0aGlzIGNoZWNrIGlzIHRoYXQgZXhjZXB0aW9ucyBvZiB0eXBlCnBvaW50ZXItdG8tbWVt YmVyIGNhbm5vdCBiZSBjYXVnaHQgYW55bW9yZS4KCkluIGNhc2UgUlRUSSBpcyBlbmFibGVkLCB0 aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9ibGVtIGJlY2F1c2UKUlRUSS1iYXNlZCBjaGVj a3Mgd291bGQgcnVuIGJlZm9yZSBhbmQgcHJldmVudCBydW5uaW5nIGludG8gdGhlIGJhZApkb3du LWNhc3QuIEhlbmNlLCB0aGUgZml4IGlzIGRpc2FibGVkIGlmIFJUVEkgaXMgZW5hYmxlZCBhbmQg ZXhjZXB0aW9ucwpvZiB0eXBlIHBvaW50ZXItdG8tbWVtYmVyIGNhbiBzdGlsbCBiZSBjYXVnaHQu CgpsaWJzdGRjKystdjMvQ2hhbmdlTG9nOgoKCSogbGlic3VwYysrL3BiYXNlX3R5cGVfaW5mby5j YyAoX19kb19jYXRjaCk6CgkqIHRlc3RzdWl0ZS8xOF9zdXBwb3J0LzEwNTM4Ny5jYzogTmV3IHRl c3QuCgpTaWduZWQtb2ZmLWJ5OiBKYWtvYiBIYXNzZSA8amFrb2IuaGFzc2VAZXNwcmVzc2lmLmNv bT4KLS0tCiBsaWJzdGRjKystdjMvbGlic3VwYysrL3BiYXNlX3R5cGVfaW5mby5jYyAgIHwgIDcg KystCiBsaWJzdGRjKystdjMvdGVzdHN1aXRlLzE4X3N1cHBvcnQvMTA1Mzg3LmNjIHwgNjEgKysr KysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJzdGRjKystdjMvdGVzdHN1aXRlLzE4 X3N1cHBvcnQvMTA1Mzg3LmNjCgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2xpYnN1cGMrKy9w YmFzZV90eXBlX2luZm8uY2MgYi9saWJzdGRjKystdjMvbGlic3VwYysrL3BiYXNlX3R5cGVfaW5m by5jYwppbmRleCA3ZTU3MjBiODRhMy4uOTM0ZTA0OWE0ZTAgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMr Ky12My9saWJzdXBjKysvcGJhc2VfdHlwZV9pbmZvLmNjCisrKyBiL2xpYnN0ZGMrKy12My9saWJz dXBjKysvcGJhc2VfdHlwZV9pbmZvLmNjCkBAIC03NCw3ICs3NCwxMiBAQCBfX2RvX2NhdGNoIChj b25zdCB0eXBlX2luZm8gKnRocl90eXBlLAogICAgIC8vIFRoZXJlZm9yZSB0aGVyZSBtdXN0IGF0 IGxlYXN0IGJlIGEgcXVhbGlmaWNhdGlvbiBjb252ZXJzaW9uIGludm9sdmVkCiAgICAgLy8gQnV0 IGZvciB0aGF0IHRvIGJlIHZhbGlkLCBvdXIgb3V0ZXIgcG9pbnRlcnMgbXVzdCBiZSBjb25zdCBx dWFsaWZpZWQuCiAgICAgcmV0dXJuIGZhbHNlOwotICAKKworI2lmICFfX2NwcF9ydHRpCisgIGlm ICghdGhyX3R5cGUtPl9faXNfcG9pbnRlcl9wICgpKQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRp ZgorCiAgIGNvbnN0IF9fcGJhc2VfdHlwZV9pbmZvICp0aHJvd25fdHlwZSA9CiAgICAgc3RhdGlj X2Nhc3QgPGNvbnN0IF9fcGJhc2VfdHlwZV9pbmZvICo+ICh0aHJfdHlwZSk7CiAKZGlmZiAtLWdp dCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMThfc3VwcG9ydC8xMDUzODcuY2MgYi9saWJzdGRj KystdjMvdGVzdHN1aXRlLzE4X3N1cHBvcnQvMTA1Mzg3LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi41Y2VjMjIyYzMzNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnN0 ZGMrKy12My90ZXN0c3VpdGUvMThfc3VwcG9ydC8xMDUzODcuY2MKQEAgLTAsMCArMSw2MSBAQAor I2luY2x1ZGUgPHN0ZGV4Y2VwdD4KKyNpbmNsdWRlIDxjeHhhYmkuaD4KKyNpbmNsdWRlIDx0ZXN0 c3VpdGVfaG9va3MuaD4KKworLy8gVGVzdCBjYXNlcyBmb3IgUFIgbGlic3RkYysrLzEwNTM4Nwor CisvLyBUaGlzIHRlc3QgaXMgdG8gdHJpZ2dlciB1bmRlZmluZWQgYmVoYXZpb3IgaWYgdGhlIGJ1 ZyAxMDUzODcgaXMgcHJlc2VudAorLy8gaW4gdGhlIGNvZGUuIE5vdGUsIGhvd2V2ZXIsIGdpdmVu IHRoYXQgdGhlIGJ1ZyBpcyBwcmVzZW50LCB0aGlzIHRlc3QgcnVucworLy8gaW50byB1bmRlZmlu ZWQgYmVoYXZpb3Igd2hpY2ggY2FuIGFsc28gbWVhbiB0aGF0IGl0IHBhc3Nlcy4KKy8vIEl0IGhh cyBiZWVuIG9ic2VydmVkIHRvIGZhaWwgcXVpdGUgcmVsaWFibHkgb24geDg2XzY0LWxpbnV4LWdu dSBidXQgb25seQorLy8gZmFpbCBzcG9yYWRpY2FsbHkgb24gWHRlbnNhLCBkZXBlbmRpbmcgb24g dGhlIGNvZGUgcGxhY2VtZW50Lgordm9pZCBwb3J0YWJsZV90ZXN0KCkKK3sKKyAgYm9vbCBleGNl cHRpb25fdGhyb3duID0gZmFsc2U7CisgIHRyeSB7CisgICAgdGhyb3cgc3RkOjpydW50aW1lX2Vy cm9yKCJ0ZXN0Iik7CisgIH0gY2F0Y2ggKGNvbnN0IGNoYXIgKmUpIHsKKyAgICBWRVJJRlkoZmFs c2UpOworICB9IGNhdGNoIChjb25zdCBzdGQ6OmV4Y2VwdGlvbiAmZSkgeworICAgIGV4Y2VwdGlv bl90aHJvd24gPSB0cnVlOworICB9CisgIFZFUklGWShleGNlcHRpb25fdGhyb3duKTsKK30KKwor Ly8gVGhpcyB0ZXN0IHJlbGllcyBvbiB0aGUgdHlwZXMgZGVmaW5lZCBpbiB0aGUgZmlsZXMgdHlw ZWluZm8gYW5kIGN4eGFiaS5oCisvLyBJdCBpcyB0aGVyZWZvcmUgbGVzcyBwb3J0YWJsZSB0aGVu IHRoZSB0ZXN0IGNhc2UgYWJvdmUgYnV0IHNob3VsZCBiZQorLy8gZ3VhcmFudGVlZCB0byBmYWls IGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBoYXMgdGhlIGJ1ZyAxMDUzODcuCisvLworLy8gVGhpcyB0 ZXN0IGNhc2UgY2hlY2tzIHRoYXQgX19wYmFzZV90eXBlX2luZm86Ol9fZG9fY2F0Y2goKSBiZWhh dmVzCisvLyBjb3JyZWN0bHkgd2hlbiBjYWxsZWQgd2l0aCBhIG5vbi1wb2ludGVyIHR5cGUgaW5m byBvYmplY3QgYXMgYXJndW1lbnQuCisvLyBJbiBwYXJ0aWN1bGFyLCBfX3BiYXNlX3R5cGVfaW5m bzo6X19kb19jYXRjaCgpIHNob3VsZCBub3QgY2FzdAorLy8gdGhlIGdpdmVuIHR5cGUgb2JqZWN0 IGludG8gYSBwb2ludGVyIHR5cGUgYW5kIHRyeSB0byBhY2Nlc3MgdGhlCisvLyBleHRlbmRlZCBm aWVsZHMuCisKK3ZvaWQgbm9uX3BvcnRhYmxlX3Rlc3QoKQoreworICAvLyBDcmVhdGUgYSB6ZXJv LWluaXRpYWxpemVkIGJ1ZmZlciBmb3IgYWxsb2NhdGlvbiBvZiB0aGUgdHlwZSBvYmplY3QKKyAg dW5zaWduZWQgY2hhciBidWZmZXIgW3NpemVvZihfX2N4eGFiaXYxOjpfX2Z1bmRhbWVudGFsX3R5 cGVfaW5mbykgKiAyXSA9IHt9OworCisgIC8vIFVzZSBwbGFjZW1lbnQtbmV3IHRvIGNyZWF0ZSB0 aGUgZnVuZGFtZW50YWwgdHlwZSBpbmZvIG9iamVjdCBpbiB0aGUKKyAgLy8gZmlyc3QgaGFsZiBv ZiB0aGUgYnVmZmVyLiBXaGVuZXZlciB0aGF0IHR5cGUgaW5mbyBvYmplY3Qgd2lsbCBiZQorICAv LyBjYXN0ZWQgdG8gYSBwb2ludGVyIHR5cGUgaW5mbyBvYmplY3QsIHRoZSBleHRlbmRlZCBmaWVs ZHMgb2YgdGhlCisgIC8vIHBvaW50ZXIgdHlwZSBpbmZvIG9iamVjdCB3aWxsIGJlIGluIHRoZSBz ZWNvbmQgaGFsZiBvZiB0aGUgYnVmZmVyCisgIC8vIGFuZCBoZW5jZSBiZSBndWFyYW50ZWVkIHpl cm8uCisgIF9fY3h4YWJpdjE6Ol9fZnVuZGFtZW50YWxfdHlwZV9pbmZvICpwX2Z1bmRfaW5mbyA9 IAorICAgICAgICAgICAgbmV3KGJ1ZmZlcikgX19jeHhhYml2MTo6X19mdW5kYW1lbnRhbF90eXBl X2luZm8oImZ1bmRfdHlwZSIpOworCisgIF9fY3h4YWJpdjE6Ol9fcG9pbnRlcl90eXBlX2luZm8g cHRyX2luZm8oInB0cl90eXBlIiwgMCwgcF9mdW5kX2luZm8pOworCisgIC8vIF9fZG9fY2F0Y2gg aXMgZGVjbGFyZWQgcHJvdGVjdGVkIGluIF9fcG9pbnRlcl90eXBlX2luZm8sIGJ1dCBwdWJsaWMg aW4KKyAgLy8gdHlwZV9pbmZvLCBzbyB3ZSB1cGNhc3QgaXQgaGVyZQorICBzdGQ6OnR5cGVfaW5m byAqYWJzdHJhY3RfcHRyX2luZm8gPSBzdGF0aWNfY2FzdDxzdGQ6OnR5cGVfaW5mbyo+KCZwdHJf aW5mbyk7CisgIFZFUklGWShhYnN0cmFjdF9wdHJfaW5mby0+X19kb19jYXRjaChwX2Z1bmRfaW5m bywgbnVsbHB0ciwgMSkgPT0gZmFsc2UpOworfQorCitpbnQgbWFpbigpIAoreworICBwb3J0YWJs ZV90ZXN0KCk7CisgIG5vbl9wb3J0YWJsZV90ZXN0KCk7CisgIHJldHVybiAwOworfQotLSAKMi4y NS4xCgo= --_004_HK0PR04MB25302046E85360F752A87EC2E4C89HK0PR04MB2530apcp_--