From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21654 invoked by alias); 25 Jun 2019 08:31:36 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 21361 invoked by uid 89); 25 Jun 2019 08:31:35 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=ratio, arise X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Received: from mail-eopbgr150052.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (40.107.15.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 25 Jun 2019 08:31:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0dXdcCfnEj1avhT7i2To9+xV2MTLrGS0Az8ESGno1k8=; b=RMXa/I36En8dUp8FeZClpjA8DpHDVmdEHek5mvhgh3phFG8OZ6tgWVFV8FzRYh8sIQzCMbwJAUacHSPAs4NlyJA6aK7p5M148oSvGCifZ1wSpKkOcvqHPGGItwKZE2QWDLjZD0vjJegloyoVVfwAFlO+m5Q2bqO6s3u/kEaE+Rc= Received: from DB6PR0802MB2309.eurprd08.prod.outlook.com (10.172.228.13) by DB6PR0802MB2278.eurprd08.prod.outlook.com (10.172.227.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.16; Tue, 25 Jun 2019 08:31:30 +0000 Received: from DB6PR0802MB2309.eurprd08.prod.outlook.com ([fe80::745e:3739:5072:48]) by DB6PR0802MB2309.eurprd08.prod.outlook.com ([fe80::745e:3739:5072:48%2]) with mapi id 15.20.2008.014; Tue, 25 Jun 2019 08:31:30 +0000 From: Tamar Christina To: "gcc-patches@gcc.gnu.org" CC: nd Subject: [GCC][middle-end] Add rules to strip away unneeded type casts in expressions (2nd patch) Date: Tue, 25 Jun 2019 08:31:00 -0000 Message-ID: <20190625083126.GA19632@arm.com> authentication-results: spf=none (sender IP is ) smtp.mailfrom=Tamar.Christina@arm.com; x-ms-exchange-purlcount: 1 x-ms-oob-tlc-oobclassifiers: OLM:7219; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 Content-Type: multipart/mixed; boundary="_002_20190625083126GA19632armcom_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Tamar.Christina@arm.com X-IsSubscribed: yes X-SW-Source: 2019-06/txt/msg01526.txt.bz2 --_002_20190625083126GA19632armcom_ Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Content-length: 2473 SGkgQWxsLA0KDQpUaGlzIGlzIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZiBteSBH Q0MtOSBwYXRjaCB3aGljaCBtb3ZlcyBwYXJ0IG9mIHRoZSB0eXBlIGNvbnZl cnNpb24gY29kZQ0KZnJvbSBjb252ZXJ0LmMgdG8gbWF0Y2gucGQgYmVjYXVz ZSBtYXRjaC5wZCBpcyBhYmxlIHRvIGFwcGx5IHRoaXMgdHJhbnNmb3JtYXRp b24gaW4gdGhlDQpwcmVzZW5jZSBvZiBpbnRlcm1lZGlhdGUgdGVtcG9yYXJ5 IHZhcmlhYmxlcy4NCg0KVGhlIHByZXZpb3VzIHBhdGNoIHdhcyBvbmx5IHJl Z3Rlc3RlZCBvbiBhYXJjaDY0LW5vbmUtbGludXgtZ251IGFuZCBJIGhhZG4n dCBkb25lIGENCnJlZ3Jlc3Npb24gb24geDg2XzY0LXBjLWxpbnV4LWdudSBv bmx5IGEgYm9vdHN0cmFwLiAgVGhlIHByZXZpb3VzIHBhdGNoIHdhcyBhcHBy b3ZlZA0KDQpoZXJlIGh0dHBzOi8vZ2NjLmdudS5vcmcvbWwvZ2NjLXBhdGNo ZXMvMjAxOC0xMi9tc2cwMDExNi5odG1sDQpidXQgYmVmb3JlIGNvbW1pdHRp bmcgSSByYW4gYSB4ODZfNjQtcGMtbGludXgtZ251IHJlZ3Rlc3QgdG8gYmUg c3VyZSBhbmQgdGhpcw0Kc2hvd2VkIGFuIGlzc3VlIHdpdGggYSBERlAgdGVz dC4gSSBIYXZlIGZpeGVkIHRoaXMgYnkgcmVtb3ZpbmcgdGhlIG9mZmVuZGlu ZyBjb252ZXJ0Lg0KVGhlIGNvbnZlcnQgd2FzIGp1c3Qgc2F5aW5nICJrZWVw IHRoZSB0eXBlIGFzIGlzIiBidXQgbWF0Y2gucGQgbG9vcGVkIGhlcmUgYXMg aXQgdGhpbmtzDQp0aGUgbWF0Y2ggZGlkIHNvbWV0aGluZyBhbmQgd291bGQg dHJ5IG90aGVyIHBhdHRlcm5zLCBjYXVzaW5nIGl0IHRvIG1hdGNoIGl0c2Vs ZiBhZ2Fpbi4NCg0KSW5zdGVhZCB3aGVuIHRoZXJlJ3Mgbm90aGluZyB0byB1 cGRhdGUsIEkganVzdCBkb24ndCBkbyBhbnl0aGluZy4NCg0KVGhlIHNlY29u ZCBjaGFuZ2Ugd2FzIHRvIG1lcmdlIHRoaXMgd2l0aCB0aGUgZXhpc3Rpbmcg cGF0dGVybiBmb3IgaW50ZWdlciBjb252ZXJzaW9uDQppbiBvcmRlciB0byBz aWxlbmNlIGEgd2FybmluZyBmcm9tIG1hdGNoLnBkIHdoaWNoIHRob3VnaCB0 aGF0IHRoZSB0d28gcGF0dGVybnMgb3ZlcmxhcHMNCmJlY2F1c2UgdGhlaXIg bWF0Y2ggY29uZGl0aW9ucyBhcmUgc2ltaWxhciAodGhleSBoYXZlIGRpZmZl cmVudCBjb25kaXRpb25zIGluc2lkZSB0aGUgaWZzDQpidXQgbWF0Y2gucGQg ZG9lc24ndCBjaGVjayB0aG9zZSBvZiBjb3Vyc2UuKS4NCg0KUmVndGVzdGVk IGFuZCBib290c3RyYXBwZWQgb24gYWFyY2g2NC1ub25lLWxpbnV4LWdudSBh bmQgeDg2XzY0LXBjLWxpbnV4LWdudSBhbmQgbm8gaXNzdWVzLg0KDQpPayBm b3IgdHJ1bms/DQoNClRoYW5rcywNClRhbWFyDQoNCkNvbmNyZXRlbHkgaXQg bWFrZXMgYm90aCB0aGVzZSBjYXNlcyBiZWhhdmUgdGhlIHNhbWUNCg0KICBm bG9hdCBlID0gKGZsb2F0KWEgKiAoZmxvYXQpYjsNCiAgKmMgPSAoX0Zsb2F0 MTYpZTsNCg0KYW5kIA0KDQogICpjID0gKF9GbG9hdDE2KSgoZmxvYXQpYSAq IChmbG9hdCliKTsNCg0KVGhhbmtzLA0KVGFtYXINCg0KZ2NjL0NoYW5nZUxv ZzoNCg0KMjAxOS0wNi0yNSAgVGFtYXIgQ2hyaXN0aW5hICA8dGFtYXIuY2hy aXN0aW5hQGFybS5jb20+DQoNCgkqIGNvbnZlcnQuYyAoY29udmVydF90b19y ZWFsXzEpOiBNb3ZlIHBhcnQgb2YgY29udmVyc2lvbiBjb2RlLi4uDQoJKiBt YXRjaC5wZDogLi4uVG8gaGVyZS4NCg0KZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VM b2c6DQoNCjIwMTktMDYtMjUgIFRhbWFyIENocmlzdGluYSAgPHRhbWFyLmNo cmlzdGluYUBhcm0uY29tPg0KDQoJKiBnY2MuZGcvdHlwZS1jb252ZXJ0LXZh ci5jOiBOZXcgdGVzdC4NCg0KLS0gDQo= --_002_20190625083126GA19632armcom_ Content-Type: text/x-diff; name="rb10277.patch" Content-Description: rb10277.patch Content-Disposition: attachment; filename="rb10277.patch"; size=11518; creation-date="Tue, 25 Jun 2019 08:31:29 GMT"; modification-date="Tue, 25 Jun 2019 08:31:29 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 15616 ZGlmZiAtLWdpdCBhL2djYy9jb252ZXJ0LmMgYi9nY2MvY29udmVydC5jDQpp bmRleCBkNWFhMDdiNTEwZTBlNzgzMWU4ZDEyMWIzODNlNDJlNWM2ZTg5MzIx Li45MjNlYjcwMzY2ZTZjMDUxNDFmYjE1ODBiYTZmODVlMzU0YWEzZjc2IDEw MDY0NA0KLS0tIGEvZ2NjL2NvbnZlcnQuYw0KKysrIGIvZ2NjL2NvbnZlcnQu Yw0KQEAgLTI5OCw5MiArMjk4LDYgQEAgY29udmVydF90b19yZWFsXzEgKHRy ZWUgdHlwZSwgdHJlZSBleHByLCBib29sIGZvbGRfcCkNCiAJICAgICAgcmV0 dXJuIGJ1aWxkMSAoVFJFRV9DT0RFIChleHByKSwgdHlwZSwgYXJnKTsNCiAJ ICAgIH0NCiAJICBicmVhazsNCi0JLyogQ29udmVydCAob3V0ZXJ0eXBlKSgo aW5uZXJ0eXBlMClhKyhpbm5lcnR5cGUxKWIpDQotCSAgIGludG8gKChuZXd0 eXBlKWErKG5ld3R5cGUpYikgd2hlcmUgbmV3dHlwZQ0KLQkgICBpcyB0aGUg d2lkZXN0IG1vZGUgZnJvbSBhbGwgb2YgdGhlc2UuICAqLw0KLQljYXNlIFBM VVNfRVhQUjoNCi0JY2FzZSBNSU5VU19FWFBSOg0KLQljYXNlIE1VTFRfRVhQ UjoNCi0JY2FzZSBSRElWX0VYUFI6DQotCSAgIHsNCi0JICAgICB0cmVlIGFy ZzAgPSBzdHJpcF9mbG9hdF9leHRlbnNpb25zIChUUkVFX09QRVJBTkQgKGV4 cHIsIDApKTsNCi0JICAgICB0cmVlIGFyZzEgPSBzdHJpcF9mbG9hdF9leHRl bnNpb25zIChUUkVFX09QRVJBTkQgKGV4cHIsIDEpKTsNCi0NCi0JICAgICBp ZiAoRkxPQVRfVFlQRV9QIChUUkVFX1RZUEUgKGFyZzApKQ0KLQkJICYmIEZM T0FUX1RZUEVfUCAoVFJFRV9UWVBFIChhcmcxKSkNCi0JCSAmJiBERUNJTUFM X0ZMT0FUX1RZUEVfUCAoaXR5cGUpID09IERFQ0lNQUxfRkxPQVRfVFlQRV9Q ICh0eXBlKSkNCi0JICAgICAgIHsNCi0JCSAgdHJlZSBuZXd0eXBlID0gdHlw ZTsNCi0NCi0JCSAgaWYgKFRZUEVfTU9ERSAoVFJFRV9UWVBFIChhcmcwKSkg PT0gU0Rtb2RlDQotCQkgICAgICB8fCBUWVBFX01PREUgKFRSRUVfVFlQRSAo YXJnMSkpID09IFNEbW9kZQ0KLQkJICAgICAgfHwgVFlQRV9NT0RFICh0eXBl KSA9PSBTRG1vZGUpDQotCQkgICAgbmV3dHlwZSA9IGRmbG9hdDMyX3R5cGVf bm9kZTsNCi0JCSAgaWYgKFRZUEVfTU9ERSAoVFJFRV9UWVBFIChhcmcwKSkg PT0gRERtb2RlDQotCQkgICAgICB8fCBUWVBFX01PREUgKFRSRUVfVFlQRSAo YXJnMSkpID09IEREbW9kZQ0KLQkJICAgICAgfHwgVFlQRV9NT0RFICh0eXBl KSA9PSBERG1vZGUpDQotCQkgICAgbmV3dHlwZSA9IGRmbG9hdDY0X3R5cGVf bm9kZTsNCi0JCSAgaWYgKFRZUEVfTU9ERSAoVFJFRV9UWVBFIChhcmcwKSkg PT0gVERtb2RlDQotCQkgICAgICB8fCBUWVBFX01PREUgKFRSRUVfVFlQRSAo YXJnMSkpID09IFREbW9kZQ0KLQkJICAgICAgfHwgVFlQRV9NT0RFICh0eXBl KSA9PSBURG1vZGUpDQotICAgICAgICAgICAgICAgICAgICBuZXd0eXBlID0g ZGZsb2F0MTI4X3R5cGVfbm9kZTsNCi0JCSAgaWYgKG5ld3R5cGUgPT0gZGZs b2F0MzJfdHlwZV9ub2RlDQotCQkgICAgICB8fCBuZXd0eXBlID09IGRmbG9h dDY0X3R5cGVfbm9kZQ0KLQkJICAgICAgfHwgbmV3dHlwZSA9PSBkZmxvYXQx MjhfdHlwZV9ub2RlKQ0KLQkJICAgIHsNCi0JCSAgICAgIGV4cHIgPSBidWls ZDIgKFRSRUVfQ09ERSAoZXhwciksIG5ld3R5cGUsDQotCQkJCSAgICAgY29u dmVydF90b19yZWFsXzEgKG5ld3R5cGUsIGFyZzAsDQotCQkJCQkJCWZvbGRf cCksDQotCQkJCSAgICAgY29udmVydF90b19yZWFsXzEgKG5ld3R5cGUsIGFy ZzEsDQotCQkJCQkJCWZvbGRfcCkpOw0KLQkJICAgICAgaWYgKG5ld3R5cGUg PT0gdHlwZSkNCi0JCQlyZXR1cm4gZXhwcjsNCi0JCSAgICAgIGJyZWFrOw0K LQkJICAgIH0NCi0NCi0JCSAgaWYgKFRZUEVfUFJFQ0lTSU9OIChUUkVFX1RZ UEUgKGFyZzApKSA+IFRZUEVfUFJFQ0lTSU9OIChuZXd0eXBlKSkNCi0JCSAg ICBuZXd0eXBlID0gVFJFRV9UWVBFIChhcmcwKTsNCi0JCSAgaWYgKFRZUEVf UFJFQ0lTSU9OIChUUkVFX1RZUEUgKGFyZzEpKSA+IFRZUEVfUFJFQ0lTSU9O IChuZXd0eXBlKSkNCi0JCSAgICBuZXd0eXBlID0gVFJFRV9UWVBFIChhcmcx KTsNCi0JCSAgLyogU29tZXRpbWVzIHRoaXMgdHJhbnNmb3JtYXRpb24gaXMg c2FmZSAoY2Fubm90DQotCQkgICAgIGNoYW5nZSByZXN1bHRzIHRocm91Z2gg YWZmZWN0aW5nIGRvdWJsZSByb3VuZGluZw0KLQkJICAgICBjYXNlcykgYW5k IHNvbWV0aW1lcyBpdCBpcyBub3QuICBJZiBORVdUWVBFIGlzDQotCQkgICAg IHdpZGVyIHRoYW4gVFlQRSwgZS5nLiAoZmxvYXQpKChsb25nIGRvdWJsZSlk b3VibGUNCi0JCSAgICAgKyAobG9uZyBkb3VibGUpZG91YmxlKSBjb252ZXJ0 ZWQgdG8NCi0JCSAgICAgKGZsb2F0KShkb3VibGUgKyBkb3VibGUpLCB0aGUg dHJhbnNmb3JtYXRpb24gaXMNCi0JCSAgICAgdW5zYWZlIHJlZ2FyZGxlc3Mg b2YgdGhlIGRldGFpbHMgb2YgdGhlIHR5cGVzDQotCQkgICAgIGludm9sdmVk OyBkb3VibGUgcm91bmRpbmcgY2FuIGFyaXNlIGlmIHRoZSByZXN1bHQNCi0J CSAgICAgb2YgTkVXVFlQRSBhcml0aG1ldGljIGlzIGEgTkVXVFlQRSB2YWx1 ZSBoYWxmIHdheQ0KLQkJICAgICBiZXR3ZWVuIHR3byByZXByZXNlbnRhYmxl IFRZUEUgdmFsdWVzIGJ1dCB0aGUNCi0JCSAgICAgZXhhY3QgdmFsdWUgaXMg c3VmZmljaWVudGx5IGRpZmZlcmVudCAoaW4gdGhlDQotCQkgICAgIHJpZ2h0 IGRpcmVjdGlvbikgZm9yIHRoaXMgZGlmZmVyZW5jZSB0byBiZQ0KLQkJICAg ICB2aXNpYmxlIGluIElUWVBFIGFyaXRobWV0aWMuICBJZiBORVdUWVBFIGlz IHRoZQ0KLQkJICAgICBzYW1lIGFzIFRZUEUsIGhvd2V2ZXIsIHRoZSB0cmFu c2Zvcm1hdGlvbiBtYXkgYmUNCi0JCSAgICAgc2FmZSBkZXBlbmRpbmcgb24g dGhlIHR5cGVzIGludm9sdmVkOiBpdCBpcyBzYWZlDQotCQkgICAgIGlmIHRo ZSBJVFlQRSBoYXMgc3RyaWN0bHkgbW9yZSB0aGFuIHR3aWNlIGFzIG1hbnkN Ci0JCSAgICAgbWFudGlzc2EgYml0cyBhcyBUWVBFLCBjYW4gcmVwcmVzZW50 IGluZmluaXRpZXMNCi0JCSAgICAgYW5kIE5hTnMgaWYgdGhlIFRZUEUgY2Fu LCBhbmQgaGFzIHN1ZmZpY2llbnQNCi0JCSAgICAgZXhwb25lbnQgcmFuZ2Ug Zm9yIHRoZSBwcm9kdWN0IG9yIHJhdGlvIG9mIHR3bw0KLQkJICAgICB2YWx1 ZXMgcmVwcmVzZW50YWJsZSBpbiB0aGUgVFlQRSB0byBiZSB3aXRoaW4gdGhl DQotCQkgICAgIHJhbmdlIG9mIG5vcm1hbCB2YWx1ZXMgb2YgSVRZUEUuICAq Lw0KLQkJICBpZiAoVFlQRV9QUkVDSVNJT04gKG5ld3R5cGUpIDwgVFlQRV9Q UkVDSVNJT04gKGl0eXBlKQ0KLQkJICAgICAgJiYgKGZsYWdfdW5zYWZlX21h dGhfb3B0aW1pemF0aW9ucw0KLQkJCSAgfHwgKFRZUEVfUFJFQ0lTSU9OIChu ZXd0eXBlKSA9PSBUWVBFX1BSRUNJU0lPTiAodHlwZSkNCi0JCQkgICAgICAm JiByZWFsX2Nhbl9zaG9ydGVuX2FyaXRobWV0aWMgKFRZUEVfTU9ERSAoaXR5 cGUpLA0KLQkJCQkJCQkgICAgICBUWVBFX01PREUgKHR5cGUpKQ0KLQkJCSAg ICAgICYmICFleGNlc3NfcHJlY2lzaW9uX3R5cGUgKG5ld3R5cGUpKSkpDQot CQkgICAgew0KLQkJICAgICAgZXhwciA9IGJ1aWxkMiAoVFJFRV9DT0RFIChl eHByKSwgbmV3dHlwZSwNCi0JCQkJICAgICBjb252ZXJ0X3RvX3JlYWxfMSAo bmV3dHlwZSwgYXJnMCwNCi0JCQkJCQkJZm9sZF9wKSwNCi0JCQkJICAgICBj b252ZXJ0X3RvX3JlYWxfMSAobmV3dHlwZSwgYXJnMSwNCi0JCQkJCQkJZm9s ZF9wKSk7DQotCQkgICAgICBpZiAobmV3dHlwZSA9PSB0eXBlKQ0KLQkJCXJl dHVybiBleHByOw0KLQkJICAgIH0NCi0JICAgICAgIH0NCi0JICAgfQ0KLQkg IGJyZWFrOw0KIAlkZWZhdWx0Og0KIAkgIGJyZWFrOw0KICAgICAgIH0NCmRp ZmYgLS1naXQgYS9nY2MvbWF0Y2gucGQgYi9nY2MvbWF0Y2gucGQNCmluZGV4 IGY5YmMwOTdjNDkxMjJiZjFiNGJjZjBiMTJiMDk4NDBkYWY3YjhmYmMuLjIy OGE2OWY5OWFlMDMxOGYwMzRiMmY3MTNlNTIyYWNkOWUwOTk1YWUgMTAwNjQ0 DQotLS0gYS9nY2MvbWF0Y2gucGQNCisrKyBiL2djYy9tYXRjaC5wZA0KQEAg LTQ4NzAsMzcgKzQ4NzAsMTE2IEBAIERFRklORV9JTlRfQU5EX0ZMT0FUX1JP VU5EX0ZOIChSSU5UKQ0KICAgIHRoZSBDL0MrKyBmcm9udC1lbmRzIGJ5IHNo b3J0ZW5fYmluYXJ5X29wIGFuZCBzaG9ydGVuX2NvbXBhcmUuICBMb25nDQog ICAgdGVybSB3ZSB3YW50IHRvIG1vdmUgYWxsIHRoYXQgY29kZSBvdXQgb2Yg dGhlIGZyb250LWVuZHMgaW50byBoZXJlLiAgKi8NCiANCi0vKiBJZiB3ZSBo YXZlIGEgbmFycm93aW5nIGNvbnZlcnNpb24gb2YgYW4gYXJpdGhtZXRpYyBv cGVyYXRpb24gd2hlcmUNCi0gICBib3RoIG9wZXJhbmRzIGFyZSB3aWRlbmlu ZyBjb252ZXJzaW9ucyBmcm9tIHRoZSBzYW1lIHR5cGUgYXMgdGhlIG91dGVy DQotICAgbmFycm93aW5nIGNvbnZlcnNpb24uICBUaGVuIGNvbnZlcnQgdGhl IGlubmVybW9zdCBvcGVyYW5kcyB0byBhIHN1aXRhYmxlDQotICAgdW5zaWdu ZWQgdHlwZSAodG8gYXZvaWQgaW50cm9kdWNpbmcgdW5kZWZpbmVkIGJlaGF2 aW9yKSwgcGVyZm9ybSB0aGUNCi0gICBvcGVyYXRpb24gYW5kIGNvbnZlcnQg dGhlIHJlc3VsdCB0byB0aGUgZGVzaXJlZCB0eXBlLiAgKi8NCi0oZm9yIG9w IChwbHVzIG1pbnVzKQ0KLSAgKHNpbXBsaWZ5DQotICAgIChjb252ZXJ0IChv cDpzIChjb252ZXJ0QDIgQDApIChjb252ZXJ0P0AzIEAxKSkpDQotICAgIChp ZiAoSU5URUdSQUxfVFlQRV9QICh0eXBlKQ0KLQkgLyogV2UgY2hlY2sgZm9y IHR5cGUgY29tcGF0aWJpbGl0eSBiZXR3ZWVuIEAwIGFuZCBAMSBiZWxvdywN Ci0JICAgIHNvIHRoZXJlJ3Mgbm8gbmVlZCB0byBjaGVjayB0aGF0IEAxL0Az IGFyZSBpbnRlZ3JhbCB0eXBlcy4gICovDQotCSAmJiBJTlRFR1JBTF9UWVBF X1AgKFRSRUVfVFlQRSAoQDApKQ0KLQkgJiYgSU5URUdSQUxfVFlQRV9QIChU UkVFX1RZUEUgKEAyKSkNCi0JIC8qIFRoZSBwcmVjaXNpb24gb2YgdGhlIHR5 cGUgb2YgZWFjaCBvcGVyYW5kIG11c3QgbWF0Y2ggdGhlDQotCSAgICBwcmVj aXNpb24gb2YgdGhlIG1vZGUgb2YgZWFjaCBvcGVyYW5kLCBzaW1pbGFybHkg Zm9yIHRoZQ0KLQkgICAgcmVzdWx0LiAgKi8NCi0JICYmIHR5cGVfaGFzX21v ZGVfcHJlY2lzaW9uX3AgKFRSRUVfVFlQRSAoQDApKQ0KLQkgJiYgdHlwZV9o YXNfbW9kZV9wcmVjaXNpb25fcCAoVFJFRV9UWVBFIChAMSkpDQotCSAmJiB0 eXBlX2hhc19tb2RlX3ByZWNpc2lvbl9wICh0eXBlKQ0KLQkgLyogVGhlIGlu bmVyIGNvbnZlcnNpb24gbXVzdCBiZSBhIHdpZGVuaW5nIGNvbnZlcnNpb24u ICAqLw0KLQkgJiYgVFlQRV9QUkVDSVNJT04gKFRSRUVfVFlQRSAoQDIpKSA+ IFRZUEVfUFJFQ0lTSU9OIChUUkVFX1RZUEUgKEAwKSkNCi0JICYmIHR5cGVz X21hdGNoIChAMCwgdHlwZSkNCi0JICYmICh0eXBlc19tYXRjaCAoQDAsIEAx KQ0KLQkgICAgIC8qIE9yIHRoZSBzZWNvbmQgb3BlcmFuZCBpcyBjb25zdCBp bnRlZ2VyIG9yIGNvbnZlcnRlZCBjb25zdA0KLQkJaW50ZWdlciBmcm9tIHZh bHVlaXplLiAgKi8NCi0JICAgICB8fCBUUkVFX0NPREUgKEAxKSA9PSBJTlRF R0VSX0NTVCkpDQotICAgICAgKGlmIChUWVBFX09WRVJGTE9XX1dSQVBTIChU UkVFX1RZUEUgKEAwKSkpDQotCShvcCBAMCAoY29udmVydCBAMSkpDQotCSh3 aXRoIHsgdHJlZSB1dHlwZSA9IHVuc2lnbmVkX3R5cGVfZm9yIChUUkVFX1RZ UEUgKEAwKSk7IH0NCi0JIChjb252ZXJ0IChvcCAoY29udmVydDp1dHlwZSBA MCkNCi0JCSAgICAgIChjb252ZXJ0OnV0eXBlIEAxKSkpKSkpKSkNCisvKiBD b252ZXJ0IChvdXRlcnR5cGUpKChpbm5lcnR5cGUwKWErKGlubmVydHlwZTEp YikNCisgICBpbnRvICgobmV3dHlwZSlhKyhuZXd0eXBlKWIpIHdoZXJlIG5l d3R5cGUNCisgICBpcyB0aGUgd2lkZXN0IG1vZGUgZnJvbSBhbGwgb2YgdGhl c2UuICAqLw0KKyhmb3Igb3AgKHBsdXMgbWludXMgbXVsdCByZGl2KQ0KKyAo c2ltcGxpZnkNCisgICAoY29udmVydCAob3A6c0AwIChjb252ZXJ0MT9AMyBA MSkgKGNvbnZlcnQyP0A0IEAyKSkpDQorICAgKHdpdGggeyB0cmVlIGFyZzAg PSBzdHJpcF9mbG9hdF9leHRlbnNpb25zIChAMSk7DQorCSAgIHRyZWUgYXJn MSA9IHN0cmlwX2Zsb2F0X2V4dGVuc2lvbnMgKEAyKTsNCisJICAgdHJlZSBp dHlwZSA9IFRSRUVfVFlQRSAoQDApOw0KKwkgICB0cmVlIHR5MSA9IFRSRUVf VFlQRSAoYXJnMCk7DQorCSAgIHRyZWUgdHkyID0gVFJFRV9UWVBFIChhcmcx KTsNCisJICAgZW51bSB0cmVlX2NvZGUgY29kZSA9IFRSRUVfQ09ERSAoaXR5 cGUpOyB9DQorICAgIChzd2l0Y2gNCisgICAgICAoaWYgKEZMT0FUX1RZUEVf UCAodHkxKQ0KKwkgICAmJiBGTE9BVF9UWVBFX1AgKHR5MikNCisJICAgJiYg RkxPQVRfVFlQRV9QICh0eXBlKQ0KKwkgICAmJiBERUNJTUFMX0ZMT0FUX1RZ UEVfUCAoaXR5cGUpID09IERFQ0lNQUxfRkxPQVRfVFlQRV9QICh0eXBlKSkN CisJICh3aXRoIHsgdHJlZSBuZXd0eXBlID0gdHlwZTsNCisJCSBpZiAoVFlQ RV9NT0RFICh0eTEpID09IFNEbW9kZQ0KKwkJICAgICB8fCBUWVBFX01PREUg KHR5MikgPT0gU0Rtb2RlDQorCQkgICAgIHx8IFRZUEVfTU9ERSAodHlwZSkg PT0gU0Rtb2RlKQ0KKwkJICAgbmV3dHlwZSA9IGRmbG9hdDMyX3R5cGVfbm9k ZTsNCisJCSBpZiAoVFlQRV9NT0RFICh0eTEpID09IEREbW9kZQ0KKwkJICAg ICB8fCBUWVBFX01PREUgKHR5MikgPT0gRERtb2RlDQorCQkgICAgIHx8IFRZ UEVfTU9ERSAodHlwZSkgPT0gRERtb2RlKQ0KKwkJICAgbmV3dHlwZSA9IGRm bG9hdDY0X3R5cGVfbm9kZTsNCisJCSBpZiAoVFlQRV9NT0RFICh0eTEpID09 IFREbW9kZQ0KKwkJICAgICB8fCBUWVBFX01PREUgKHR5MikgPT0gVERtb2Rl DQorCQkgICAgIHx8IFRZUEVfTU9ERSAodHlwZSkgPT0gVERtb2RlKQ0KKwkJ ICAgbmV3dHlwZSA9IGRmbG9hdDEyOF90eXBlX25vZGU7IH0NCisJICAoaWYg KChuZXd0eXBlID09IGRmbG9hdDMyX3R5cGVfbm9kZQ0KKwkJfHwgbmV3dHlw ZSA9PSBkZmxvYXQ2NF90eXBlX25vZGUNCisJCXx8IG5ld3R5cGUgPT0gZGZs b2F0MTI4X3R5cGVfbm9kZSkNCisJICAgICAgICYmIG5ld3R5cGUgPT0gdHlw ZSkNCisJICAgICAoY29udmVydDpuZXd0eXBlIChvcCAoY29udmVydDpuZXd0 eXBlIEAxKSAoY29udmVydDpuZXd0eXBlIEAyKSkpDQorCSAgICAgKHdpdGgg eyBpZiAoVFlQRV9QUkVDSVNJT04gKHR5MSkgPiBUWVBFX1BSRUNJU0lPTiAo bmV3dHlwZSkpDQorCQkgICAgICAgbmV3dHlwZSA9IHR5MTsNCisJCSAgICAg aWYgKFRZUEVfUFJFQ0lTSU9OICh0eTIpID4gVFlQRV9QUkVDSVNJT04gKG5l d3R5cGUpKQ0KKwkJICAgICAgIG5ld3R5cGUgPSB0eTI7IH0NCisJCS8qIFNv bWV0aW1lcyB0aGlzIHRyYW5zZm9ybWF0aW9uIGlzIHNhZmUgKGNhbm5vdA0K KwkJICAgY2hhbmdlIHJlc3VsdHMgdGhyb3VnaCBhZmZlY3RpbmcgZG91Ymxl IHJvdW5kaW5nDQorCQkgICBjYXNlcykgYW5kIHNvbWV0aW1lcyBpdCBpcyBu b3QuICBJZiBORVdUWVBFIGlzDQorCQkgICB3aWRlciB0aGFuIFRZUEUsIGUu Zy4gKGZsb2F0KSgobG9uZyBkb3VibGUpZG91YmxlDQorCQkgICArIChsb25n IGRvdWJsZSlkb3VibGUpIGNvbnZlcnRlZCB0bw0KKwkJICAgKGZsb2F0KShk b3VibGUgKyBkb3VibGUpLCB0aGUgdHJhbnNmb3JtYXRpb24gaXMNCisJCSAg IHVuc2FmZSByZWdhcmRsZXNzIG9mIHRoZSBkZXRhaWxzIG9mIHRoZSB0eXBl cw0KKwkJICAgaW52b2x2ZWQ7IGRvdWJsZSByb3VuZGluZyBjYW4gYXJpc2Ug aWYgdGhlIHJlc3VsdA0KKwkJICAgb2YgTkVXVFlQRSBhcml0aG1ldGljIGlz IGEgTkVXVFlQRSB2YWx1ZSBoYWxmIHdheQ0KKwkJICAgYmV0d2VlbiB0d28g cmVwcmVzZW50YWJsZSBUWVBFIHZhbHVlcyBidXQgdGhlDQorCQkgICBleGFj dCB2YWx1ZSBpcyBzdWZmaWNpZW50bHkgZGlmZmVyZW50IChpbiB0aGUNCisJ CSAgIHJpZ2h0IGRpcmVjdGlvbikgZm9yIHRoaXMgZGlmZmVyZW5jZSB0byBi ZQ0KKwkJICAgdmlzaWJsZSBpbiBJVFlQRSBhcml0aG1ldGljLiAgSWYgTkVX VFlQRSBpcyB0aGUNCisJCSAgIHNhbWUgYXMgVFlQRSwgaG93ZXZlciwgdGhl IHRyYW5zZm9ybWF0aW9uIG1heSBiZQ0KKwkJICAgc2FmZSBkZXBlbmRpbmcg b24gdGhlIHR5cGVzIGludm9sdmVkOiBpdCBpcyBzYWZlDQorCQkgICBpZiB0 aGUgSVRZUEUgaGFzIHN0cmljdGx5IG1vcmUgdGhhbiB0d2ljZSBhcyBtYW55 DQorCQkgICBtYW50aXNzYSBiaXRzIGFzIFRZUEUsIGNhbiByZXByZXNlbnQg aW5maW5pdGllcw0KKwkJICAgYW5kIE5hTnMgaWYgdGhlIFRZUEUgY2FuLCBh bmQgaGFzIHN1ZmZpY2llbnQNCisJCSAgIGV4cG9uZW50IHJhbmdlIGZvciB0 aGUgcHJvZHVjdCBvciByYXRpbyBvZiB0d28NCisJCSAgIHZhbHVlcyByZXBy ZXNlbnRhYmxlIGluIHRoZSBUWVBFIHRvIGJlIHdpdGhpbiB0aGUNCisJCSAg IHJhbmdlIG9mIG5vcm1hbCB2YWx1ZXMgb2YgSVRZUEUuICAqLw0KKwkgICAg ICAgKGlmIChUWVBFX1BSRUNJU0lPTiAobmV3dHlwZSkgPCBUWVBFX1BSRUNJ U0lPTiAoaXR5cGUpDQorCQkgICAgJiYgKGZsYWdfdW5zYWZlX21hdGhfb3B0 aW1pemF0aW9ucw0KKwkJICAgICAgICB8fCAoVFlQRV9QUkVDSVNJT04gKG5l d3R5cGUpID09IFRZUEVfUFJFQ0lTSU9OICh0eXBlKQ0KKwkJCSAgICAmJiBy ZWFsX2Nhbl9zaG9ydGVuX2FyaXRobWV0aWMgKFRZUEVfTU9ERSAoaXR5cGUp LA0KKwkJCQkJCQkgICAgVFlQRV9NT0RFICh0eXBlKSkNCisJCQkgICAgJiYg IWV4Y2Vzc19wcmVjaXNpb25fdHlwZSAobmV3dHlwZSkpKSkNCisJCSAgKGNv bnZlcnQ6bmV3dHlwZSAob3AgKGNvbnZlcnQ6bmV3dHlwZSBAMSkgKGNvbnZl cnQ6bmV3dHlwZSBAMikpKQ0KKwkgICkpKSkgKQ0KKw0KKyAgICAgIChpZiAo Y29kZSA9PSBSRUFMX1RZUEUpDQorCS8qIElnbm9yZSB0aGUgY29udmVyc2lv biBpZiB3ZSBkb24ndCBuZWVkIHRvIHN0b3JlIGludGVybWVkaWF0ZQ0KKwkg ICByZXN1bHRzIGFuZCBuZWl0aGVyIHR5cGUgaXMgYSBkZWNpbWFsIGZsb2F0 LiAgKi8NCisJICAoaWYgKCEoZmxhZ19mbG9hdF9zdG9yZQ0KKwkgICAgICAg fHwgREVDSU1BTF9GTE9BVF9UWVBFX1AgKHR5cGUpDQorCSAgICAgICB8fCBE RUNJTUFMX0ZMT0FUX1RZUEVfUCAoaXR5cGUpKQ0KKwkgICAgICAmJiB0eXBl c19tYXRjaCAodHkxLCB0eTIpKQ0KKwkgICAgKGNvbnZlcnQgKG9wIChjb252 ZXJ0OnR5MSBAMSkgKGNvbnZlcnQ6dHkyIEAyKSkpKSkNCisNCisgICAgICAv KiBJZiB3ZSBoYXZlIGEgbmFycm93aW5nIGNvbnZlcnNpb24gb2YgYW4gYXJp dGhtZXRpYyBvcGVyYXRpb24gd2hlcmUNCisJIGJvdGggb3BlcmFuZHMgYXJl IHdpZGVuaW5nIGNvbnZlcnNpb25zIGZyb20gdGhlIHNhbWUgdHlwZSBhcyB0 aGUgb3V0ZXINCisJIG5hcnJvd2luZyBjb252ZXJzaW9uLiAgVGhlbiBjb252 ZXJ0IHRoZSBpbm5lcm1vc3Qgb3BlcmFuZHMgdG8gYQ0KKwkgc3VpdGFibGUg dW5zaWduZWQgdHlwZSAodG8gYXZvaWQgaW50cm9kdWNpbmcgdW5kZWZpbmVk IGJlaGF2aW9yKSwNCisJIHBlcmZvcm0gdGhlIG9wZXJhdGlvbiBhbmQgY29u dmVydCB0aGUgcmVzdWx0IHRvIHRoZSBkZXNpcmVkIHR5cGUuICAqLw0KKyAg ICAgIChpZiAoSU5URUdSQUxfVFlQRV9QICh0eXBlKQ0KKwkgICAmJiBvcCAh PSBNVUxUX0VYUFINCisJICAgJiYgb3AgIT0gUkRJVl9FWFBSDQorCSAgIC8q IFdlIGNoZWNrIGZvciB0eXBlIGNvbXBhdGliaWxpdHkgYmV0d2VlbiBAMCBh bmQgQDEgYmVsb3csDQorCSAgICAgIHNvIHRoZXJlJ3Mgbm8gbmVlZCB0byBj aGVjayB0aGF0IEAyL0A0IGFyZSBpbnRlZ3JhbCB0eXBlcy4gICovDQorCSAg ICYmIElOVEVHUkFMX1RZUEVfUCAoVFJFRV9UWVBFIChAMSkpDQorCSAgICYm IElOVEVHUkFMX1RZUEVfUCAoVFJFRV9UWVBFIChAMykpDQorCSAgIC8qIFRo ZSBwcmVjaXNpb24gb2YgdGhlIHR5cGUgb2YgZWFjaCBvcGVyYW5kIG11c3Qg bWF0Y2ggdGhlDQorCSAgICAgIHByZWNpc2lvbiBvZiB0aGUgbW9kZSBvZiBl YWNoIG9wZXJhbmQsIHNpbWlsYXJseSBmb3IgdGhlDQorCSAgICAgIHJlc3Vs dC4gICovDQorCSAgICYmIHR5cGVfaGFzX21vZGVfcHJlY2lzaW9uX3AgKFRS RUVfVFlQRSAoQDEpKQ0KKwkgICAmJiB0eXBlX2hhc19tb2RlX3ByZWNpc2lv bl9wIChUUkVFX1RZUEUgKEAyKSkNCisJICAgJiYgdHlwZV9oYXNfbW9kZV9w cmVjaXNpb25fcCAodHlwZSkNCisJICAgLyogVGhlIGlubmVyIGNvbnZlcnNp b24gbXVzdCBiZSBhIHdpZGVuaW5nIGNvbnZlcnNpb24uICAqLw0KKwkgICAm JiBUWVBFX1BSRUNJU0lPTiAoVFJFRV9UWVBFIChAMykpID4gVFlQRV9QUkVD SVNJT04gKFRSRUVfVFlQRSAoQDEpKQ0KKwkgICAmJiB0eXBlc19tYXRjaCAo QDEsIHR5cGUpDQorCSAgICYmICh0eXBlc19tYXRjaCAoQDEsIEAyKQ0KKwkg ICAgICAgLyogT3IgdGhlIHNlY29uZCBvcGVyYW5kIGlzIGNvbnN0IGludGVn ZXIgb3IgY29udmVydGVkIGNvbnN0DQorCQkgIGludGVnZXIgZnJvbSB2YWx1 ZWl6ZS4gICovDQorCSAgICAgICB8fCBUUkVFX0NPREUgKEAyKSA9PSBJTlRF R0VSX0NTVCkpDQorICAgICAgICAoaWYgKFRZUEVfT1ZFUkZMT1dfV1JBUFMg KFRSRUVfVFlQRSAoQDEpKSkNCisJICAob3AgQDEgKGNvbnZlcnQgQDIpKQ0K KwkgICh3aXRoIHsgdHJlZSB1dHlwZSA9IHVuc2lnbmVkX3R5cGVfZm9yIChU UkVFX1RZUEUgKEAxKSk7IH0NCisJICAgKGNvbnZlcnQgKG9wIChjb252ZXJ0 OnV0eXBlIEAxKQ0KKwkJICAgICAgICAoY29udmVydDp1dHlwZSBAMikpKSkp KQ0KKyAgICApDQorKSkpDQogDQogLyogVGhpcyBpcyBhbm90aGVyIGNhc2Ug b2YgbmFycm93aW5nLCBzcGVjaWZpY2FsbHkgd2hlbiB0aGVyZSdzIGFuIG91 dGVyDQogICAgQklUX0FORF9FWFBSIHdoaWNoIG1hc2tzIG9mZiBiaXRzIG91 dHNpZGUgdGhlIHR5cGUgb2YgdGhlIGlubmVybW9zdA0KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLmRnL3R5cGUtY29udmVydC12YXIuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL3R5cGUtY29udmVydC12YXIuYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAuLjg4ZDc0ZTJhNDlkNzEyMzUxNWI4N2ZmNjRh MThiZDliMzA2ZDU3ZTkNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLmRnL3R5cGUtY29udmVydC12YXIuYw0KQEAgLTAsMCArMSw5 IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLWFkZGl0 aW9uYWwtb3B0aW9ucyAiLU8xIC1mZHVtcC10cmVlLW9wdGltaXplZCIgfSAq Lw0KK3ZvaWQgZm9vIChmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCAqYykNCit7 DQorICBkb3VibGUgZSA9IChkb3VibGUpYSAqIChkb3VibGUpYjsNCisgICpj ID0gKGZsb2F0KWU7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC1ub3Qge2RvdWJsZX0gIm9wdGltaXplZCIgfSB9ICovDQoNCg== --_002_20190625083126GA19632armcom_--