From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 80571 invoked by alias); 16 Oct 2019 11:09:04 -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 80246 invoked by uid 89); 16 Oct 2019 11:09:03 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=pln, gdbpatches, gdb-patches X-HELO: EUR03-AM5-obe.outbound.protection.outlook.com Received: from mail-eopbgr30085.outbound.protection.outlook.com (HELO EUR03-AM5-obe.outbound.protection.outlook.com) (40.107.3.85) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 16 Oct 2019 11:09:00 +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=4JC9SH2tNpAGt29RN98h/uAUQdJivfHeJEetbo0s2W4=; b=Ac4+iFnyT76KOWtPGyBHiL7PT8VivoKjrihiXFjY1z97JqaQTrTqaKgDlFLBtwOaaDeZILm1aTM0LH4SpU9uBFScsf+HH8EjlerzDTx13OItqrCI5fDSM1arENB3vHJGOLzDjOadrfL8PlKl6u5eg4fiqC+kgfstTmMVkNONtvM= Received: from AM4PR08CA0061.eurprd08.prod.outlook.com (2603:10a6:205:2::32) by AM5PR0801MB1810.eurprd08.prod.outlook.com (2603:10a6:203:3b::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.16; Wed, 16 Oct 2019 11:08:56 +0000 Received: from DB5EUR03FT047.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::204) by AM4PR08CA0061.outlook.office365.com (2603:10a6:205:2::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2347.16 via Frontend Transport; Wed, 16 Oct 2019 11:08:56 +0000 Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=none action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT047.mail.protection.outlook.com (10.152.21.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2305.15 via Frontend Transport; Wed, 16 Oct 2019 11:08:54 +0000 Received: ("Tessian outbound 927f2cdd66cc:v33"); Wed, 16 Oct 2019 11:08:52 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7295c87d525d29f3 X-CR-MTA-TID: 64aa7808 Received: from 69994938483f.1 (ip-172-16-0-2.eu-west-1.compute.internal [104.47.5.59]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id 7289CC6C-49C3-43ED-B022-905411380FB3.1; Wed, 16 Oct 2019 11:08:46 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2059.outbound.protection.outlook.com [104.47.5.59]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 69994938483f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384); Wed, 16 Oct 2019 11:08:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bw78HuIWkvp6aYtXMxsOux0QW1gm57fC8fZsM1liRUrlVc1R0aI4ffXp880BY8eCNrmk0iMjdjNoKusOiplkcA1V5xEyf0WmN0ouDDDtklNYbf+xwXPsOdDzYFIFz93BVt+dl3A48o6TpNAjXEBrUYKZz1DRBMlLmAw+/UuYs+gIIZrwiCxq96jaxyGcCYU46Dn7V/uhUkeUd4VXtMtju75Ml+bEuRus0Rynl7In3usVSzTmSCBmkN33S2jLviJpbD34WXG5EhUiCXudDWKUnLv3XzdAI0K4koIElLS7CUTFDpIfaBmFdXBaORmQbdDpjCQebhBSLBBhXdQdlnMm7A== 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-SenderADCheck; bh=4JC9SH2tNpAGt29RN98h/uAUQdJivfHeJEetbo0s2W4=; b=NGlUZbaT+Rjx6DoPb02WHdQJCUI594sBLOWAnrpGftvRvJB1Q9lnhoq/jGlOkbUbdEWR9h5oRmEM+VwA0IsXfxsovAI1Pco8PY7zY8OeX0xBZcKDAfwJ84x9MYpNChthpwcnxoW9hKIarrlOhX08a1PuNO5rpwKhr5x/kwtNhYPjjujSg046waKV0zwcYhrBWAQwi4xaa9infRV//DEcsOALzQTwZm3RTliCR1PCjNhC4DNYe9zCHTJ4wLU99H95CSBJ1NJe5IVI7aBfGBh5atViX5auaQnGL4AZZKW1MFmPtGvN7ga1WeHO2WOxsKF6ddnFoql2z/vKdY0duWMpvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none 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=4JC9SH2tNpAGt29RN98h/uAUQdJivfHeJEetbo0s2W4=; b=Ac4+iFnyT76KOWtPGyBHiL7PT8VivoKjrihiXFjY1z97JqaQTrTqaKgDlFLBtwOaaDeZILm1aTM0LH4SpU9uBFScsf+HH8EjlerzDTx13OItqrCI5fDSM1arENB3vHJGOLzDjOadrfL8PlKl6u5eg4fiqC+kgfstTmMVkNONtvM= Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com (10.172.227.22) by DB6PR0802MB2135.eurprd08.prod.outlook.com (10.172.226.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.18; Wed, 16 Oct 2019 11:08:42 +0000 Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::71be:224d:4d17:c873]) by DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::71be:224d:4d17:c873%8]) with mapi id 15.20.2347.023; Wed, 16 Oct 2019 11:08:42 +0000 From: Alan Hayward To: Tom de Vries , Simon Marchi , Andrew Burgess , "gdb-patches\\@sourceware.org" CC: nd Subject: Re: Change in binutils-gdb[master]: [gdb/tdep] Fix 'Unexpected register class' assert in amd64_push_argum... Date: Wed, 16 Oct 2019 11:09:00 -0000 Message-ID: References: <5A0DCAF8-4BFF-49C2-86C7-5E9C5B5A911B@arm.com> <8811FC3D-F8EB-4711-89E3-BE46423C40A8@arm.com> In-Reply-To: <8811FC3D-F8EB-4711-89E3-BE46423C40A8@arm.com> Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; X-MS-Exchange-PUrlCount: 2 x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:2449;OLM:2449; X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4636009)(39860400002)(376002)(366004)(396003)(136003)(346002)(189003)(199004)(91956017)(66946007)(99286004)(26005)(7736002)(71190400001)(305945005)(86362001)(186003)(71200400001)(76116006)(66476007)(5660300002)(66556008)(36756003)(64756008)(14454004)(66066001)(110136005)(66446008)(3846002)(966005)(478600001)(6512007)(6116002)(53546011)(6506007)(33656002)(76176011)(6436002)(256004)(2906002)(316002)(6306002)(446003)(11346002)(476003)(6486002)(25786009)(2616005)(486006)(50226002)(81156014)(102836004)(6246003)(4326008)(8936002)(229853002)(8676002)(81166006)(491001)(473944003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2135;H:DB6PR0802MB2133.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: ARgdguvFjY+w4sV3CEYDjDDM/COdDEWI2zskWGogLPO2fANVuYE0Eq2mBaUeaUy5sVLK8IbVXPgBM55njfqzYT2OMZagePp2O9Z46Zz4HzJbCptGse+kJ9bpUHVDQXyGzHguW5PDghFaxlNjRovnXDZmE/91eT+jmoFViKdDzgvcPGxMF917zZLT9oCc5hvnNefxlvK2JujNdIS6CaRL6juf907zXDae8w/k0GfJ7rISs0PHKkcHYx0KFHGCm6nUomqPiWOKgJRxBdt1cY9erJ9RrNZ3FhV04ciYjOFtXT7TLv/IBUriECaAnAi3QCYxZ7gdxt4OIeIfidWq2xbk2cFoTrZjCp1/Fezdc7DUZR8ZNPxTuy7yUnlOiYs6edSmk3dgSnjT2pRJWbOddjdAhLVka4nSQyYd3WV764/jt1cNtFXeLD7IS42n3KT6O5IPZgSANH2n6osxQuApQFmOug== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <3C08D9C53CE8484E8B8220EDBDA1E252@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; Return-Path: Alan.Hayward@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT047.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: efce9f10-9b1f-4bb6-63e1-08d752293491 X-IsSubscribed: yes X-SW-Source: 2019-10/txt/msg00471.txt.bz2 DQoNCj4gT24gMTUgT2N0IDIwMTksIGF0IDE4OjIzLCBBbGFuIEhheXdhcmQg PEFsYW4uSGF5d2FyZEBhcm0uY29tPiB3cm90ZToNCj4gDQo+IA0KPiANCj4+ IE9uIDE1IE9jdCAyMDE5LCBhdCAwOTowNCwgVG9tIGRlIFZyaWVzIChDb2Rl IFJldmlldykgPGdlcnJpdEBnbnV0b29sY2hhaW4tZ2Vycml0Lm9zY2kuaW8+ IHdyb3RlOg0KPj4gDQo+PiBUb20gZGUgVnJpZXMgaGFzIHBvc3RlZCBjb21t ZW50cyBvbiB0aGlzIGNoYW5nZS4NCj4+IA0KPj4gQ2hhbmdlIFVSTDogaHR0 cHM6Ly9nbnV0b29sY2hhaW4tZ2Vycml0Lm9zY2kuaW8vci9jL2JpbnV0aWxz LWdkYi8rLzMwDQo+PiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uDQo+PiAN Cj4+IA0KPj4gUGF0Y2ggU2V0IDE6DQo+PiANCj4+IGh0dHBzOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxOS0xMC9tc2cwMDM0My5odG1s Og0KPj4gLi4uDQo+PiBPbiAxNC0xMC0yMDE5IDE1OjEwLCBBbGFuIEhheXdh cmQgd3JvdGU6DQo+Pj4+IFRoaXMgZXhwb3NlcyA5IG1vcmUgRkFJTHMgb2Yg dGhlIFBSIHRkZXAvMjUwOTYgdHlwZSwgc28gbWFyayBhbGwgMTIgb2YgdGhl bSBhcw0KPj4+PiBLRkFJTC4NCj4+PiBXaGVuIEkgcnVuIHRoZSB0ZXN0LCBJ IGdldCB0aHJlZSB1bmV4cGVjdGVkIHBhc3NlczoNCj4+PiANCj4+PiANCj4+ PiAjIG9mIGV4cGVjdGVkIHBhc3NlcwkJOTM4OA0KPj4+ICMgb2YgdW5rbm93 biBzdWNjZXNzZXMJCTMNCj4+PiAjIG9mIGtub3duIGZhaWx1cmVzCQk5DQo+ Pj4gDQo+Pj4gS1BBU1M6IGdkYi5iYXNlL2luZmNhbGwtbmVzdGVkLXN0cnVj dHMuZXhwOiBsPWMrKzogdHlwZXMtdGMtdGY6IHAvZCBjaGVja19hcmdfc3Ry dWN0XzAyXzAxIChyZWZfdmFsX3N0cnVjdF8wMl8wMSkgKFBSTVMgZ2RiLzI1 MDk2KQ0KPj4+IEtQQVNTOiBnZGIuYmFzZS9pbmZjYWxsLW5lc3RlZC1zdHJ1 Y3RzLmV4cDogbD1jKys6IHR5cGVzLXRzLXRmOiBwL2QgY2hlY2tfYXJnX3N0 cnVjdF8wMl8wMSAocmVmX3ZhbF9zdHJ1Y3RfMDJfMDEpIChQUk1TIGdkYi8y NTA5NikNCj4+PiBLUEFTUzogZ2RiLmJhc2UvaW5mY2FsbC1uZXN0ZWQtc3Ry dWN0cy5leHA6IGw9YysrOiB0eXBlcy10aS10ZjogcC9kIGNoZWNrX2FyZ19z dHJ1Y3RfMDJfMDEgKHJlZl92YWxfc3RydWN0XzAyXzAxKSAoUFJNUyBnZGIv MjUwOTYpDQo+PiANCj4+IFRoYXQgY291bGQgYmUgZHVlIHRvIHJlZ2lzdGVy cyBoYXBwZW5pbmcgdG8gaGF2ZSB0aGUgY29ycmVjdCB2YWx1ZS4NCj4+IA0K Pj4gRG8gdGhlc2UgdHVybiBpbnRvIEtGQUlMcyBpZiB5b3UgYWRkOg0KPj4g Li4uDQo+PiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9p bmZjYWxsLW5lc3RlZC1zdHJ1Y3RzLmV4cA0KPj4gYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2luZmNhbGwtbmVzdGVkLXN0cnVjdHMuDQo+PiBleHANCj4+ IGluZGV4IDk1N2ViMzFiZGMyLi5mNjJmNjM2YWExMSAxMDA2NDQNCj4+IC0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW5mY2FsbC1uZXN0ZWQtc3Ry dWN0cy5leHANCj4+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW5m Y2FsbC1uZXN0ZWQtc3RydWN0cy5leHANCj4+IEBAIC0xMzQsNiArMTM0LDcg QEAgcHJvYyBydW5fdGVzdHMgeyBsYW5nIHR5cGVzIH0gew0KPj4gDQo+PiAg ICBpZiB7ICRsYW5nID09ICJjKysiICYmICRuYW1lID09ICJzdHJ1Y3RfMDJf MDEiDQo+PiAgICAgICAgICYmIFtyZWdleHAgIl50eXBlcy0odGYtdChjfHN8 aSl8dChjfHN8aSktdGYpIiAkdHlwZXMgbWF0Y2hdIH0gew0KPj4gKyAgICAg ICAgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgXCR4bW0wLnYyX2ludDY0 XFswXF0gPSAwIg0KPj4gICAgICAgIHNldHVwX2tmYWlsIGdkYi8yNTA5NiAi eDg2XzY0LSotbGludXgqIg0KPj4gICAgfQ0KPj4gICAgZ2RiX3Rlc3QgInAv ZCBjaGVja19hcmdfJHtuYW1lfSAocmVmX3ZhbF8ke25hbWV9KSIgIj0gMSIN Cj4+IC4uLg0KPj4gPw0KPj4gLi4uDQo+IA0KPiBJIHN0aWxsIGdldCBLUEFT U2VzIHdpdGggdGhhdCBjaGFuZ2UuDQo+IEFsc28gdHJpZWQgYWRkaW5nIHRo ZSBsaW5lIHRvIHRoZSBuZXh0IGJsb2NrIGluIHRoZSB0ZXN0IHdpdGggdGhl IHNhbWUgaWYgc3RhdGVtZW50cywgYnV0IGl0IGRpZG7igJl0IGhlbHAuDQo+ IA0KPiANCg0KU29ycnksIGlnbm9yZSBteSBjb21tZW50Lg0KSSB3YXMgYWNj aWRlbnRhbGx5IHJ1bm5pbmcgdXNpbmcgdGhlIDguMyBicmFuY2guDQpXaGVu IEkgdXNlIHRoZSBsYXRlc3QgbWFzdGVyLCBpdCBhbGwgd29ya3MgZm9yIG1l Lg0KDQpBbGFuLg0KDQoNCg0KDQo+IElmIGl0IGhlbHBzLCBteSBzeXN0ZW0g aXM6DQo+IA0KPiBVYnVudHUgMTYuMDQuMyBMVFMgKEdOVS9MaW51eCA0LjQu MC0xNDItZ2VuZXJpYyB4ODZfNjQpDQo+IA0KPiANCj4gRW5kIG9mIC9wcm9j L2NwdWluZm86DQo+IA0KPiBwcm9jZXNzb3IJOiA1NQ0KPiB2ZW5kb3JfaWQJ OiBHZW51aW5lSW50ZWwNCj4gY3B1IGZhbWlseQk6IDYNCj4gbW9kZWwJCTog NzkNCj4gbW9kZWwgbmFtZQk6IEludGVsKFIpIFhlb24oUikgQ1BVIEU1LTI2 OTAgdjQgQCAyLjYwR0h6DQo+IHN0ZXBwaW5nCTogMQ0KPiBtaWNyb2NvZGUJ OiAweGIwMDAwMzYNCj4gY3B1IE1IegkJOiAxMjAwLjAwMA0KPiBjYWNoZSBz aXplCTogMzU4NDAgS0INCj4gcGh5c2ljYWwgaWQJOiAxDQo+IHNpYmxpbmdz CTogMjgNCj4gY29yZSBpZAkJOiAxNA0KPiBjcHUgY29yZXMJOiAxNA0KPiBh cGljaWQJCTogNjENCj4gaW5pdGlhbCBhcGljaWQJOiA2MQ0KPiBmcHUJCTog eWVzDQo+IGZwdV9leGNlcHRpb24JOiB5ZXMNCj4gY3B1aWQgbGV2ZWwJOiAy MA0KPiB3cAkJOiB5ZXMNCj4gZmxhZ3MJCTogZnB1IHZtZSBkZSBwc2UgdHNj IG1zciBwYWUgbWNlIGN4OCBhcGljIHNlcCBtdHJyIHBnZSBtY2EgY21vdiBw YXQgcHNlMzYgY2xmbHVzaCBkdHMgYWNwaSBtbXggZnhzciBzc2Ugc3NlMiBz cyBodCB0bSBwYmUgc3lzY2FsbCBueCBwZHBlMWdiIHJkdHNjcCBsbSBjb25z dGFudF90c2MgYXJjaF9wZXJmbW9uIHBlYnMgYnRzIHJlcF9nb29kIG5vcGwg eHRvcG9sb2d5IG5vbnN0b3BfdHNjIGFwZXJmbXBlcmYgcG5pIHBjbG11bHFk cSBkdGVzNjQgbW9uaXRvciBkc19jcGwgdm14IHNteCBlc3QgdG0yIHNzc2Uz IHNkYmcgZm1hIGN4MTYgeHRwciBwZGNtIHBjaWQgZGNhIHNzZTRfMSBzc2U0 XzIgeDJhcGljIG1vdmJlIHBvcGNudCB0c2NfZGVhZGxpbmVfdGltZXIgYWVz IHhzYXZlIGF2eCBmMTZjIHJkcmFuZCBsYWhmX2xtIGFibSAzZG5vd3ByZWZl dGNoIGVwYiBpbnZwY2lkX3NpbmdsZSBpbnRlbF9wdCBzc2JkIGlicnMgaWJw YiBzdGlicCBrYWlzZXIgdHByX3NoYWRvdyB2bm1pIGZsZXhwcmlvcml0eSBl cHQgdnBpZCBmc2dzYmFzZSB0c2NfYWRqdXN0IGJtaTEgaGxlIGF2eDIgc21l cCBibWkyIGVybXMgaW52cGNpZCBydG0gY3FtIHJkc2VlZCBhZHggc21hcCB4 c2F2ZW9wdCBjcW1fbGxjIGNxbV9vY2N1cF9sbGMgY3FtX21ibV90b3RhbCBj cW1fbWJtX2xvY2FsIGR0aGVybSBpZGEgYXJhdCBwbG4gcHRzIGZsdXNoX2wx ZA0KPiBidWdzCQk6IGNwdV9tZWx0ZG93biBzcGVjdHJlX3YxIHNwZWN0cmVf djIgc3BlY19zdG9yZV9ieXBhc3MgbDF0Zg0KPiBib2dvbWlwcwk6IDUxOTYu ODgNCj4gY2xmbHVzaCBzaXplCTogNjQNCj4gY2FjaGVfYWxpZ25tZW50CTog NjQNCj4gYWRkcmVzcyBzaXplcwk6IDQ2IGJpdHMgcGh5c2ljYWwsIDQ4IGJp dHMgdmlydHVhbA0KPiBwb3dlciBtYW5hZ2VtZW50Og0KPiANCj4gDQo+IA0K DQo= >From gdb-patches-return-159642-listarch-gdb-patches=sources.redhat.com@sourceware.org Wed Oct 16 12:39:25 2019 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 7316 invoked by alias); 16 Oct 2019 12:39:24 -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 7236 invoked by uid 89); 16 Oct 2019 12:39:23 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-17.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_STOCKGEN autolearn=ham version=3.3.1 spammy= X-HELO: mx1.osci.io Received: from polly.osci.io (HELO mx1.osci.io) (8.43.85.229) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 16 Oct 2019 12:39:16 +0000 Received: by mx1.osci.io (Postfix, from userid 994) id 499BD20674; Wed, 16 Oct 2019 08:39:15 -0400 (EDT) Received: from gnutoolchain-gerrit.osci.io (gnutoolchain-gerrit.osci.io [8.43.85.239]) by mx1.osci.io (Postfix) with ESMTP id 199E120471; Wed, 16 Oct 2019 08:39:08 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by gnutoolchain-gerrit.osci.io (Postfix) with ESMTP id E788E20AF6; Wed, 16 Oct 2019 08:39:07 -0400 (EDT) X-Gerrit-PatchSet: 2 Date: Wed, 16 Oct 2019 12:39:00 -0000 From: "Christian Biesinger (Code Review)" To: Christian Biesinger , gdb-patches@sourceware.org Auto-Submitted: auto-generated X-Gerrit-MessageType: newpatchset Subject: [review] Change some arguments to gdb::string_view instead of name+len X-Gerrit-Change-Id: I2675c6865e0368f9c755a1081088a53aa54dda4c X-Gerrit-Change-Number: 125 X-Gerrit-ChangeURL: X-Gerrit-Commit: caa753204dd3fe924b209ca9c834f5567ea059ec In-Reply-To: References: Reply-To: cbiesinger@google.com, cbiesinger@google.com, gdb-patches@sourceware.org MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Disposition: inline User-Agent: Gerrit/3.0.3 Content-Type: text/plain; charset=UTF-8 Message-Id: <20191016123907.E788E20AF6@gnutoolchain-gerrit.osci.io> X-SW-Source: 2019-10/txt/msg00474.txt.bz2 Content-length: 34696 Christian Biesinger has uploaded a new patch set version (#2). Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/125 ...................................................................... Change some arguments to gdb::string_view instead of name+len Just some code cleanup. This change has a few benefits: - Shorter argument list in the functions - If the caller needs to calculate the string, they no longer need to explicitly call strlen - It is easy to pass std::string to this (done in one place currently) This also updates a couple of places that were passing 0/1 to a bool parameter. gdb/ChangeLog: 2019-09-29 Christian Biesinger * coffread.c (record_minimal_symbol): Update. (process_coff_symbol): Update. * dbxread.c (read_dbx_symtab): Update. * dwarf2read.c (add_partial_symbol): Update. (fixup_go_packaging): Update. (load_partial_dies): Update. (new_symbol): Update. * elfread.c (record_minimal_symbol): Update. * mdebugread.c (parse_partial_symbols): Update. (handle_psymbol_enumerators): Update. (new_symbol): Update. * minsyms.c (minimal_symbol_reader::record_full): Change signature to use gdb::string_view instead of name+len. * minsyms.h (class minimal_symbol_reader) : Likewise. * psympriv.h (add_psymbol_to_list): Likewise. * psymtab.c (add_psymbol_to_bcache): Likewise. (add_psymbol_to_list): Likewise. * stabsread.c (define_symbol): Update. * symtab.c (symbol_set_names): Change signature to use gdb::string_view. * symtab.h (SYMBOL_SET_NAMES): Likewise. (symbol_set_names): Likewise. * xcoffread.c (scan_xcoff_symtab): Update. Change-Id: I2675c6865e0368f9c755a1081088a53aa54dda4c --- M gdb/coffread.c M gdb/ctfread.c M gdb/dbxread.c M gdb/dwarf2read.c M gdb/elfread.c M gdb/mdebugread.c M gdb/minsyms.c M gdb/minsyms.h M gdb/psympriv.h M gdb/psymtab.c M gdb/stabsread.c M gdb/symtab.c M gdb/symtab.h M gdb/xcoffread.c 14 files changed, 151 insertions(+), 139 deletions(-) diff --git a/gdb/coffread.c b/gdb/coffread.c index 869a32b..3fed056 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -462,8 +462,7 @@ return NULL; } - return reader.record_full (cs->c_name, strlen (cs->c_name), true, address, - type, section); + return reader.record_full (cs->c_name, true, address, type, section); } /* coff_symfile_init () @@ -1569,7 +1568,7 @@ name = EXTERNAL_NAME (name, objfile->obfd); SYMBOL_SET_LANGUAGE (sym, get_current_subfile ()->language, &objfile->objfile_obstack); - SYMBOL_SET_NAMES (sym, name, strlen (name), 1, objfile); + SYMBOL_SET_NAMES (sym, name, true, objfile); /* default assumptions */ SYMBOL_VALUE (sym) = cs->c_value; diff --git a/gdb/ctfread.c b/gdb/ctfread.c index 44ccff6..0e80150 100644 --- a/gdb/ctfread.c +++ b/gdb/ctfread.c @@ -380,7 +380,7 @@ OBJSTAT (ccp->of, n_syms++); SYMBOL_SET_LANGUAGE (sym, language_c, &ccp->of->objfile_obstack); - SYMBOL_SET_NAMES (sym, name, strlen (name), 0, ccp->of); + SYMBOL_SET_NAMES (sym, name, false, ccp->of); SYMBOL_ACLASS_INDEX (sym) = LOC_CONST; SYMBOL_DOMAIN (sym) = VAR_DOMAIN; SYMBOL_TYPE (sym) = fip->ptype; @@ -409,7 +409,7 @@ OBJSTAT (objfile, n_syms++); SYMBOL_SET_LANGUAGE (sym, language_c, &objfile->objfile_obstack); - SYMBOL_SET_NAMES (sym, name.get (), strlen (name.get ()), 1, objfile); + SYMBOL_SET_NAMES (sym, name.get (), true, objfile); SYMBOL_DOMAIN (sym) = VAR_DOMAIN; SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT; @@ -1029,7 +1029,7 @@ if (type) { sym = new_symbol (ccp, type, id); - SYMBOL_SET_NAMES (sym, name, strlen (name), 0, ccp->of); + SYMBOL_SET_NAMES (sym, name, false, ccp->of); } break; case CTF_K_STRUCT: @@ -1045,7 +1045,7 @@ SYMBOL_TYPE (sym) = type; SYMBOL_DOMAIN (sym) = VAR_DOMAIN; SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT; - SYMBOL_SET_NAMES (sym, name, strlen (name), 0, ccp->of); + SYMBOL_SET_NAMES (sym, name, false, ccp->of); add_symbol_to_list (sym, ccp->builder->get_global_symbols ()); break; default: @@ -1365,7 +1365,7 @@ return 0; } - add_psymbol_to_list (name.get (), strlen (name.get ()), true, + add_psymbol_to_list (name.get (), true, domain, aclass, section, psymbol_placement::GLOBAL, 0, language_c, ccp->of); @@ -1380,7 +1380,7 @@ { ctf_context_t *ccp = (ctf_context_t *) arg; - add_psymbol_to_list (name, strlen (name), true, + add_psymbol_to_list (name, true, VAR_DOMAIN, LOC_STATIC, -1, psymbol_placement::GLOBAL, 0, language_c, ccp->of); @@ -1445,7 +1445,7 @@ else aclass = LOC_TYPEDEF; - add_psymbol_to_list (tname.get (), strlen (tname.get ()), true, + add_psymbol_to_list (tname.get (), true, tdomain, aclass, -1, psymbol_placement::STATIC, 0, language_c, of); diff --git a/gdb/dbxread.c b/gdb/dbxread.c index 564c5d3..16727ef 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -1464,7 +1464,7 @@ if (gdbarch_static_transform_name_p (gdbarch)) gdbarch_static_transform_name (gdbarch, namestring); - add_psymbol_to_list (sym_name, sym_len, true, + add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true, VAR_DOMAIN, LOC_STATIC, data_sect_index, psymbol_placement::STATIC, @@ -1474,7 +1474,7 @@ case 'G': /* The addresses in these entries are reported to be wrong. See the code that reads 'G's for symtabs. */ - add_psymbol_to_list (sym_name, sym_len, true, + add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true, VAR_DOMAIN, LOC_STATIC, data_sect_index, psymbol_placement::GLOBAL, @@ -1492,15 +1492,15 @@ || (p == namestring + 1 && namestring[0] != ' ')) { - add_psymbol_to_list (sym_name, sym_len, true, - STRUCT_DOMAIN, LOC_TYPEDEF, -1, + add_psymbol_to_list (gdb::string_view (sym_name, sym_len), + true, STRUCT_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); if (p[2] == 't') { /* Also a typedef with the same name. */ - add_psymbol_to_list (sym_name, sym_len, true, - VAR_DOMAIN, LOC_TYPEDEF, -1, + add_psymbol_to_list (gdb::string_view (sym_name, sym_len), + true, VAR_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); p += 1; @@ -1511,8 +1511,8 @@ case 't': if (p != namestring) /* a name is there, not just :T... */ { - add_psymbol_to_list (sym_name, sym_len, true, - VAR_DOMAIN, LOC_TYPEDEF, -1, + add_psymbol_to_list (gdb::string_view (sym_name, sym_len), + true, VAR_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); } @@ -1572,7 +1572,7 @@ ; /* Note that the value doesn't matter for enum constants in psymtabs, just in symtabs. */ - add_psymbol_to_list (p, q - p, true, + add_psymbol_to_list (gdb::string_view (p, q - p), true, VAR_DOMAIN, LOC_CONST, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); @@ -1590,7 +1590,7 @@ case 'c': /* Constant, e.g. from "const" in Pascal. */ - add_psymbol_to_list (sym_name, sym_len, true, + add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true, VAR_DOMAIN, LOC_CONST, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); @@ -1645,7 +1645,7 @@ pst->set_text_low (nlist.n_value); textlow_not_set = 0; } - add_psymbol_to_list (sym_name, sym_len, true, + add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true, VAR_DOMAIN, LOC_BLOCK, SECT_OFF_TEXT (objfile), psymbol_placement::STATIC, @@ -1704,7 +1704,7 @@ pst->set_text_low (nlist.n_value); textlow_not_set = 0; } - add_psymbol_to_list (sym_name, sym_len, true, + add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true, VAR_DOMAIN, LOC_BLOCK, SECT_OFF_TEXT (objfile), psymbol_placement::GLOBAL, diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 0443b55..f842f50 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -8922,7 +8922,7 @@ But in Ada and Fortran, we want to be able to access nested procedures globally. So all Ada and Fortran subprograms are stored in the global scope. */ - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, VAR_DOMAIN, LOC_BLOCK, SECT_OFF_TEXT (objfile), @@ -8932,7 +8932,7 @@ } else { - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, VAR_DOMAIN, LOC_BLOCK, SECT_OFF_TEXT (objfile), @@ -8944,7 +8944,7 @@ set_objfile_main_name (objfile, actual_name, cu->language); break; case DW_TAG_constant: - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, VAR_DOMAIN, LOC_STATIC, -1, (pdi->is_external ? psymbol_placement::GLOBAL @@ -8980,7 +8980,7 @@ table building. */ if (pdi->d.locdesc || pdi->has_type) - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, VAR_DOMAIN, LOC_STATIC, SECT_OFF_TEXT (objfile), @@ -8999,7 +8999,7 @@ return; } - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, VAR_DOMAIN, LOC_STATIC, SECT_OFF_TEXT (objfile), @@ -9011,7 +9011,7 @@ case DW_TAG_typedef: case DW_TAG_base_type: case DW_TAG_subrange_type: - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, VAR_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::STATIC, @@ -9019,7 +9019,7 @@ break; case DW_TAG_imported_declaration: case DW_TAG_namespace: - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, VAR_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::GLOBAL, @@ -9030,7 +9030,7 @@ available without any name. If so, we skip the module as it doesn't bring any value. */ if (actual_name != nullptr) - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, MODULE_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::GLOBAL, @@ -9054,7 +9054,7 @@ /* NOTE: carlton/2003-10-07: See comment in new_symbol about static vs. global. */ - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, STRUCT_DOMAIN, LOC_TYPEDEF, -1, cu->language == language_cplus @@ -9064,7 +9064,7 @@ break; case DW_TAG_enumerator: - add_psymbol_to_list (actual_name, strlen (actual_name), + add_psymbol_to_list (actual_name, built_actual_name != NULL, VAR_DOMAIN, LOC_CONST, -1, cu->language == language_cplus @@ -9894,8 +9894,7 @@ sym = allocate_symbol (objfile); SYMBOL_SET_LANGUAGE (sym, language_go, &objfile->objfile_obstack); - SYMBOL_SET_NAMES (sym, saved_package_name, - strlen (saved_package_name), 0, objfile); + SYMBOL_SET_NAMES (sym, saved_package_name, false, objfile); /* This is not VAR_DOMAIN because we want a way to ensure a lookup of, e.g., "main" finds the "main" module and not C's main(). */ SYMBOL_DOMAIN (sym) = STRUCT_DOMAIN; @@ -18536,7 +18535,7 @@ || pdi.tag == DW_TAG_subrange_type)) { if (building_psymtab && pdi.name != NULL) - add_psymbol_to_list (pdi.name, strlen (pdi.name), false, + add_psymbol_to_list (pdi.name, false, VAR_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::STATIC, 0, cu->language, objfile); @@ -18570,7 +18569,7 @@ if (pdi.name == NULL) complaint (_("malformed enumerator DIE ignored")); else if (building_psymtab) - add_psymbol_to_list (pdi.name, strlen (pdi.name), false, + add_psymbol_to_list (pdi.name, false, VAR_DOMAIN, LOC_CONST, -1, cu->language == language_cplus ? psymbol_placement::GLOBAL @@ -21564,7 +21563,7 @@ /* Cache this symbol's name and the name's demangled form (if any). */ SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack); linkagename = dwarf2_physname (name, die, cu); - SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile); + SYMBOL_SET_NAMES (sym, linkagename, false, objfile); /* Fortran does not have mangling standard and the mangling does differ between gfortran, iFort etc. */ diff --git a/gdb/elfread.c b/gdb/elfread.c index 53bdd35..6440d12 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -210,8 +210,8 @@ address = gdbarch_addr_bits_remove (gdbarch, address); struct minimal_symbol *result - = reader.record_full (name, name_len, copy_name, address, - ms_type, + = reader.record_full (gdb::string_view (name, name_len), copy_name, + address, ms_type, gdb_bfd_section_index (objfile->obfd, bfd_section)); if ((objfile->flags & OBJF_MAINLINE) == 0 diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c index eed7146..11e2a22 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -3048,8 +3048,9 @@ namestring = gdbarch_static_transform_name (gdbarch, namestring); - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_STATIC, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_STATIC, SECT_OFF_DATA (objfile), psymbol_placement::STATIC, sh.value, @@ -3059,8 +3060,9 @@ /* The addresses in these entries are reported to be wrong. See the code that reads 'G's for symtabs. */ - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_STATIC, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_STATIC, SECT_OFF_DATA (objfile), psymbol_placement::GLOBAL, sh.value, @@ -3078,21 +3080,20 @@ || (p == namestring + 1 && namestring[0] != ' ')) { - add_psymbol_to_list (namestring, p - namestring, true, - STRUCT_DOMAIN, LOC_TYPEDEF, - -1, - psymbol_placement::STATIC, - 0, psymtab_language, objfile); + add_psymbol_to_list + (gdb::string_view (namestring, p - namestring), + true, STRUCT_DOMAIN, LOC_TYPEDEF, -1, + psymbol_placement::STATIC, 0, psymtab_language, + objfile); if (p[2] == 't') { /* Also a typedef with the same name. */ - add_psymbol_to_list (namestring, - p - namestring, true, - VAR_DOMAIN, LOC_TYPEDEF, - -1, - psymbol_placement::STATIC, - 0, psymtab_language, - objfile); + add_psymbol_to_list + (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_TYPEDEF, -1, + psymbol_placement::STATIC, 0, + psymtab_language, objfile); p += 1; } } @@ -3101,11 +3102,12 @@ if (p != namestring) /* a name is there, not just :T... */ { - add_psymbol_to_list (namestring, p - namestring, - true, VAR_DOMAIN, LOC_TYPEDEF, - -1, - psymbol_placement::STATIC, - 0, psymtab_language, objfile); + add_psymbol_to_list + (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_TYPEDEF, -1, + psymbol_placement::STATIC, 0, psymtab_language, + objfile); } check_enum: /* If this is an enumerated type, we need to add @@ -3166,9 +3168,10 @@ /* Note that the value doesn't matter for enum constants in psymtabs, just in symtabs. */ - add_psymbol_to_list (p, q - p, true, - VAR_DOMAIN, LOC_CONST, - -1, + add_psymbol_to_list (gdb::string_view (p, + q - p), + true, VAR_DOMAIN, + LOC_CONST, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); @@ -3185,8 +3188,9 @@ continue; case 'c': /* Constant, e.g. from "const" in Pascal. */ - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_CONST, -1, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_CONST, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); continue; @@ -3198,8 +3202,9 @@ function_outside_compilation_unit_complaint (copy.c_str ()); } - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_BLOCK, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_BLOCK, SECT_OFF_TEXT (objfile), psymbol_placement::STATIC, sh.value, @@ -3217,8 +3222,9 @@ function_outside_compilation_unit_complaint (copy.c_str ()); } - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_BLOCK, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_BLOCK, SECT_OFF_TEXT (objfile), psymbol_placement::GLOBAL, sh.value, @@ -3452,13 +3458,13 @@ symbol table, and the MAIN__ symbol via the minimal symbol table. */ if (sh.st == stProc) - add_psymbol_to_list (sym_name, strlen (sym_name), true, + add_psymbol_to_list (sym_name, true, VAR_DOMAIN, LOC_BLOCK, section, psymbol_placement::GLOBAL, sh.value, psymtab_language, objfile); else - add_psymbol_to_list (sym_name, strlen (sym_name), true, + add_psymbol_to_list (sym_name, true, VAR_DOMAIN, LOC_BLOCK, section, psymbol_placement::STATIC, @@ -3525,7 +3531,7 @@ && sh.iss != 0 && sh.index != cur_sdx + 2) { - add_psymbol_to_list (sym_name, strlen (sym_name), true, + add_psymbol_to_list (sym_name, true, STRUCT_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); @@ -3565,7 +3571,7 @@ continue; } /* Use this gdb symbol. */ - add_psymbol_to_list (sym_name, strlen (sym_name), true, + add_psymbol_to_list (sym_name, true, VAR_DOMAIN, theclass, section, psymbol_placement::STATIC, sh.value, psymtab_language, objfile); @@ -3644,7 +3650,7 @@ break; } char *sym_name = debug_info->ssext + psh->iss; - add_psymbol_to_list (sym_name, strlen (sym_name), true, + add_psymbol_to_list (sym_name, true, VAR_DOMAIN, theclass, section, psymbol_placement::GLOBAL, @@ -3807,7 +3813,7 @@ /* Note that the value doesn't matter for enum constants in psymtabs, just in symtabs. */ - add_psymbol_to_list (name, strlen (name), true, + add_psymbol_to_list (name, true, VAR_DOMAIN, LOC_CONST, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); @@ -4758,7 +4764,7 @@ SYMBOL_SET_LANGUAGE (s, psymtab_language, &mdebugread_objfile->objfile_obstack); - SYMBOL_SET_NAMES (s, name, strlen (name), 1, mdebugread_objfile); + SYMBOL_SET_NAMES (s, name, true, mdebugread_objfile); return s; } diff --git a/gdb/minsyms.c b/gdb/minsyms.c index c41e5c3..1f123f7 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -1086,7 +1086,7 @@ /* See minsyms.h. */ struct minimal_symbol * -minimal_symbol_reader::record_full (const char *name, int name_len, +minimal_symbol_reader::record_full (gdb::string_view name, bool copy_name, CORE_ADDR address, enum minimal_symbol_type ms_type, int section) @@ -1100,24 +1100,22 @@ lookup_minimal_symbol_by_pc would have no way of getting the right one. */ if (ms_type == mst_file_text && name[0] == 'g' - && (strcmp (name, GCC_COMPILED_FLAG_SYMBOL) == 0 - || strcmp (name, GCC2_COMPILED_FLAG_SYMBOL) == 0)) + && (name == GCC_COMPILED_FLAG_SYMBOL + || name == GCC2_COMPILED_FLAG_SYMBOL)) return (NULL); /* It's safe to strip the leading char here once, since the name is also stored stripped in the minimal symbol table. */ if (name[0] == get_symbol_leading_char (m_objfile->obfd)) - { - ++name; - --name_len; - } + name = name.substr (1); if (ms_type == mst_file_text && startswith (name, "__gnu_compiled")) return (NULL); if (symtab_create_debug >= 2) - printf_unfiltered ("Recording minsym: %-21s %18s %4d %s\n", - mst_str (ms_type), hex_string (address), section, name); + printf_unfiltered ("Recording minsym: %-21s %18s %4d %.*s\n", + mst_str (ms_type), hex_string (address), section, + (int) name.size (), name.data ()); if (m_msym_bunch_index == BUNCH_SIZE) { @@ -1129,7 +1127,7 @@ msymbol = &m_msym_bunch->contents[m_msym_bunch_index]; symbol_set_language (msymbol, language_auto, &m_objfile->per_bfd->storage_obstack); - symbol_set_names (msymbol, name, name_len, copy_name, m_objfile->per_bfd); + symbol_set_names (msymbol, name, copy_name, m_objfile->per_bfd); SET_MSYMBOL_VALUE_ADDRESS (msymbol, address); MSYMBOL_SECTION (msymbol) = section; diff --git a/gdb/minsyms.h b/gdb/minsyms.h index 0a19f0b..deaecb4 100644 --- a/gdb/minsyms.h +++ b/gdb/minsyms.h @@ -88,7 +88,6 @@ Arguments are: NAME - the symbol's name - NAME_LEN - the length of the name COPY_NAME - if true, the minsym code must make a copy of NAME. If false, then NAME must be NUL-terminated, and must have a lifetime that is at least as long as OBJFILE's lifetime. @@ -97,15 +96,14 @@ SECTION - the symbol's section */ - struct minimal_symbol *record_full (const char *name, - int name_len, + struct minimal_symbol *record_full (gdb::string_view name, bool copy_name, CORE_ADDR address, enum minimal_symbol_type ms_type, int section); /* Like record_full, but: - - uses strlen to compute NAME_LEN, + - computes the length of NAME - passes COPY_NAME = true, - and passes a default SECTION, depending on the type @@ -115,7 +113,7 @@ enum minimal_symbol_type ms_type); /* Like record_full, but: - - uses strlen to compute NAME_LEN, + - computes the length of NAME - passes COPY_NAME = true. This variant does not return the new symbol. */ @@ -124,7 +122,7 @@ enum minimal_symbol_type ms_type, int section) { - record_full (name, strlen (name), true, address, ms_type, section); + record_full (name, true, address, ms_type, section); } private: diff --git a/gdb/psympriv.h b/gdb/psympriv.h index 3e89742..9404c46 100644 --- a/gdb/psympriv.h +++ b/gdb/psympriv.h @@ -22,6 +22,7 @@ #include "psymtab.h" #include "objfiles.h" +#include "gdbsupport/gdb_string_view.h" /* A partial_symbol records the name, domain, and address class of symbols whose types we have not parsed yet. For functions, it also @@ -304,14 +305,13 @@ LANGUAGE is the language from which the symbol originates. This will influence, amongst other things, how the symbol name is demangled. */ -extern void add_psymbol_to_list (const char *name, int namelength, - bool copy_name, domain_enum domain, - enum address_class theclass, - short section, - psymbol_placement where, - CORE_ADDR coreaddr, - enum language language, - struct objfile *objfile); +extern void add_psymbol_to_list (gdb::string_view, + bool, domain_enum, + enum address_class, + short /* section */, + enum psymbol_placement, + CORE_ADDR, + enum language, struct objfile *); /* Initialize storage for partial symbols. If partial symbol storage has already been initialized, this does nothing. TOTAL_SYMBOLS is diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 31b6d59..b30d29e 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -1568,7 +1568,7 @@ different domain (or address) is possible and correct. */ static struct partial_symbol * -add_psymbol_to_bcache (const char *name, int namelength, bool copy_name, +add_psymbol_to_bcache (gdb::string_view name, bool copy_name, domain_enum domain, enum address_class theclass, short section, @@ -1585,7 +1585,7 @@ psymbol.aclass = theclass; symbol_set_language (&psymbol.ginfo, language, objfile->partial_symtabs->obstack ()); - symbol_set_names (&psymbol.ginfo, name, namelength, copy_name, + symbol_set_names (&psymbol.ginfo, name, copy_name, objfile->per_bfd); /* Stash the partial symbol away in the cache. */ @@ -1608,7 +1608,7 @@ /* See psympriv.h. */ void -add_psymbol_to_list (const char *name, int namelength, bool copy_name, +add_psymbol_to_list (gdb::string_view name, bool copy_name, domain_enum domain, enum address_class theclass, short section, @@ -1621,7 +1621,7 @@ int added; /* Stash the partial symbol away in the cache. */ - psym = add_psymbol_to_bcache (name, namelength, copy_name, domain, theclass, + psym = add_psymbol_to_bcache (name, copy_name, domain, theclass, section, coreaddr, language, objfile, &added); /* Do not duplicate global partial symbols. */ diff --git a/gdb/stabsread.c b/gdb/stabsread.c index fa2521f..7658072 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -752,11 +752,12 @@ if (!new_name.empty ()) { SYMBOL_SET_NAMES (sym, - new_name.c_str (), new_name.length (), + new_name, 1, objfile); } else - SYMBOL_SET_NAMES (sym, string, p - string, 1, objfile); + SYMBOL_SET_NAMES (sym, gdb::string_view (string, p - string), true, + objfile); if (SYMBOL_LANGUAGE (sym) == language_cplus) cp_scan_for_anonymous_namespaces (get_buildsym_compunit (), sym, diff --git a/gdb/symtab.c b/gdb/symtab.c index 8a551f1..3078f87 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -811,7 +811,7 @@ void symbol_set_names (struct general_symbol_info *gsymbol, - const char *linkage_name, int len, bool copy_name, + gdb::string_view linkage_name, bool copy_name, struct objfile_per_bfd_storage *per_bfd) { struct demangled_name_entry **slot; @@ -824,14 +824,14 @@ /* In Ada, we do the symbol lookups using the mangled name, so we can save some space by not storing the demangled name. */ if (!copy_name) - gsymbol->name = linkage_name; + gsymbol->name = linkage_name.data (); else { char *name = (char *) obstack_alloc (&per_bfd->storage_obstack, - len + 1); + linkage_name.length () + 1); - memcpy (name, linkage_name, len); - name[len] = '\0'; + memcpy (name, linkage_name.data (), linkage_name.length ()); + name[linkage_name.length ()] = '\0'; gsymbol->name = name; } symbol_set_demangled_name (gsymbol, NULL, &per_bfd->storage_obstack); @@ -842,18 +842,20 @@ if (per_bfd->demangled_names_hash == NULL) create_demangled_names_hash (per_bfd); - if (linkage_name[len] != '\0') + /* Don't use string_view::operator[] because we are accessing beyond + the size of the string_view, which is technically unsupported. */ + if (linkage_name.data ()[linkage_name.length ()] != '\0') { char *alloc_name; - alloc_name = (char *) alloca (len + 1); - memcpy (alloc_name, linkage_name, len); - alloc_name[len] = '\0'; + alloc_name = (char *) alloca (linkage_name.length () + 1); + memcpy (alloc_name, linkage_name.data (), linkage_name.length ()); + alloc_name[linkage_name.length ()] = '\0'; linkage_name_copy = alloc_name; } else - linkage_name_copy = linkage_name; + linkage_name_copy = linkage_name.data (); entry.mangled = linkage_name_copy; slot = ((struct demangled_name_entry **) @@ -881,14 +883,14 @@ It turns out that it is actually important to still save such an entry in the hash table, because storing this name gives us better bcache hit rates for partial symbols. */ - if (!copy_name && linkage_name_copy == linkage_name) + if (!copy_name && linkage_name_copy == linkage_name.data ()) { *slot = ((struct demangled_name_entry *) obstack_alloc (&per_bfd->storage_obstack, offsetof (struct demangled_name_entry, demangled) + demangled_len + 1)); - (*slot)->mangled = linkage_name; + (*slot)->mangled = linkage_name.data (); } else { @@ -901,7 +903,7 @@ = ((struct demangled_name_entry *) obstack_alloc (&per_bfd->storage_obstack, offsetof (struct demangled_name_entry, demangled) - + len + demangled_len + 2)); + + linkage_name.length () + demangled_len + 2)); mangled_ptr = &((*slot)->demangled[demangled_len + 1]); strcpy (mangled_ptr, linkage_name_copy); (*slot)->mangled = mangled_ptr; diff --git a/gdb/symtab.h b/gdb/symtab.h index dc65409..6646e7d 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -29,6 +29,7 @@ #include "gdbsupport/enum-flags.h" #include "gdbsupport/function-view.h" #include "gdbsupport/gdb_optional.h" +#include "gdbsupport/gdb_string_view.h" #include "gdbsupport/next-iterator.h" #include "completer.h" @@ -505,11 +506,11 @@ /* Set the linkage and natural names of a symbol, by demangling the linkage name. */ -#define SYMBOL_SET_NAMES(symbol,linkage_name,len,copy_name,objfile) \ - symbol_set_names (&(symbol)->ginfo, linkage_name, len, copy_name, \ +#define SYMBOL_SET_NAMES(symbol,linkage_name,copy_name,objfile) \ + symbol_set_names (&(symbol)->ginfo, linkage_name, copy_name, \ (objfile)->per_bfd) extern void symbol_set_names (struct general_symbol_info *symbol, - const char *linkage_name, int len, bool copy_name, + gdb::string_view linkage_name, bool copy_name, struct objfile_per_bfd_storage *per_bfd); /* Now come lots of name accessor macros. Short version as to when to diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index aec1923..9deae88 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -2646,8 +2646,9 @@ namestring = gdbarch_static_transform_name (gdbarch, namestring); - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_STATIC, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_STATIC, SECT_OFF_DATA (objfile), psymbol_placement::STATIC, symbol.n_value, @@ -2657,8 +2658,9 @@ case 'G': /* The addresses in these entries are reported to be wrong. See the code that reads 'G's for symtabs. */ - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_STATIC, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_STATIC, SECT_OFF_DATA (objfile), psymbol_placement::GLOBAL, symbol.n_value, @@ -2676,15 +2678,17 @@ || (p == namestring + 1 && namestring[0] != ' ')) { - add_psymbol_to_list (namestring, p - namestring, true, - STRUCT_DOMAIN, LOC_TYPEDEF, -1, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, STRUCT_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); if (p[2] == 't') { /* Also a typedef with the same name. */ - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_TYPEDEF, -1, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); p += 1; @@ -2695,8 +2699,9 @@ case 't': if (p != namestring) /* a name is there, not just :T... */ { - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_TYPEDEF, -1, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_TYPEDEF, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); } @@ -2757,7 +2762,7 @@ ; /* Note that the value doesn't matter for enum constants in psymtabs, just in symtabs. */ - add_psymbol_to_list (p, q - p, true, + add_psymbol_to_list (gdb::string_view (p, q - p), true, VAR_DOMAIN, LOC_CONST, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); @@ -2775,8 +2780,9 @@ case 'c': /* Constant, e.g. from "const" in Pascal. */ - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_CONST, -1, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_CONST, -1, psymbol_placement::STATIC, 0, psymtab_language, objfile); continue; @@ -2792,8 +2798,9 @@ function_outside_compilation_unit_complaint (name); xfree (name); } - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_BLOCK, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_BLOCK, SECT_OFF_TEXT (objfile), psymbol_placement::STATIC, symbol.n_value, @@ -2822,8 +2829,9 @@ if (startswith (namestring, "@FIX")) continue; - add_psymbol_to_list (namestring, p - namestring, true, - VAR_DOMAIN, LOC_BLOCK, + add_psymbol_to_list (gdb::string_view (namestring, + p - namestring), + true, VAR_DOMAIN, LOC_BLOCK, SECT_OFF_TEXT (objfile), psymbol_placement::GLOBAL, symbol.n_value,