From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5669 invoked by alias); 29 Jan 2018 15:31:47 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 5621 invoked by uid 89); 29 Jan 2018 15:31:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=Think X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Received: from mail-ve1eur01on0052.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (104.47.1.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 29 Jan 2018 15:31:39 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com (10.160.211.19) by AM3PR08MB0215.eurprd08.prod.outlook.com (10.161.35.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 15:31:34 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::c95:81b8:c681:ae2]) by AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::c95:81b8:c681:ae2%17]) with mapi id 15.20.0444.016; Mon, 29 Jan 2018 15:31:34 +0000 From: Alan Hayward To: Philipp Rudo , Simon Marchi CC: "gdb-patches@sourceware.org" , nd Subject: Re: [PATCH] Use visitors for make_gdb_type Date: Mon, 29 Jan 2018 15:31:00 -0000 Message-ID: <707546ED-241F-4641-97A9-551C6FF0E7B4@arm.com> References: <20180129102836.5d521e5f@ThinkPad> In-Reply-To: <20180129102836.5d521e5f@ThinkPad> authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;AM3PR08MB0215;7:eL4+jVQD+48dM3pRin0kmvXnvkv2mgiV93IZGiQNE3z+SLY0F/9k46ZRMa3SM3HQItZy7PWvFD1Nfzrs2Mq+fghCrjvzi7Eu/dH9pUkSh227cusyqGeAy0lS6QjavFYQJFZECXmMRa7UWzHXqqKTdK4/x9BrmaXQAUZSsX0j7kDHnuflnmQRVne+zIwC6DerYkADO5SkM5Hihmc8dW32C5tsvETRNP90UIAb+KbMUXdWCT/KtCg+qzktiJ6Nru75 x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 04eca56c-175b-4c21-3cd2-08d5672d6153 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020);SRVR:AM3PR08MB0215; x-ms-traffictypediagnostic: AM3PR08MB0215: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(131327999870524)(104084551191319)(17755550239193); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231101)(944501161)(93006095)(93001095)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011);SRVR:AM3PR08MB0215;BCL:0;PCL:0;RULEID:;SRVR:AM3PR08MB0215; x-forefront-prvs: 0567A15835 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(39860400002)(39380400002)(396003)(376002)(346002)(199004)(189003)(51914003)(377424004)(3660700001)(93886005)(8936002)(105586002)(3280700002)(26005)(478600001)(54906003)(229853002)(110136005)(186003)(316002)(14454004)(575784001)(86362001)(83716003)(68736007)(72206003)(5250100002)(102836004)(6246003)(6436002)(6512007)(305945005)(7736002)(3846002)(6116002)(2906002)(82746002)(2950100002)(2900100001)(5660300001)(106356001)(99286004)(36756003)(6506007)(59450400001)(53546011)(66066001)(8676002)(81156014)(81166006)(76176011)(25786009)(53946003)(4326008)(6486002)(53936002)(97736004)(33656002)(579004);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR08MB0215;H:AM3PR08MB0101.eurprd08.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: SiduGuUdHZ8tiX1dglrwpGPpX2rSs0lfP1tgv8FcSGdToIJe36Up77BCz53b9bFqtR80DhqhoXkkNW1kqRH0JA== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04eca56c-175b-4c21-3cd2-08d5672d6153 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jan 2018 15:31:34.5733 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR08MB0215 X-IsSubscribed: yes X-SW-Source: 2018-01/txt/msg00593.txt.bz2 VXBkYXRlZCB2ZXJzaW9uIG9mIHBhdGNoIGF0IHRoZSBib3R0b20uDQoNCj4g T24gMjkgSmFuIDIwMTgsIGF0IDA5OjI4LCBQaGlsaXBwIFJ1ZG8gPHBydWRv QGxpbnV4LnZuZXQuaWJtLmNvbT4gd3JvdGU6DQo+IA0KPiBIaSBBbGFuLA0K PiANCj4gYmVzaWRlcyB0aGUgY29tbWVudHMgU2ltb24gYWxyZWFkeSBtYWRl LCB0aGUgcGF0Y2ggbG9va3MgZmluZSB0byBtZS4NCj4gDQoNClRoYW5rcyEN Cg0KPiANCj4gT24gU3VuLCAyOCBKYW4gMjAxOCAyMToyNDoxOSAtMDUwMA0K PiBTaW1vbiBNYXJjaGkgPHNpbWFya0BzaW1hcmsuY2E+IHdyb3RlOg0KPiAN Cj4+IE9uIDIwMTgtMDEtMjYgMTA6MzAgQU0sIEFsYW4gSGF5d2FyZCB3cm90 ZToNCj4+PiBJIGFwcGVhciB0byBzdGlsbCBoYXZlIGVtYWlsIGlzc3VlcyAt IHByZXZpb3VzIHBvc3QgaGFkIHRoZSB0YWJzIHN0cmlwcGVkIG91dC4NCj4+ PiBIb3BpbmcgdGhpcyB2ZXJzaW9uIGlzIG9rLiBBcG9sb2dpZXMuICANCj4+ IA0KPj4gSGkgQWxhbiwNCj4+IA0KPj4gSSB3YXMgYWJsZSB0byBhcHBseSBp dCBjb3JyZWN0bHkuDQo+Pj4gDQoNClZlcnkgc3RyYW5nZSEgVGhpbmsgSeKA mW0gb2sgbm93Lg0KDQo+PiANCj4+IG1ha2VfZ2RiX3R5cGVfdW5pb24gJiBj byBjb3VsZCBiZSBtZXRob2RzIG9mIGdkYl90eXBlX2NyZWF0b3IgYW5kIGFj Y2VzcyBnZGJhcmNoDQo+PiBkaXJlY3RseS4gIEkgdGhpbmsgaXQgd291bGQg bWFrZSBzZW5zZSB0byBoYXZlIGFsbCB0aGUga25vd2xlZGdlIG9mIHRoZSB0 ZGVzYyB0eXBlDQo+PiB0byBnZGIgdHlwZSBjb252ZXJzaW9uIGluc2lkZSB0 aGF0IGNsYXNzLg0KDQpBZ3JlZWQgYW5kIGRvbmUuDQoNCj4+PiANCj4+PiAr ICAgIHZvaWQgdmlzaXRfcHJlIChjb25zdCB0YXJnZXRfZGVzYyAqZSkNCj4+ PiArICAgIHt9ICANCj4+IA0KPj4gSSB0aGluayB3ZSBzaG91bGQgaGF2ZSBl bXB0eSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB2aXNpdCBm dW5jdGlvbnMgaW4gdGhlDQo+PiBiYXNlIGNsYXNzLCBpbnN0ZWFkIG9mIGhh dmluZyB0byBkZWNsYXJlIHRoZW0gZW1wdHkgd2hlbiB1bm5lY2Vzc2FyeS4g IE1heWJlIFlhbyBoYWQNCj4+IGEgcmVhc29uIG5vdCB0byBkbyB0aGlzIGlu aXRpYWxseT8NCj4+IA0KDQpJIHRoaW5rIFlhbyBkaWRu4oCZdCBhZGQgdGhl IG1ldGhvZCBiZWNhdXNlIHRkZXNjX2VsZW1lbnRfdmlzaXRvciBpcyBtZWFu dCB0byBiZSBhbiBpbnRlcmZhY2UNCmFuZCByZW1haW4gYWJzdHJhY3QuDQoN CkkgY29uc2lkZXJlZCBwdXR0aW5nIHRoZSB0eXBlcyBpbnRvIGEgcGFyZW50 IGNsYXNzIG9mIHRkZXNjX2VsZW1lbnRfdmlzaXRvciwgYnV0IHRoYXQgYnJl YWtzDQp0aGUgYWNjZXB0KCkgZnVuY3Rpb25zIGhvcnJpYmx5Lg0KSW5zdGVh ZCwgSeKAmXZlIGNyZWF0ZWQgYSBuZXcgc3ViY2xhc3MgZnJvbSB0ZGVzY19l bGVtZW50X3Zpc2l0b3IgY2FsbGVkIHRkZXNjX2VsZW1lbnRfdHlwZV92aXNp dG9yDQp3aGljaCBwcm92aWRlcyBudWxsIGltcGxlbWVudGF0aW9ucyBmb3Ig YWxsIHRoZSBub24gdHlwZSB2aXNpdCBmdW5jdGlvbnMuIGdkYl90eXBlX2Ny ZWF0b3IgY2FuDQpub3cgaW5oZXJpdCBmcm9tIHRkZXNjX2VsZW1lbnRfdHlw ZV92aXNpdG9yIGFuZCBvbmx5IGhhcyB0byBwcm92aWRlIHRoZSB0aHJlZSB2 aXNpdG9ycy4NCg0KQXJlIHlvdSBoYXBweSB3aXRoIHRoYXQ/DQoNCg0KPj4g SW4gYW55IGNhc2UsIG1ha2Ugc3VyZSB0byBtYXJrIHRoZSBvdmVycmlkZW4g bWV0aG9kcyB3aXRoIHRoZSAib3ZlcnJpZGUiIGtleXdvcmQuICBVc2luZw0K Pj4gY2xhbmc6DQo+PiANCj4+IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMt Z2RiL2dkYi90YXJnZXQtZGVzY3JpcHRpb25zLmM6NDE2OjEwOiBlcnJvcjog J3Zpc2l0X3ByZScgb3ZlcnJpZGVzIGEgbWVtYmVyIGZ1bmN0aW9uIGJ1dCBp cyBub3QgbWFya2VkICdvdmVycmlkZScgWy1XZXJyb3IsLVdpbmNvbnNpc3Rl bnQtbWlzc2luZy1vdmVycmlkZV0NCj4+ICAgIHZvaWQgdmlzaXRfcHJlIChj b25zdCB0YXJnZXRfZGVzYyAqZSkNCg0KRG9uZS4gQW5kIHRoYW5rcyBmb3Ig dGhlIHJldmlldy4NCg0KDQpOZXcgdmVyc2lvbiBpbXBsZW1lbnRzIHRoZSBh Ym92ZSBjaGFuZ2VzLg0KDQpEaWRu4oCZdCBtZW50aW9uIHByZXZpb3VzbHks IGJ1dCBwYXRjaGVzIGhhdmUgYmVlbiB0ZXN0ZWQgb24gYSBtYWtlIGNoZWNr IG9uIHg4NiB0YXJnZXRzPWFsbA0KYnVpbGQgd2l0aCB0YXJnZXQgYm9hcmQg dW5peCBuYXRpdmUtZ2Ric2VydmVyLiBCdWlsdCBmb3IgcG93ZXIgKGJlY2F1 c2UgaXQgZG9lcyBub3QgdXNlIG5ldw0KdGFyZ2V0IGRlc2NyaXB0aW9ucyks IGJ1dCBhbSB1bmFibGUgdG8gdGVzdC4NCg0KMjAxOC0wMS0yOSAgQWxhbiBI YXl3YXJkICA8YWxhbi5oYXl3YXJkQGFybS5jb20+DQoNCgkqIHRhcmdldC1k ZXNjcmlwdGlvbnMuYyAodGRlc2NfZWxlbWVudF90eXBlX3Zpc2l0b3IpIEFk ZCBjbGFzcy4NCgkodGRlc2NfdHlwZSk6IE1vdmUgbWFrZV9nZGJfdHlwZSBm cm9tIGhlcmUuDQoJKHRkZXNjX3R5cGVfYnVpbHRpbik6IExpa2V3aXNlLg0K CSh0ZGVzY190eXBlX3ZlY3Rvcik6IExpa2V3aXNlLg0KCSh0ZGVzY190eXBl X3dpdGhfZmllbGRzKTogTW92ZSBtYWtlX2dkYl90eXBlXyBmdW5jdGlvbnMg ZnJvbSBoZXJlLg0KCShtYWtlX2dkYl90eXBlX3N0cnVjdCk6IE1vdmUgZnJv bSB0ZGVzY190eXBlX3dpdGhfZmllbGRzLg0KCShtYWtlX2dkYl90eXBlX3Vu aW9uKTogTGlrZXdpc2UuDQoJKG1ha2VfZ2RiX3R5cGVfZmxhZ3MpOiBMaWtl d2lzZS4NCgkobWFrZV9nZGJfdHlwZV9lbnVtKTogTGlrZXdpc2UuDQoJKG1h a2VfZ2RiX3R5cGUpOiBOZXcgZnVuY3Rpb24uDQoJKHRkZXNjX3JlZ2lzdGVy X3R5cGUpOiBVc2Ugc3RhdGljIG1ha2VfZ2RiX3R5cGUuDQoNCi0tLQ0KIGdk Yi90YXJnZXQtZGVzY3JpcHRpb25zLmMgfCA0ODAgKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIDEgZmlsZSBjaGFu Z2VkLCAyNjQgaW5zZXJ0aW9ucygrKSwgMjE2IGRlbGV0aW9ucygtKQ0KDQpk aWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC1kZXNjcmlwdGlvbnMuYyBiL2dkYi90 YXJnZXQtZGVzY3JpcHRpb25zLmMNCmluZGV4IDFiMjBhMTJkNzYuLmRmMGFk OTI0MWYgMTAwNjQ0DQotLS0gYS9nZGIvdGFyZ2V0LWRlc2NyaXB0aW9ucy5j DQorKysgYi9nZGIvdGFyZ2V0LWRlc2NyaXB0aW9ucy5jDQpAQCAtMzgsNiAr MzgsOCBAQA0KICNpbmNsdWRlICJjb21wbGV0ZXIuaCINCiAjaW5jbHVkZSAi cmVhZGxpbmUvdGlsZGUuaCIgLyogdGlsZGVfZXhwYW5kICovDQogDQorc3Rh dGljIHR5cGUgKm1ha2VfZ2RiX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCBzdHJ1Y3QgdGRlc2NfdHlwZSAqdHR5cGUpOw0KKw0KIC8qIFRoZSBp bnRlcmZhY2UgdG8gdmlzaXQgZGlmZmVyZW50IGVsZW1lbnRzIG9mIHRhcmdl dCBkZXNjcmlwdGlvbi4gICovDQogDQogY2xhc3MgdGRlc2NfZWxlbWVudF92 aXNpdG9yDQpAQCAtNTYsNiArNTgsMzIgQEAgcHVibGljOg0KICAgdmlydHVh bCB2b2lkIHZpc2l0IChjb25zdCB0ZGVzY19yZWcgKmUpID0gMDsNCiB9Ow0K IA0KKy8qIFRoZSBpbnRlcmZhY2UgdG8gdmlzaXQgZGlmZmVyZW50IGVsZW1l bnRzIG9mIHRkZXNjIHR5cGUuICBSZXN0cmljdHMgdmlzdG9ycw0KKyAgIHRv IG9ubHkgdGhlIG9uZXMgdGhhdCB3b3JrIG9uIHR5cGVzLiAgKi8NCisNCitj bGFzcyB0ZGVzY19lbGVtZW50X3R5cGVfdmlzaXRvciA6IHB1YmxpYyB0ZGVz Y19lbGVtZW50X3Zpc2l0b3INCit7DQorcHVibGljOg0KKyAgdm9pZCB2aXNp dF9wcmUgKGNvbnN0IHRhcmdldF9kZXNjICplKSBvdmVycmlkZQ0KKyAge30N CisNCisgIHZvaWQgdmlzaXRfcG9zdCAoY29uc3QgdGFyZ2V0X2Rlc2MgKmUp IG92ZXJyaWRlDQorICB7fQ0KKw0KKyAgdm9pZCB2aXNpdF9wcmUgKGNvbnN0 IHRkZXNjX2ZlYXR1cmUgKmUpIG92ZXJyaWRlDQorICB7fQ0KKw0KKyAgdm9p ZCB2aXNpdF9wb3N0IChjb25zdCB0ZGVzY19mZWF0dXJlICplKSBvdmVycmlk ZQ0KKyAge30NCisNCisgIHZpcnR1YWwgdm9pZCB2aXNpdCAoY29uc3QgdGRl c2NfdHlwZV9idWlsdGluICplKSA9IDA7DQorICB2aXJ0dWFsIHZvaWQgdmlz aXQgKGNvbnN0IHRkZXNjX3R5cGVfdmVjdG9yICplKSA9IDA7DQorICB2aXJ0 dWFsIHZvaWQgdmlzaXQgKGNvbnN0IHRkZXNjX3R5cGVfd2l0aF9maWVsZHMg KmUpID0gMDsNCisNCisgIHZvaWQgdmlzaXQgKGNvbnN0IHRkZXNjX3JlZyAq ZSkgb3ZlcnJpZGUNCisgIHt9DQorfTsNCisNCiBjbGFzcyB0ZGVzY19lbGVt ZW50DQogew0KIHB1YmxpYzoNCkBAIC0yMjMsMTEgKzI1MSw2IEBAIHN0cnVj dCB0ZGVzY190eXBlIDogdGRlc2NfZWxlbWVudA0KICAgew0KICAgICByZXR1 cm4gISgqdGhpcyA9PSBvdGhlcik7DQogICB9DQotDQotICAvKiBDb25zdHJ1 Y3QsIGlmIG5lY2Vzc2FyeSwgYW5kIHJldHVybiB0aGUgR0RCIHR5cGUgaW1w bGVtZW50aW5nIHRoaXMNCi0gICAgIHRhcmdldCB0eXBlIGZvciBhcmNoaXRl Y3R1cmUgR0RCQVJDSC4gICovDQotDQotICB2aXJ0dWFsIHR5cGUgKm1ha2Vf Z2RiX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKSBjb25zdCA9IDA7 DQogfTsNCiANCiB0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjx0ZGVzY190eXBl PiB0ZGVzY190eXBlX3VwOw0KQEAgLTI0Miw4MSArMjY1LDYgQEAgc3RydWN0 IHRkZXNjX3R5cGVfYnVpbHRpbiA6IHRkZXNjX3R5cGUNCiAgIHsNCiAgICAg di52aXNpdCAodGhpcyk7DQogICB9DQotDQotICB0eXBlICptYWtlX2dkYl90 eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkgY29uc3Qgb3ZlcnJpZGUN Ci0gIHsNCi0gICAgc3dpdGNoICh0aGlzLT5raW5kKQ0KLSAgICAgIHsNCi0g ICAgICAvKiBQcmVkZWZpbmVkIHR5cGVzLiAgKi8NCi0gICAgICBjYXNlIFRE RVNDX1RZUEVfQk9PTDoNCi0gICAgICAgIHJldHVybiBidWlsdGluX3R5cGUg KGdkYmFyY2gpLT5idWlsdGluX2Jvb2w7DQotDQotICAgICAgY2FzZSBUREVT Q19UWVBFX0lOVDg6DQotICAgICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChn ZGJhcmNoKS0+YnVpbHRpbl9pbnQ4Ow0KLQ0KLSAgICAgIGNhc2UgVERFU0Nf VFlQRV9JTlQxNjoNCi0gICAgICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdk YmFyY2gpLT5idWlsdGluX2ludDE2Ow0KLQ0KLSAgICAgIGNhc2UgVERFU0Nf VFlQRV9JTlQzMjoNCi0gICAgICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdk YmFyY2gpLT5idWlsdGluX2ludDMyOw0KLQ0KLSAgICAgIGNhc2UgVERFU0Nf VFlQRV9JTlQ2NDoNCi0gICAgICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdk YmFyY2gpLT5idWlsdGluX2ludDY0Ow0KLQ0KLSAgICAgIGNhc2UgVERFU0Nf VFlQRV9JTlQxMjg6DQotICAgICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChn ZGJhcmNoKS0+YnVpbHRpbl9pbnQxMjg7DQotDQotICAgICAgY2FzZSBUREVT Q19UWVBFX1VJTlQ4Og0KLSAgICAgICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAo Z2RiYXJjaCktPmJ1aWx0aW5fdWludDg7DQotDQotICAgICAgY2FzZSBUREVT Q19UWVBFX1VJTlQxNjoNCi0gICAgICAgIHJldHVybiBidWlsdGluX3R5cGUg KGdkYmFyY2gpLT5idWlsdGluX3VpbnQxNjsNCi0NCi0gICAgICBjYXNlIFRE RVNDX1RZUEVfVUlOVDMyOg0KLSAgICAgICAgcmV0dXJuIGJ1aWx0aW5fdHlw ZSAoZ2RiYXJjaCktPmJ1aWx0aW5fdWludDMyOw0KLQ0KLSAgICAgIGNhc2Ug VERFU0NfVFlQRV9VSU5UNjQ6DQotICAgICAgICByZXR1cm4gYnVpbHRpbl90 eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50NjQ7DQotDQotICAgICAgY2Fz ZSBUREVTQ19UWVBFX1VJTlQxMjg6DQotICAgICAgICByZXR1cm4gYnVpbHRp bl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50MTI4Ow0KLQ0KLSAgICAg IGNhc2UgVERFU0NfVFlQRV9DT0RFX1BUUjoNCi0gICAgICAgIHJldHVybiBi dWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2Z1bmNfcHRyOw0KLQ0K LSAgICAgIGNhc2UgVERFU0NfVFlQRV9EQVRBX1BUUjoNCi0gICAgICAgIHJl dHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2RhdGFfcHRy Ow0KLSAgICAgIH0NCi0NCi0gICAgdHlwZSAqZ2RiX3R5cGUgPSB0ZGVzY19m aW5kX3R5cGUgKGdkYmFyY2gsIHRoaXMtPm5hbWUuY19zdHIgKCkpOw0KLSAg ICBpZiAoZ2RiX3R5cGUgIT0gTlVMTCkNCi0gICAgICByZXR1cm4gZ2RiX3R5 cGU7DQotDQotICAgIHN3aXRjaCAodGhpcy0+a2luZCkNCi0gICAgICB7DQot ICAgICAgY2FzZSBUREVTQ19UWVBFX0lFRUVfU0lOR0xFOg0KLSAgICAgICAg cmV0dXJuIGFyY2hfZmxvYXRfdHlwZSAoZ2RiYXJjaCwgLTEsICJidWlsdGlu X3R5cGVfaWVlZV9zaW5nbGUiLA0KLQkJCQlmbG9hdGZvcm1hdHNfaWVlZV9z aW5nbGUpOw0KLQ0KLSAgICAgIGNhc2UgVERFU0NfVFlQRV9JRUVFX0RPVUJM RToNCi0gICAgICAgIHJldHVybiBhcmNoX2Zsb2F0X3R5cGUgKGdkYmFyY2gs IC0xLCAiYnVpbHRpbl90eXBlX2llZWVfZG91YmxlIiwNCi0JCQkJZmxvYXRm b3JtYXRzX2llZWVfZG91YmxlKTsNCi0NCi0gICAgICBjYXNlIFRERVNDX1RZ UEVfQVJNX0ZQQV9FWFQ6DQotICAgICAgICByZXR1cm4gYXJjaF9mbG9hdF90 eXBlIChnZGJhcmNoLCAtMSwgImJ1aWx0aW5fdHlwZV9hcm1fZXh0IiwNCi0J CQkJZmxvYXRmb3JtYXRzX2FybV9leHQpOw0KLQ0KLSAgICAgIGNhc2UgVERF U0NfVFlQRV9JMzg3X0VYVDoNCi0gICAgICAgIHJldHVybiBhcmNoX2Zsb2F0 X3R5cGUgKGdkYmFyY2gsIC0xLCAiYnVpbHRpbl90eXBlX2kzODdfZXh0IiwN Ci0JCQkJZmxvYXRmb3JtYXRzX2kzODdfZXh0KTsNCi0gICAgICB9DQotDQot ICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sDQotCQkg ICAgIlR5cGUgXCIlc1wiIGhhcyBhbiB1bmtub3duIGtpbmQgJWQiLA0KLQkJ ICAgIHRoaXMtPm5hbWUuY19zdHIgKCksIHRoaXMtPmtpbmQpOw0KLQ0KLSAg ICByZXR1cm4gTlVMTDsNCi0gIH0NCiB9Ow0KIA0KIC8qIHRkZXNjX3R5cGUg Zm9yIHZlY3RvciB0eXBlcy4gICovDQpAQCAtMzMzLDE5ICsyODEsNiBAQCBz dHJ1Y3QgdGRlc2NfdHlwZV92ZWN0b3IgOiB0ZGVzY190eXBlDQogICAgIHYu dmlzaXQgKHRoaXMpOw0KICAgfQ0KIA0KLSAgdHlwZSAqbWFrZV9nZGJfdHlw ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpIGNvbnN0IG92ZXJyaWRlDQot ICB7DQotICAgIHR5cGUgKnZlY3Rvcl9nZGJfdHlwZSA9IHRkZXNjX2ZpbmRf dHlwZSAoZ2RiYXJjaCwgdGhpcy0+bmFtZS5jX3N0ciAoKSk7DQotICAgIGlm ICh2ZWN0b3JfZ2RiX3R5cGUgIT0gTlVMTCkNCi0gICAgICByZXR1cm4gdmVj dG9yX2dkYl90eXBlOw0KLQ0KLSAgICB0eXBlICplbGVtZW50X2dkYl90eXBl ID0gdGhpcy0+ZWxlbWVudF90eXBlLT5tYWtlX2dkYl90eXBlIChnZGJhcmNo KTsNCi0gICAgdmVjdG9yX2dkYl90eXBlID0gaW5pdF92ZWN0b3JfdHlwZSAo ZWxlbWVudF9nZGJfdHlwZSwgdGhpcy0+Y291bnQpOw0KLSAgICBUWVBFX05B TUUgKHZlY3Rvcl9nZGJfdHlwZSkgPSB4c3RyZHVwICh0aGlzLT5uYW1lLmNf c3RyICgpKTsNCi0NCi0gICAgcmV0dXJuIHZlY3Rvcl9nZGJfdHlwZTsNCi0g IH0NCi0NCiAgIHN0cnVjdCB0ZGVzY190eXBlICplbGVtZW50X3R5cGU7DQog ICBpbnQgY291bnQ7DQogfTsNCkBAIC0zNjQsMTUxICsyOTksMjY0IEBAIHN0 cnVjdCB0ZGVzY190eXBlX3dpdGhfZmllbGRzIDogdGRlc2NfdHlwZQ0KICAg ICB2LnZpc2l0ICh0aGlzKTsNCiAgIH0NCiANCi0gIHR5cGUgKm1ha2VfZ2Ri X3R5cGVfc3RydWN0IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkgY29uc3QN CisgIHN0ZDo6dmVjdG9yPHRkZXNjX3R5cGVfZmllbGQ+IGZpZWxkczsNCisg IGludCBzaXplOw0KK307DQorDQorLyogQ29udmVydCBhIHRkZXNjX3R5cGUg dG8gYSBnZGIgdHlwZS4gICovDQorDQorc3RhdGljIHR5cGUgKg0KK21ha2Vf Z2RiX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdGRl c2NfdHlwZSAqdHR5cGUpDQorew0KKyAgY2xhc3MgZ2RiX3R5cGVfY3JlYXRv ciA6IHB1YmxpYyB0ZGVzY19lbGVtZW50X3R5cGVfdmlzaXRvcg0KICAgew0K LSAgICB0eXBlICpzdHJ1Y3RfZ2RiX3R5cGUgPSBhcmNoX2NvbXBvc2l0ZV90 eXBlIChnZGJhcmNoLCBOVUxMLCBUWVBFX0NPREVfU1RSVUNUKTsNCi0gICAg VFlQRV9OQU1FIChzdHJ1Y3RfZ2RiX3R5cGUpID0geHN0cmR1cCAodGhpcy0+ bmFtZS5jX3N0ciAoKSk7DQotICAgIFRZUEVfVEFHX05BTUUgKHN0cnVjdF9n ZGJfdHlwZSkgPSBUWVBFX05BTUUgKHN0cnVjdF9nZGJfdHlwZSk7DQorICBw dWJsaWM6DQorICAgIGdkYl90eXBlX2NyZWF0b3IgKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoKQ0KKyAgICAgIDogbV9nZGJhcmNoIChnZGJhcmNoKQ0KKyAg ICB7fQ0KIA0KLSAgICBmb3IgKGNvbnN0IHRkZXNjX3R5cGVfZmllbGQgJmYg OiB0aGlzLT5maWVsZHMpDQotICAgICAgew0KLQlpZiAoZi5zdGFydCAhPSAt MSAmJiBmLmVuZCAhPSAtMSkNCi0JICB7DQotCSAgICAvKiBCaXRmaWVsZC4g ICovDQotCSAgICBzdHJ1Y3QgZmllbGQgKmZsZDsNCi0JICAgIHN0cnVjdCB0 eXBlICpmaWVsZF9nZGJfdHlwZTsNCi0JICAgIGludCBiaXRzaXplLCB0b3Rh bF9zaXplOw0KLQ0KLQkgICAgLyogVGhpcyBpbnZhcmlhbnQgc2hvdWxkIGJl IHByZXNlcnZlZCB3aGlsZSBjcmVhdGluZyB0eXBlcy4gICovDQotCSAgICBn ZGJfYXNzZXJ0ICh0aGlzLT5zaXplICE9IDApOw0KLQkgICAgaWYgKGYudHlw ZSAhPSBOVUxMKQ0KLQkgICAgICBmaWVsZF9nZGJfdHlwZSA9IGYudHlwZS0+ bWFrZV9nZGJfdHlwZSAoZ2RiYXJjaCk7DQotCSAgICBlbHNlIGlmICh0aGlz LT5zaXplID4gNCkNCi0JICAgICAgZmllbGRfZ2RiX3R5cGUgPSBidWlsdGlu X3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX3VpbnQ2NDsNCi0JICAgIGVsc2UN Ci0JICAgICAgZmllbGRfZ2RiX3R5cGUgPSBidWlsdGluX3R5cGUgKGdkYmFy Y2gpLT5idWlsdGluX3VpbnQzMjsNCi0NCi0JICAgIGZsZCA9IGFwcGVuZF9j b21wb3NpdGVfdHlwZV9maWVsZF9yYXcNCi0JICAgICAgKHN0cnVjdF9nZGJf dHlwZSwgeHN0cmR1cCAoZi5uYW1lLmNfc3RyICgpKSwgZmllbGRfZ2RiX3R5 cGUpOw0KLQ0KLQkgICAgLyogRm9yIGxpdHRsZS1lbmRpYW4sIEJJVFBPUyBj b3VudHMgZnJvbSB0aGUgTFNCIG9mDQotCSAgICAgICB0aGUgc3RydWN0dXJl IGFuZCBtYXJrcyB0aGUgTFNCIG9mIHRoZSBmaWVsZC4gIEZvcg0KLQkgICAg ICAgYmlnLWVuZGlhbiwgQklUUE9TIGNvdW50cyBmcm9tIHRoZSBNU0Igb2Yg dGhlDQotCSAgICAgICBzdHJ1Y3R1cmUgYW5kIG1hcmtzIHRoZSBNU0Igb2Yg dGhlIGZpZWxkLiAgRWl0aGVyDQotCSAgICAgICB3YXksIGl0IGlzIHRoZSBu dW1iZXIgb2YgYml0cyB0byB0aGUgImxlZnQiIG9mIHRoZQ0KLQkgICAgICAg ZmllbGQuICBUbyBjYWxjdWxhdGUgdGhpcyBpbiBiaWctZW5kaWFuLCB3ZSBu ZWVkDQotCSAgICAgICB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgc3RydWN0dXJl LiAgKi8NCi0JICAgIGJpdHNpemUgPSBmLmVuZCAtIGYuc3RhcnQgKyAxOw0K LQkgICAgdG90YWxfc2l6ZSA9IHRoaXMtPnNpemUgKiBUQVJHRVRfQ0hBUl9C SVQ7DQotCSAgICBpZiAoZ2RiYXJjaF9iaXRzX2JpZ19lbmRpYW4gKGdkYmFy Y2gpKQ0KLQkgICAgICBTRVRfRklFTERfQklUUE9TIChmbGRbMF0sIHRvdGFs X3NpemUgLSBmLnN0YXJ0IC0gYml0c2l6ZSk7DQotCSAgICBlbHNlDQotCSAg ICAgIFNFVF9GSUVMRF9CSVRQT1MgKGZsZFswXSwgZi5zdGFydCk7DQotCSAg ICBGSUVMRF9CSVRTSVpFIChmbGRbMF0pID0gYml0c2l6ZTsNCi0JICB9DQot CWVsc2UNCi0JICB7DQotCSAgICBnZGJfYXNzZXJ0IChmLnN0YXJ0ID09IC0x ICYmIGYuZW5kID09IC0xKTsNCi0JICAgIHR5cGUgKmZpZWxkX2dkYl90eXBl ID0gZi50eXBlLT5tYWtlX2dkYl90eXBlIChnZGJhcmNoKTsNCi0JICAgIGFw cGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAoc3RydWN0X2dkYl90eXBlLA0K LQkJCQkJIHhzdHJkdXAgKGYubmFtZS5jX3N0ciAoKSksDQotCQkJCQkgZmll bGRfZ2RiX3R5cGUpOw0KLQkgIH0NCi0gICAgICB9DQorICAgIHR5cGUgKmdl dF90eXBlICgpDQorICAgIHsNCisgICAgICByZXR1cm4gbV90eXBlOw0KKyAg ICB9DQogDQotICAgIGlmICh0aGlzLT5zaXplICE9IDApDQotICAgICAgVFlQ RV9MRU5HVEggKHN0cnVjdF9nZGJfdHlwZSkgPSB0aGlzLT5zaXplOw0KKyAg ICB2b2lkIHZpc2l0IChjb25zdCB0ZGVzY190eXBlX2J1aWx0aW4gKmUpIG92 ZXJyaWRlDQorICAgIHsNCisgICAgICBzd2l0Y2ggKGUtPmtpbmQpDQorCXsN CisJICAvKiBQcmVkZWZpbmVkIHR5cGVzLiAgKi8NCisJY2FzZSBUREVTQ19U WVBFX0JPT0w6DQorCSAgbV90eXBlID0gYnVpbHRpbl90eXBlIChtX2dkYmFy Y2gpLT5idWlsdGluX2Jvb2w7DQorCSAgcmV0dXJuOw0KKwljYXNlIFRERVND X1RZUEVfSU5UODoNCisJICBtX3R5cGUgPSBidWlsdGluX3R5cGUgKG1fZ2Ri YXJjaCktPmJ1aWx0aW5faW50ODsNCisJICByZXR1cm47DQorCWNhc2UgVERF U0NfVFlQRV9JTlQxNjoNCisJICBtX3R5cGUgPSBidWlsdGluX3R5cGUgKG1f Z2RiYXJjaCktPmJ1aWx0aW5faW50MTY7DQorCSAgcmV0dXJuOw0KKwljYXNl IFRERVNDX1RZUEVfSU5UMzI6DQorCSAgbV90eXBlID0gYnVpbHRpbl90eXBl IChtX2dkYmFyY2gpLT5idWlsdGluX2ludDMyOw0KKwkgIHJldHVybjsNCisJ Y2FzZSBUREVTQ19UWVBFX0lOVDY0Og0KKwkgIG1fdHlwZSA9IGJ1aWx0aW5f dHlwZSAobV9nZGJhcmNoKS0+YnVpbHRpbl9pbnQ2NDsNCisJICByZXR1cm47 DQorCWNhc2UgVERFU0NfVFlQRV9JTlQxMjg6DQorCSAgbV90eXBlID0gYnVp bHRpbl90eXBlIChtX2dkYmFyY2gpLT5idWlsdGluX2ludDEyODsNCisJICBy ZXR1cm47DQorCWNhc2UgVERFU0NfVFlQRV9VSU5UODoNCisJICBtX3R5cGUg PSBidWlsdGluX3R5cGUgKG1fZ2RiYXJjaCktPmJ1aWx0aW5fdWludDg7DQor CSAgcmV0dXJuOw0KKwljYXNlIFRERVNDX1RZUEVfVUlOVDE2Og0KKwkgIG1f dHlwZSA9IGJ1aWx0aW5fdHlwZSAobV9nZGJhcmNoKS0+YnVpbHRpbl91aW50 MTY7DQorCSAgcmV0dXJuOw0KKwljYXNlIFRERVNDX1RZUEVfVUlOVDMyOg0K KwkgIG1fdHlwZSA9IGJ1aWx0aW5fdHlwZSAobV9nZGJhcmNoKS0+YnVpbHRp bl91aW50MzI7DQorCSAgcmV0dXJuOw0KKwljYXNlIFRERVNDX1RZUEVfVUlO VDY0Og0KKwkgIG1fdHlwZSA9IGJ1aWx0aW5fdHlwZSAobV9nZGJhcmNoKS0+ YnVpbHRpbl91aW50NjQ7DQorCSAgcmV0dXJuOw0KKwljYXNlIFRERVNDX1RZ UEVfVUlOVDEyODoNCisJICBtX3R5cGUgPSBidWlsdGluX3R5cGUgKG1fZ2Ri YXJjaCktPmJ1aWx0aW5fdWludDEyODsNCisJICByZXR1cm47DQorCWNhc2Ug VERFU0NfVFlQRV9DT0RFX1BUUjoNCisJICBtX3R5cGUgPSBidWlsdGluX3R5 cGUgKG1fZ2RiYXJjaCktPmJ1aWx0aW5fZnVuY19wdHI7DQorCSAgcmV0dXJu Ow0KKwljYXNlIFRERVNDX1RZUEVfREFUQV9QVFI6DQorCSAgbV90eXBlID0g YnVpbHRpbl90eXBlIChtX2dkYmFyY2gpLT5idWlsdGluX2RhdGFfcHRyOw0K KwkgIHJldHVybjsNCisJfQ0KIA0KLSAgICByZXR1cm4gc3RydWN0X2dkYl90 eXBlOw0KLSAgfQ0KKyAgICAgIG1fdHlwZSA9IHRkZXNjX2ZpbmRfdHlwZSAo bV9nZGJhcmNoLCBlLT5uYW1lLmNfc3RyICgpKTsNCisgICAgICBpZiAobV90 eXBlICE9IE5VTEwpDQorCXJldHVybjsNCiANCi0gIHR5cGUgKm1ha2VfZ2Ri X3R5cGVfdW5pb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKSBjb25zdA0K LSAgew0KLSAgICB0eXBlICp1bmlvbl9nZGJfdHlwZSA9IGFyY2hfY29tcG9z aXRlX3R5cGUgKGdkYmFyY2gsIE5VTEwsIFRZUEVfQ09ERV9VTklPTik7DQot ICAgIFRZUEVfTkFNRSAodW5pb25fZ2RiX3R5cGUpID0geHN0cmR1cCAodGhp cy0+bmFtZS5jX3N0ciAoKSk7DQorICAgICAgc3dpdGNoIChlLT5raW5kKQ0K Kwl7DQorCWNhc2UgVERFU0NfVFlQRV9JRUVFX1NJTkdMRToNCisJICBtX3R5 cGUgPSBhcmNoX2Zsb2F0X3R5cGUgKG1fZ2RiYXJjaCwgLTEsICJidWlsdGlu X3R5cGVfaWVlZV9zaW5nbGUiLA0KKwkJCQkgICAgZmxvYXRmb3JtYXRzX2ll ZWVfc2luZ2xlKTsNCisJICByZXR1cm47DQorDQorCWNhc2UgVERFU0NfVFlQ RV9JRUVFX0RPVUJMRToNCisJICBtX3R5cGUgPSBhcmNoX2Zsb2F0X3R5cGUg KG1fZ2RiYXJjaCwgLTEsICJidWlsdGluX3R5cGVfaWVlZV9kb3VibGUiLA0K KwkJCQkgICAgZmxvYXRmb3JtYXRzX2llZWVfZG91YmxlKTsNCisJICByZXR1 cm47DQorCWNhc2UgVERFU0NfVFlQRV9BUk1fRlBBX0VYVDoNCisJICBtX3R5 cGUgPSBhcmNoX2Zsb2F0X3R5cGUgKG1fZ2RiYXJjaCwgLTEsICJidWlsdGlu X3R5cGVfYXJtX2V4dCIsDQorCQkJCSAgICBmbG9hdGZvcm1hdHNfYXJtX2V4 dCk7DQorCSAgcmV0dXJuOw0KKw0KKwljYXNlIFRERVNDX1RZUEVfSTM4N19F WFQ6DQorCSAgbV90eXBlID0gYXJjaF9mbG9hdF90eXBlIChtX2dkYmFyY2gs IC0xLCAiYnVpbHRpbl90eXBlX2kzODdfZXh0IiwNCisJCQkJICAgIGZsb2F0 Zm9ybWF0c19pMzg3X2V4dCk7DQorCSAgcmV0dXJuOw0KKwl9DQogDQotICAg IGZvciAoY29uc3QgdGRlc2NfdHlwZV9maWVsZCAmZiA6IHRoaXMtPmZpZWxk cykNCi0gICAgICB7DQotCXR5cGUqIGZpZWxkX2dkYl90eXBlID0gZi50eXBl LT5tYWtlX2dkYl90eXBlIChnZGJhcmNoKTsNCi0JYXBwZW5kX2NvbXBvc2l0 ZV90eXBlX2ZpZWxkICh1bmlvbl9nZGJfdHlwZSwgeHN0cmR1cCAoZi5uYW1l LmNfc3RyICgpKSwNCi0JCQkJICAgICBmaWVsZF9nZGJfdHlwZSk7DQotDQot CS8qIElmIGFueSBvZiB0aGUgY2hpbGRyZW4gb2YgYSB1bmlvbiBhcmUgdmVj dG9ycywgZmxhZyB0aGUNCi0JICAgdW5pb24gYXMgYSB2ZWN0b3IgYWxzby4g IFRoaXMgYWxsb3dzIGUuZy4gYSB1bmlvbiBvZiB0d28NCi0JICAgdmVjdG9y IHR5cGVzIHRvIHNob3cgdXAgYXV0b21hdGljYWxseSBpbiAiaW5mbyB2ZWN0 b3IiLiAgKi8NCi0JaWYgKFRZUEVfVkVDVE9SIChmaWVsZF9nZGJfdHlwZSkp DQotCSAgVFlQRV9WRUNUT1IgKHVuaW9uX2dkYl90eXBlKSA9IDE7DQotICAg ICAgfQ0KKyAgICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5F X18sDQorCQkgICAgICAiVHlwZSBcIiVzXCIgaGFzIGFuIHVua25vd24ga2lu ZCAlZCIsDQorCQkgICAgICBlLT5uYW1lLmNfc3RyICgpLCBlLT5raW5kKTsN CisgICAgfQ0KIA0KLSAgICByZXR1cm4gdW5pb25fZ2RiX3R5cGU7DQotICB9 DQorICAgIHZvaWQgdmlzaXQgKGNvbnN0IHRkZXNjX3R5cGVfdmVjdG9yICpl KSBvdmVycmlkZQ0KKyAgICB7DQorICAgICAgbV90eXBlID0gdGRlc2NfZmlu ZF90eXBlIChtX2dkYmFyY2gsIGUtPm5hbWUuY19zdHIgKCkpOw0KKyAgICAg IGlmIChtX3R5cGUgIT0gTlVMTCkNCisJcmV0dXJuOw0KKw0KKyAgICAgIHR5 cGUgKmVsZW1lbnRfZ2RiX3R5cGUgPSBtYWtlX2dkYl90eXBlIChtX2dkYmFy Y2gsIGUtPmVsZW1lbnRfdHlwZSk7DQorICAgICAgbV90eXBlID0gaW5pdF92 ZWN0b3JfdHlwZSAoZWxlbWVudF9nZGJfdHlwZSwgZS0+Y291bnQpOw0KKyAg ICAgIFRZUEVfTkFNRSAobV90eXBlKSA9IHhzdHJkdXAgKGUtPm5hbWUuY19z dHIgKCkpOw0KKyAgICAgIHJldHVybjsNCisgICAgfQ0KIA0KLSAgdHlwZSAq bWFrZV9nZGJfdHlwZV9mbGFncyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gp IGNvbnN0DQotICB7DQotICAgIHR5cGUgKmZsYWdzX2dkYl90eXBlID0gYXJj aF9mbGFnc190eXBlIChnZGJhcmNoLCB0aGlzLT5uYW1lLmNfc3RyICgpLA0K LQkJCQkJICB0aGlzLT5zaXplICogVEFSR0VUX0NIQVJfQklUKTsNCisgICAg dm9pZCB2aXNpdCAoY29uc3QgdGRlc2NfdHlwZV93aXRoX2ZpZWxkcyAqZSkg b3ZlcnJpZGUNCisgICAgew0KKyAgICAgIG1fdHlwZSA9IHRkZXNjX2ZpbmRf dHlwZSAobV9nZGJhcmNoLCBlLT5uYW1lLmNfc3RyICgpKTsNCisgICAgICBp ZiAobV90eXBlICE9IE5VTEwpDQorCXJldHVybjsNCiANCi0gICAgZm9yIChj b25zdCB0ZGVzY190eXBlX2ZpZWxkICZmIDogdGhpcy0+ZmllbGRzKQ0KLSAg ICAgIHsNCi0gICAgICBpbnQgYml0c2l6ZSA9IGYuZW5kIC0gZi5zdGFydCAr IDE7DQorICAgICAgc3dpdGNoIChlLT5raW5kKQ0KKwl7DQorCWNhc2UgVERF U0NfVFlQRV9TVFJVQ1Q6DQorCSAgbWFrZV9nZGJfdHlwZV9zdHJ1Y3QgKGUp Ow0KKwkgIHJldHVybjsNCisJY2FzZSBUREVTQ19UWVBFX1VOSU9OOg0KKwkg IG1ha2VfZ2RiX3R5cGVfdW5pb24gKGUpOw0KKwkgIHJldHVybjsNCisJY2Fz ZSBUREVTQ19UWVBFX0ZMQUdTOg0KKwkgIG1ha2VfZ2RiX3R5cGVfZmxhZ3Mg KGUpOw0KKwkgIHJldHVybjsNCisJY2FzZSBUREVTQ19UWVBFX0VOVU06DQor CSAgbWFrZV9nZGJfdHlwZV9lbnVtIChlKTsNCisJICByZXR1cm47DQorCX0N CiANCi0gICAgICBnZGJfYXNzZXJ0IChmLnR5cGUgIT0gTlVMTCk7DQotICAg ICAgdHlwZSAqZmllbGRfZ2RiX3R5cGUgPSBmLnR5cGUtPm1ha2VfZ2RiX3R5 cGUgKGdkYmFyY2gpOw0KLSAgICAgIGFwcGVuZF9mbGFnc190eXBlX2ZpZWxk IChmbGFnc19nZGJfdHlwZSwgZi5zdGFydCwgYml0c2l6ZSwNCi0JCQkgICAg ICAgZmllbGRfZ2RiX3R5cGUsIGYubmFtZS5jX3N0ciAoKSk7DQotICAgICAg fQ0KKyAgICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18s DQorCQkgICAgICAiVHlwZSBcIiVzXCIgaGFzIGFuIHVua25vd24ga2luZCAl ZCIsDQorCQkgICAgICBlLT5uYW1lLmNfc3RyICgpLCBlLT5raW5kKTsNCisg ICAgfQ0KIA0KLSAgICByZXR1cm4gZmxhZ3NfZ2RiX3R5cGU7DQotICB9DQor ICBwcml2YXRlOg0KIA0KLSAgdHlwZSAqbWFrZV9nZGJfdHlwZV9lbnVtIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkgY29uc3QNCi0gIHsNCi0gICAgdHlw ZSAqZW51bV9nZGJfdHlwZSA9IGFyY2hfdHlwZSAoZ2RiYXJjaCwgVFlQRV9D T0RFX0VOVU0sDQotCQkJCSAgIHRoaXMtPnNpemUgKiBUQVJHRVRfQ0hBUl9C SVQsDQotCQkJCSAgIHRoaXMtPm5hbWUuY19zdHIgKCkpOw0KKyAgICB2b2lk IG1ha2VfZ2RiX3R5cGVfc3RydWN0IChjb25zdCB0ZGVzY190eXBlX3dpdGhf ZmllbGRzICplKQ0KKyAgICB7DQorICAgICAgbV90eXBlID0gYXJjaF9jb21w b3NpdGVfdHlwZSAobV9nZGJhcmNoLCBOVUxMLCBUWVBFX0NPREVfU1RSVUNU KTsNCisgICAgICBUWVBFX05BTUUgKG1fdHlwZSkgPSB4c3RyZHVwIChlLT5u YW1lLmNfc3RyICgpKTsNCisgICAgICBUWVBFX1RBR19OQU1FIChtX3R5cGUp ID0gVFlQRV9OQU1FIChtX3R5cGUpOw0KIA0KLSAgICBUWVBFX1VOU0lHTkVE IChlbnVtX2dkYl90eXBlKSA9IDE7DQotICAgIGZvciAoY29uc3QgdGRlc2Nf dHlwZV9maWVsZCAmZiA6IHRoaXMtPmZpZWxkcykNCi0gICAgICB7DQotICAg ICAgc3RydWN0IGZpZWxkICpmbGQNCi0JPSBhcHBlbmRfY29tcG9zaXRlX3R5 cGVfZmllbGRfcmF3IChlbnVtX2dkYl90eXBlLA0KKyAgICAgIGZvciAoY29u c3QgdGRlc2NfdHlwZV9maWVsZCAmZiA6IGUtPmZpZWxkcykNCisJew0KKwkg IGlmIChmLnN0YXJ0ICE9IC0xICYmIGYuZW5kICE9IC0xKQ0KKwkgICAgew0K KwkgICAgICAvKiBCaXRmaWVsZC4gICovDQorCSAgICAgIHN0cnVjdCBmaWVs ZCAqZmxkOw0KKwkgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfZ2RiX3R5cGU7 DQorCSAgICAgIGludCBiaXRzaXplLCB0b3RhbF9zaXplOw0KKw0KKwkgICAg ICAvKiBUaGlzIGludmFyaWFudCBzaG91bGQgYmUgcHJlc2VydmVkIHdoaWxl IGNyZWF0aW5nIHR5cGVzLiAgKi8NCisJICAgICAgZ2RiX2Fzc2VydCAoZS0+ c2l6ZSAhPSAwKTsNCisJICAgICAgaWYgKGYudHlwZSAhPSBOVUxMKQ0KKwkJ ZmllbGRfZ2RiX3R5cGUgPSBtYWtlX2dkYl90eXBlIChtX2dkYmFyY2gsIGYu dHlwZSk7DQorCSAgICAgIGVsc2UgaWYgKGUtPnNpemUgPiA0KQ0KKwkJZmll bGRfZ2RiX3R5cGUgPSBidWlsdGluX3R5cGUgKG1fZ2RiYXJjaCktPmJ1aWx0 aW5fdWludDY0Ow0KKwkgICAgICBlbHNlDQorCQlmaWVsZF9nZGJfdHlwZSA9 IGJ1aWx0aW5fdHlwZSAobV9nZGJhcmNoKS0+YnVpbHRpbl91aW50MzI7DQor DQorCSAgICAgIGZsZCA9IGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZF9y YXcNCisJCSAgICAgIChtX3R5cGUsIHhzdHJkdXAgKGYubmFtZS5jX3N0ciAo KSksIGZpZWxkX2dkYl90eXBlKTsNCisNCisJICAgICAgLyogRm9yIGxpdHRs ZS1lbmRpYW4sIEJJVFBPUyBjb3VudHMgZnJvbSB0aGUgTFNCIG9mDQorCQkg dGhlIHN0cnVjdHVyZSBhbmQgbWFya3MgdGhlIExTQiBvZiB0aGUgZmllbGQu ICBGb3INCisJCSBiaWctZW5kaWFuLCBCSVRQT1MgY291bnRzIGZyb20gdGhl IE1TQiBvZiB0aGUNCisJCSBzdHJ1Y3R1cmUgYW5kIG1hcmtzIHRoZSBNU0Ig b2YgdGhlIGZpZWxkLiAgRWl0aGVyDQorCQkgd2F5LCBpdCBpcyB0aGUgbnVt YmVyIG9mIGJpdHMgdG8gdGhlICJsZWZ0IiBvZiB0aGUNCisJCSBmaWVsZC4g IFRvIGNhbGN1bGF0ZSB0aGlzIGluIGJpZy1lbmRpYW4sIHdlIG5lZWQNCisJ CSB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgc3RydWN0dXJlLiAgKi8NCisJICAg ICAgYml0c2l6ZSA9IGYuZW5kIC0gZi5zdGFydCArIDE7DQorCSAgICAgIHRv dGFsX3NpemUgPSBlLT5zaXplICogVEFSR0VUX0NIQVJfQklUOw0KKwkgICAg ICBpZiAoZ2RiYXJjaF9iaXRzX2JpZ19lbmRpYW4gKG1fZ2RiYXJjaCkpDQor CQlTRVRfRklFTERfQklUUE9TIChmbGRbMF0sIHRvdGFsX3NpemUgLSBmLnN0 YXJ0IC0gYml0c2l6ZSk7DQorCSAgICAgIGVsc2UNCisJCVNFVF9GSUVMRF9C SVRQT1MgKGZsZFswXSwgZi5zdGFydCk7DQorCSAgICAgIEZJRUxEX0JJVFNJ WkUgKGZsZFswXSkgPSBiaXRzaXplOw0KKwkgICAgfQ0KKwkgIGVsc2UNCisJ ICAgIHsNCisJICAgICAgZ2RiX2Fzc2VydCAoZi5zdGFydCA9PSAtMSAmJiBm LmVuZCA9PSAtMSk7DQorCSAgICAgIHR5cGUgKmZpZWxkX2dkYl90eXBlID0g bWFrZV9nZGJfdHlwZSAobV9nZGJhcmNoLCBmLnR5cGUpOw0KKwkgICAgICBh cHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGQgKG1fdHlwZSwNCiAJCQkJCSAg IHhzdHJkdXAgKGYubmFtZS5jX3N0ciAoKSksDQotCQkJCQkgICBOVUxMKTsN CisJCQkJCSAgIGZpZWxkX2dkYl90eXBlKTsNCisJICAgIH0NCisJfQ0KIA0K LSAgICAgIFNFVF9GSUVMRF9CSVRQT1MgKGZsZFswXSwgZi5zdGFydCk7DQot ICAgICAgfQ0KKyAgICAgIGlmIChlLT5zaXplICE9IDApDQorCVRZUEVfTEVO R1RIIChtX3R5cGUpID0gZS0+c2l6ZTsNCisgICAgfQ0KIA0KLSAgICByZXR1 cm4gZW51bV9nZGJfdHlwZTsNCi0gIH0NCisgICAgdm9pZCBtYWtlX2dkYl90 eXBlX3VuaW9uIChjb25zdCB0ZGVzY190eXBlX3dpdGhfZmllbGRzICplKQ0K KyAgICB7DQorICAgICAgbV90eXBlID0gYXJjaF9jb21wb3NpdGVfdHlwZSAo bV9nZGJhcmNoLCBOVUxMLCBUWVBFX0NPREVfVU5JT04pOw0KKyAgICAgIFRZ UEVfTkFNRSAobV90eXBlKSA9IHhzdHJkdXAgKGUtPm5hbWUuY19zdHIgKCkp Ow0KIA0KLSAgdHlwZSAqbWFrZV9nZGJfdHlwZSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gpIGNvbnN0IG92ZXJyaWRlDQotICB7DQotICAgIHR5cGUgKmdk Yl90eXBlID0gdGRlc2NfZmluZF90eXBlIChnZGJhcmNoLCB0aGlzLT5uYW1l LmNfc3RyICgpKTsNCi0gICAgaWYgKGdkYl90eXBlICE9IE5VTEwpDQotICAg ICAgcmV0dXJuIGdkYl90eXBlOw0KKyAgICAgIGZvciAoY29uc3QgdGRlc2Nf dHlwZV9maWVsZCAmZiA6IGUtPmZpZWxkcykNCisJew0KKwkgIHR5cGUqIGZp ZWxkX2dkYl90eXBlID0gbWFrZV9nZGJfdHlwZSAobV9nZGJhcmNoLCBmLnR5 cGUpOw0KKwkgIGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAobV90eXBl LCB4c3RyZHVwIChmLm5hbWUuY19zdHIgKCkpLA0KKwkJCQkgICAgICAgZmll bGRfZ2RiX3R5cGUpOw0KKw0KKwkgIC8qIElmIGFueSBvZiB0aGUgY2hpbGRy ZW4gb2YgYSB1bmlvbiBhcmUgdmVjdG9ycywgZmxhZyB0aGUNCisJICAgICB1 bmlvbiBhcyBhIHZlY3RvciBhbHNvLiAgVGhpcyBhbGxvd3MgZS5nLiBhIHVu aW9uIG9mIHR3bw0KKwkgICAgIHZlY3RvciB0eXBlcyB0byBzaG93IHVwIGF1 dG9tYXRpY2FsbHkgaW4gImluZm8gdmVjdG9yIi4gICovDQorCSAgaWYgKFRZ UEVfVkVDVE9SIChmaWVsZF9nZGJfdHlwZSkpDQorCSAgICBUWVBFX1ZFQ1RP UiAobV90eXBlKSA9IDE7DQorCX0NCisgICAgfQ0KIA0KLSAgICBzd2l0Y2gg KHRoaXMtPmtpbmQpDQorICAgIHZvaWQgbWFrZV9nZGJfdHlwZV9mbGFncyAo Y29uc3QgdGRlc2NfdHlwZV93aXRoX2ZpZWxkcyAqZSkNCiAgICAgew0KLSAg ICAgIGNhc2UgVERFU0NfVFlQRV9TVFJVQ1Q6DQotCXJldHVybiBtYWtlX2dk Yl90eXBlX3N0cnVjdCAoZ2RiYXJjaCk7DQotICAgICAgY2FzZSBUREVTQ19U WVBFX1VOSU9OOg0KLQlyZXR1cm4gbWFrZV9nZGJfdHlwZV91bmlvbiAoZ2Ri YXJjaCk7DQotICAgICAgY2FzZSBUREVTQ19UWVBFX0ZMQUdTOg0KLQlyZXR1 cm4gbWFrZV9nZGJfdHlwZV9mbGFncyAoZ2RiYXJjaCk7DQotICAgICAgY2Fz ZSBUREVTQ19UWVBFX0VOVU06DQotCXJldHVybiBtYWtlX2dkYl90eXBlX2Vu dW0gKGdkYmFyY2gpOw0KKyAgICAgIG1fdHlwZSA9IGFyY2hfZmxhZ3NfdHlw ZSAobV9nZGJhcmNoLCBlLT5uYW1lLmNfc3RyICgpLA0KKwkJCQllLT5zaXpl ICogVEFSR0VUX0NIQVJfQklUKTsNCisNCisgICAgICBmb3IgKGNvbnN0IHRk ZXNjX3R5cGVfZmllbGQgJmYgOiBlLT5maWVsZHMpDQorCXsNCisJICBpbnQg Yml0c2l6ZSA9IGYuZW5kIC0gZi5zdGFydCArIDE7DQorDQorCSAgZ2RiX2Fz c2VydCAoZi50eXBlICE9IE5VTEwpOw0KKwkgIHR5cGUgKmZpZWxkX2dkYl90 eXBlID0gbWFrZV9nZGJfdHlwZSAobV9nZGJhcmNoLCBmLnR5cGUpOw0KKwkg IGFwcGVuZF9mbGFnc190eXBlX2ZpZWxkIChtX3R5cGUsIGYuc3RhcnQsIGJp dHNpemUsDQorCQkJCSAgIGZpZWxkX2dkYl90eXBlLCBmLm5hbWUuY19zdHIg KCkpOw0KKwl9DQogICAgIH0NCiANCi0gICAgaW50ZXJuYWxfZXJyb3IgKF9f RklMRV9fLCBfX0xJTkVfXywNCi0JCSAgICAiVHlwZSBcIiVzXCIgaGFzIGFu IHVua25vd24ga2luZCAlZCIsDQotCQkgICAgdGhpcy0+bmFtZS5jX3N0ciAo KSwgdGhpcy0+a2luZCk7DQorICAgIHZvaWQgbWFrZV9nZGJfdHlwZV9lbnVt IChjb25zdCB0ZGVzY190eXBlX3dpdGhfZmllbGRzICplKQ0KKyAgICB7DQor ICAgICAgbV90eXBlID0gYXJjaF90eXBlIChtX2dkYmFyY2gsIFRZUEVfQ09E RV9FTlVNLCBlLT5zaXplICogVEFSR0VUX0NIQVJfQklULA0KKwkJCSAgZS0+ bmFtZS5jX3N0ciAoKSk7DQogDQotICAgIHJldHVybiBOVUxMOw0KLSAgfQ0K KyAgICAgIFRZUEVfVU5TSUdORUQgKG1fdHlwZSkgPSAxOw0KKyAgICAgIGZv ciAoY29uc3QgdGRlc2NfdHlwZV9maWVsZCAmZiA6IGUtPmZpZWxkcykNCisJ ew0KKwkgIHN0cnVjdCBmaWVsZCAqZmxkDQorCSAgICA9IGFwcGVuZF9jb21w b3NpdGVfdHlwZV9maWVsZF9yYXcgKG1fdHlwZSwNCisJCQkJCSAgICAgICB4 c3RyZHVwIChmLm5hbWUuY19zdHIgKCkpLA0KKwkJCQkJICAgICAgIE5VTEwp Ow0KIA0KLSAgc3RkOjp2ZWN0b3I8dGRlc2NfdHlwZV9maWVsZD4gZmllbGRz Ow0KLSAgaW50IHNpemU7DQotfTsNCisJICBTRVRfRklFTERfQklUUE9TIChm bGRbMF0sIGYuc3RhcnQpOw0KKwl9DQorICAgIH0NCisNCisgICAgLyogVGhl IGdkYmFyY2ggdXNlZC4gICovDQorICAgIHN0cnVjdCBnZGJhcmNoICptX2dk YmFyY2g7DQorDQorICAgIC8qIFRoZSB0eXBlIGNyZWF0ZWQuICAqLw0KKyAg ICB0eXBlICptX3R5cGU7DQorICB9Ow0KKw0KKyAgZ2RiX3R5cGVfY3JlYXRv ciBnZGJfdHlwZSAoZ2RiYXJjaCk7DQorICB0dHlwZS0+YWNjZXB0IChnZGJf dHlwZSk7DQorICByZXR1cm4gZ2RiX3R5cGUuZ2V0X3R5cGUgKCk7DQorfQ0K IA0KIC8qIEEgZmVhdHVyZSBmcm9tIGEgdGFyZ2V0IGRlc2NyaXB0aW9uLiAg RWFjaCBmZWF0dXJlIGlzIGEgY29sbGVjdGlvbg0KICAgIG9mIG90aGVyIGVs ZW1lbnRzLCBlLmcuIHJlZ2lzdGVycyBhbmQgdHlwZXMuICAqLw0KQEAgLTEy MTYsNyArMTI2NCw3IEBAIHRkZXNjX3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbm8pDQogICAgIHsNCiAgICAgICAv KiBGaXJzdCBjaGVjayBmb3IgYSBwcmVkZWZpbmVkIG9yIHRhcmdldCBkZWZp bmVkIHR5cGUuICAqLw0KICAgICAgIGlmIChyZWctPnRkZXNjX3R5cGUpDQot ICAgICAgICBhcmNoX3JlZy0+dHlwZSA9IHJlZy0+dGRlc2NfdHlwZS0+bWFr ZV9nZGJfdHlwZSAoZ2RiYXJjaCk7DQorCWFyY2hfcmVnLT50eXBlID0gbWFr ZV9nZGJfdHlwZSAoZ2RiYXJjaCwgcmVnLT50ZGVzY190eXBlKTsNCiANCiAg ICAgICAvKiBOZXh0IHRyeSBzaXplLXNlbnNpdGl2ZSB0eXBlIHNob3J0Y3V0 cy4gICovDQogICAgICAgZWxzZSBpZiAocmVnLT50eXBlID09ICJmbG9hdCIp DQotLSANCjIuMTQuMyAoQXBwbGUgR2l0LTk4KQ0KDQoNCg0K >From gdb-patches-return-145120-listarch-gdb-patches=sources.redhat.com@sourceware.org Mon Jan 29 15:33:07 2018 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 14093 invoked by alias); 29 Jan 2018 15:33:07 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 14081 invoked by uid 89); 29 Jan 2018 15:33:06 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE autolearn=no version=3.3.2 spammy=letting X-HELO: mail-wm0-f48.google.com Received: from mail-wm0-f48.google.com (HELO mail-wm0-f48.google.com) (74.125.82.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 29 Jan 2018 15:33:05 +0000 Received: by mail-wm0-f48.google.com with SMTP id t74so15155281wme.3 for ; Mon, 29 Jan 2018 07:33:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=kuMFnubIt4LKvAzmkf8OFklXydQ/m6o56mGULHYIbLs=; b=Mtq0NPKwMy9OFhcEHr9sepQH4IMzZesmce8/fd/EJvJDTZmMplThk8rFnDL616Miv8 C9hsORShZT1X3LkOJwUx5ex++jkyyBCYf+EGgyuRD9hkcejOK+hrjK9l6Uk8wRKyyOFO mtbPq0EpewJFspQ0KBYJtKraUlP7LWR7jDIxMtBrm0UvvKy2J8svha+u09nmVMkejCSe Xu5qAm6zzd9IDIIA3B8crAlsxW/fkNip2qwkCLqRoqaq+99iQJhl4rUz5VnXkqGkditP 216p8qpHtAiSVayPhgyb/jmsgQU4nUBkF8BGWfGUVGNqUbdkvaQb2d1/fFp+VSz3tf7W TSBA== X-Gm-Message-State: AKwxytdQyzTZ7BlR32saGflCVsGr4TQsBIk8Vf4KdbodfUx3DaLa/JPW QAnXfc+4G81o/3UL2RYN6ltwhWqLGmQ= X-Google-Smtp-Source: AH8x224OPYOmFQbNs0RYuNQ2Y/dOGRx4BxLHzmee9HWktb5rpHVzIxWS9sTaiAMJ2rq+HuTLjHGPXQ== X-Received: by 10.28.105.214 with SMTP id z83mr19324300wmh.77.1517239982570; Mon, 29 Jan 2018 07:33:02 -0800 (PST) Received: from ?IPv6:2001:8a0:f915:7500:56ee:75ff:fe8d:232b? ([2001:8a0:f915:7500:56ee:75ff:fe8d:232b]) by smtp.gmail.com with ESMTPSA id 63sm14949685wms.46.2018.01.29.07.33.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 Jan 2018 07:33:01 -0800 (PST) Subject: Re: [RFC] regresssion(internal-error) printing subprogram argument To: Joel Brobecker References: <20171215094755.dwocipbcwvtdm6f6@adacore.com> <00320239-44c8-b9c3-013b-b27c771e3401@redhat.com> <07a154ef-b6f5-ad86-1410-a73620de4b5b@redhat.com> <20180103043345.n6blge377ybsdx6q@adacore.com> <8df5cf8b-6e4e-e310-fcbd-2615334fe5b9@redhat.com> <832dbb30-7c2b-40ed-c03c-654bd1e2ea32@redhat.com> <20180117091332.z7bqu4aljudq33sw@adacore.com> <20180126035055.vbjtowj6q5ftbwiz@adacore.com> <21bfbb6a-bb10-812b-c34a-d367321e8d5e@redhat.com> <20180129103841.kdkomcjbuwiat5b4@adacore.com> Cc: gdb-patches@sourceware.org From: Pedro Alves Message-ID: <250976c6-6e7a-6a8e-b9f2-a57f5b92b965@redhat.com> Date: Mon, 29 Jan 2018 15:33:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <20180129103841.kdkomcjbuwiat5b4@adacore.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2018-01/txt/msg00594.txt.bz2 Content-length: 3051 On 01/29/2018 10:38 AM, Joel Brobecker wrote: >> Indeed, looks like I don't have that. I have "interfacesS". >> I've attached the whole file. > > That explains it :). > >> So it may be that we still need to add another special case >> for Ada somewhere. Would old GDB from before the C++ >> wildmatching pass this test for you? > > I went binary searching for the source of the regression and > when I found that it was "caused" by the change requiring variables > without debugging information to be cast before they can be printed, > I gently head-slapped myself, adjusted the testcase to use something > other than an integer variable, and voila - even GDB 7.10 suffers > from the problem. We just didn't see it for integer variables simply > because we were lucky! > > I ran out of time again today, but at least the WIP patch got > augmented with a testcase that currently fails before the patch > is applied. > > I think the patch itself is probably correct, although I'd like > to do some archeology to understand the comment attached to > that location. I'm pretty confused by it, when we could simply > say that symbols from languages that do not follow the C++ mangling > should not be demangled by gdb_demangle -- at least for as long > as gdb_demangle is equivalent to cplusplus_demangle in practice... Yeah, the commentary around that code isn't exactly clear. Why doesn't that code use language->la_demangle instead, for example. The other day I noticed that gdb_demangle -> bfd_demangle -> cplus_demangle does have support for demangling other languages. For Ada, see the GNAT_DEMANGLING handling in libiberty.c:cplus-dem.c:cplus_demangle, which takes you to: /* Demangle ada names. The encoding is documented in gcc/ada/exp_dbug.ads. */ char * ada_demangle (const char *mangled, int option ATTRIBUTE_UNUSED) { When I saw that, I wondered why is it that GDB has a separate implementation of Ada decoding in gdb/ada-lang.c. The only plausible explanation I came up with is that gdb's version decodes into a buffer that is shared between invocations while libiberty's version always heap-allocates the result. Maybe it was an efficiency thing? Do you know? I ran into that around this discussion where I was wondering whether we could speed up demangling by letting bfd_demangle / cplus_demangle try all languages and return back which one worked: ~~~ An idea I had would be to try to combine most the language_sniff_from_mangled_name implementations in one call, by deferring to cplus_demangle which seems like could take care of gnu v3, rust, java, gnat, dlang and old C++ mangling schemes all at once. This would avoid the overhead of gdb_demangle and bfd_demangle for each language-specific demangling call, at least. Not sure. ~~~ Because ada_decode comes up high in profiles today... > > And just as a reminder for myself, I said in my other email > last week that I wanted also to review all the calls to gdb_demangle. Thanks, Pedro Alves