From patchwork Tue Oct 31 01:41:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 23990 Received: (qmail 22853 invoked by alias); 31 Oct 2017 01:43:15 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 22777 invoked by uid 89); 31 Oct 2017 01:43:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sessmg22.ericsson.net Received: from sessmg22.ericsson.net (HELO sessmg22.ericsson.net) (193.180.251.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 31 Oct 2017 01:43:13 +0000 Received: from ESESSHC011.ericsson.se (Unknown_Domain [153.88.183.51]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id F4.80.26775.E25D7F95; Tue, 31 Oct 2017 02:43:11 +0100 (CET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.51) with Microsoft SMTP Server (TLS) id 14.3.352.0; Tue, 31 Oct 2017 02:42:19 +0100 Received: from elxacz23q12.localdomain (70.81.137.44) by DBXPR07MB319.eurprd07.prod.outlook.com (2a01:111:e400:941d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.197.4; Tue, 31 Oct 2017 01:42:17 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 02/10] Make target_desc::compatible an std::vector Date: Mon, 30 Oct 2017 21:41:52 -0400 Message-ID: <1509414120-14659-3-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1509414120-14659-1-git-send-email-simon.marchi@ericsson.com> References: <1509414120-14659-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: BN6PR1101CA0023.namprd11.prod.outlook.com (2603:10b6:405:4a::33) To DBXPR07MB319.eurprd07.prod.outlook.com (2a01:111:e400:941d::13) X-MS-Office365-Filtering-Correlation-Id: ae5f5008-4e27-4a3b-3eaa-08d520009f06 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(2017052603238); SRVR:DBXPR07MB319; X-Microsoft-Exchange-Diagnostics: 1; DBXPR07MB319; 3:gaitd6y2270+ObC1sr6KrpxMp8t8B0ntTLs3uz/ETUei8BNMrhTCIy1OlruRoTrVW9QEDvnGEEog8JxSUlv4ApXXd0ZpADqsBNIUzndhgOzIes88oX1Wr2Huharb6Pn84Q8yHpqT22n/78wK7+mJAZi76toW2jsP4BcufU/hpeicldfRb/8LDmKxxWdTpO6ulwFBbl0NubY9mcslxYdKGLaHQJzT8YbsgNIFkYNDWfMxOig0UewEIzuhZn/wF/0Z; 25:AzZRww9mVJyYJWM6Is0+JrzNS91o7Zsw8UyOII+f4jC/RA1AL/Bvfm28gR+tETGEW+EFk7miTi3Aq46DvsP04nuRWZK3bauCHrj83bbJCjnqG9EBpd0a6+fFm4lbnkQQvrRAbdcW86V7UDAP2R9kbXaZQoZz8U8xlmXxEA7oJx3+7tURM7kqE0uhwh44dexvXAxSr2TYi1O4ukQ8vp/pj9TNotIO0WqOlR15G+/Pfu9ouJhYNYQHNz0QCM3Pn+MytE2dhW8Or3U3qR8BtzWXhB5VLJkI+cihjnHG1M+ZckTYqbxmqm9XZCVHoUzwKVTLe0qyLfAlc/UZ5HOzl75YVL7KcpH76fvM8DNZ/96Z3lY=; 31:326fj0TRt2/6CO0Z43ggdiNsinMFySVaqOS6SuLbdEcc+YhEKMlJWpOG3jM45GOwbu1d0zxpo8CVIFtyFgaMr8SW2Zh6nBdM9N2tkQL0tAxTyYv/5xjc/QMZShbsJnu9sDtbgeeCsfmkJ0CsyGh45Nksi+iD/VK6pGbnf7vpvQ6m7/csEdnvLUrRzzWIhK95a3ky8fT8w93ddIdckf7iDmp5Rbt7Lhz5QqwaJ2Y5bOM= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DBXPR07MB319: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1; DBXPR07MB319; 20:2kqjpPUyJHYvQ/ZBv232bU1CkG/D/i9vdMAjtPCdu8BnE5qgoeqmoGoL0mxThMysD9qUSKEt5zFwq9quWa4QCE3dPonKifCvhiu7eLGygCq5DWQYRrIfYDKhjTikZENdXIeek+j/bDJvUM0A0vVMCyfWPq9AUmYTT+ZAVmg1SQS49jHnB8t1FHoE05M4V/l4I5SW9qTMuGX/+WMHgqbvS97R5WqZsMENXp3lcwf2cWdZLjS0nJvHA2piBh1p9uyiG1IdlqgirREPY//1DibVeSRtDw1XvIT85MqWnTFQ9QIcJWnTerXMWzuMqc0gT91DgFSLX8WhZkCrfTyTe8/tkT/AV2ydnbPKos92Jk60ZvT+KPnusM+HAaECWBR3ixU0nbNujuAMEKg06Aw48nD886VW4V5+Ram3CgPkEFOFG4gCnYQ9bJVTBpPNzTOcnHqO9Q9pIbZm06/ZoNfpk+gMhqWtN1cRXuaUmnjkAJA+kCHMD2tXRCB37EjAB4R/oujf; 4:T3MupfdbcJE5f3siCsBiQupOmsrn/WWAlAhFJ/eS2+ame1szgfSEGEtl/GEj9+H21wb0JAGzKxCCzwUnnhTGs9/plJoW4OGaAWRSLfkyjiJ/42FQK+Ez26cLhvUO4SsN7mwD2+hwy5vErDWY6ntIqyhOm6x7Vqh5aBPMZ8QLOlxV9+e7HGmjlozy6O5Q1GQlIgRmy2vqLanCwGUZ6dGvlQXnF03n4lfdV3NATF+5JE8W19wSAaqPMhRdEjqf6u5pvakZT6+iCtdAAofj4Bd6LA== X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3231020)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DBXPR07MB319; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DBXPR07MB319; X-Forefront-PRVS: 04772EA191 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(39860400002)(346002)(189002)(199003)(54534003)(6916009)(16526018)(7736002)(2906002)(6666003)(47776003)(68736007)(4326008)(3846002)(478600001)(305945005)(66066001)(106356001)(36756003)(105586002)(53936002)(25786009)(2950100002)(6512007)(50226002)(2361001)(6116002)(2351001)(5003940100001)(16586007)(76176999)(33646002)(101416001)(5660300001)(6506006)(6486002)(316002)(50986999)(81156014)(81166006)(8936002)(8676002)(50466002)(97736004)(48376002)(86362001)(189998001); DIR:OUT; SFP:1101; SCL:1; SRVR:DBXPR07MB319; H:elxacz23q12.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DBXPR07MB319; 23:PySfWA3cBv8Bw2sMWLTgnHyFr+dea5ytdz+Z9BOcZ2?= =?us-ascii?Q?xvjqco9uH7CPMjE+8g6MZWmeD1/+syjutb5w32liAFhOHWkYJsPDZQbgnakF?= =?us-ascii?Q?wnK8ljl+y5rOl7zpHgJFV+1MvL6C4z4gbKOfhHyuWcPM/TaNxnts1Td8Ig6C?= =?us-ascii?Q?24CGXG4aA7Nhm0w7QGYV/bALcjdJwvvz/1tko2BSgQ39YSsjVZhs2KhvIMC8?= =?us-ascii?Q?NaSajnNk9ym9fChQbIOi/utFG5EdAwwUfQgNIOOL++FyhLjJ33S1bOZXHiGe?= =?us-ascii?Q?HzNhrJYwOGMdxiTZP4GFHSIpGPkT328hFXCK8bYCVsweM4UL1o3rSgoO8WlJ?= =?us-ascii?Q?xdGJaTVNumBcz2YeU9mSpsIRRTew8VH11Sw0W0H668QYKDb1JmRBB7caZLH3?= =?us-ascii?Q?nIClQMyke2XDG9rXXu/kF2DKqvou+APdbGyUVB3IR4DVrUvd2H4hKNAjFL6u?= =?us-ascii?Q?wZK/iUqumGantWSpn2pUxAqyCAc5i6B1WodM908dLRscrQKf9AEwNHjVW2gV?= =?us-ascii?Q?3o+DU6Fs7286U9Z0iK8keKSOtZ4FPt3X2c1Jn/S/QCwkAw0Ir6nTup9dU9ef?= =?us-ascii?Q?Jprarm4qie9ae1Y9sFW1YO1JYjDTGEvq1/gDWitAR4lrD/BgJXLrb7zJKxSZ?= =?us-ascii?Q?5UelZPc8xdyyUWb/ffdeGvmIAZYSmXIQVNgs+LM4P3Q5IYfrmN2DSlA9OFns?= =?us-ascii?Q?rNdj32sB2yi7jx0fJFrWBfxJGroikHvesZ61bzN4fmnsOxDbHuMY3UhkTNbc?= =?us-ascii?Q?v7mMDHD5LWaCXFoHLOJvls69SridrFsMHhqFDrMIMlqEqzBZxfJdRkONmBnS?= =?us-ascii?Q?7jbbOUyyAXZi21o+wNRpvD1iBSOHqh0UDlOD5l+pzRmIJvY1fEP+Zp3DdOS9?= =?us-ascii?Q?cmJNuySlhPXLu35T7pLe0gvvcOmkz36L+Lu2/DCRRTFbj//s+SwdV8kdk1Tr?= =?us-ascii?Q?iZ6e2ymuxSGsfX4MLPXAEQypmEp0RCyMbLSf6JgGIhGPgtO1qGEdCFP79cgf?= =?us-ascii?Q?iNvT+JopIQD5QmluJgK0v1KAfbu3LyAEP7vBiLwkNJ5gBOr+i6PI9rwXcror?= =?us-ascii?Q?bvvE51/Z+MP5kwb25iaB7Y9zukWHFsvVJmsQpr56X0ZtHT08JF/ts6xD7V6L?= =?us-ascii?Q?b5nqA6wpKMglFHLZ2RIx7vzXZZl7ap?= X-Microsoft-Exchange-Diagnostics: 1; DBXPR07MB319; 6:cfLjY/OG1hHD+gxoZ4WlhqdUe+6n14XJjkM+LK8h6SWg/lEFn7KEiax+26ALISYgdA1i4jXzQtqgT+++hNH1hUzayRLjaWksjwqumXF+tqnNYKlO9tBusYqPAd2sAKRSOqjFi0y36pcAjN0EKYzNzDTI+8z0c9kuJR3/nqIzfzNzcvNyxwuxXMTNK3nKkIhWRw7xQmNhwOXfJl+IZB1neKhKhPKdp8PCRXe8TrCcY29l9ObaK7JpqTRPDQ0ZQRty2Wt0gEiMJ+Wu9ENGAKo6I3vtRWkeu82UO4mDn8acqLXKsEbRl5RLFPP/dmhTivg0NAg0lHGgb3MoRk64ld2D88xBYNMfoL7kxO3YNp15bL8=; 5:Ysin5TedKPGcXgnwkAZlgJIbIZxZ+DXh7oy43ddO7QgPPmp7seyQ1UBDECqMZkly+2bDpzI5FTSoqIoc3tq/MrtV3wCHe+RXma01nKzKwXSIIWv63mgNgWQ84uSKwQuxW3Iv+myQnxQObEs4iOtMrh0ForbY+yKRVwT1iu9i/rg=; 24:gf2H35pXlX+OEd/vm5I24IQlKdWM4073J/Qj/cdBuMiYNAS2bB3bRhZQ8VYifllaqIAe4UMrH0yFwkfeAQH0omT7cdyUe8EWl72Yr5cDEGc=; 7:hUbzhI/sT/UpAy+2zVddEnzaZrS2dAxG2N0rIVwxaUDSvVZ5BStzfzM/VhAVArBtpOi0DsCrB9wYePT3ddhCje1b3u003QYsngys4+warJgv/5l3STMm23miC/ExEmruGFpRmsuJHKkI3XovHOxsahudXIY3k8dO/qWYn7XJzBeTOeJqZ2r9Xjh6F3agnK2+18zcpfFf3zZ8+v9HBM3bKGPYQt0n4emIe3PSeZdLUCUMOG4EThNfFB73jrikQ4Bi SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2017 01:42:17.7712 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ae5f5008-4e27-4a3b-3eaa-08d520009f06 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBXPR07MB319 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes From: Simon Marchi This patch changes target_desc::compatible to be a vector of bfd_arch_info *. This way, we don't need to manually free the vector in the target_desc destructor. gdb/ChangeLog: * target-descriptions.c (arch_p): Remove typedef. (DEF_VEC_P (arch_p)): Remove. (struct target_desc) : Change type to std::vector. <~target_desc>: Don't manually free compatible. (tdesc_compatible_p): Adjust. (tdesc_add_compatible): Adjust. (class print_c_tdesc) : Adjust. --- gdb/target-descriptions.c | 39 +++++++++------------------------------ 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 6f8a1c9..309480c 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -386,10 +386,6 @@ typedef struct tdesc_feature : tdesc_element } *tdesc_feature_p; DEF_VEC_P(tdesc_feature_p); -/* A compatible architecture from a target description. */ -typedef const struct bfd_arch_info *arch_p; -DEF_VEC_P(arch_p); - /* A target description. */ struct target_desc : tdesc_element @@ -407,8 +403,6 @@ struct target_desc : tdesc_element ix++) delete feature; VEC_free (tdesc_feature_p, features); - - VEC_free (arch_p, compatible); } target_desc (const target_desc &) = delete; @@ -422,7 +416,7 @@ struct target_desc : tdesc_element enum gdb_osabi osabi = GDB_OSABI_UNKNOWN; /* The list of compatible architectures reported by the target. */ - VEC(arch_p) *compatible = NULL; + std::vector compatible; /* Any architecture-specific properties specified by the target. */ std::vector properties; @@ -695,11 +689,7 @@ int tdesc_compatible_p (const struct target_desc *target_desc, const struct bfd_arch_info *arch) { - const struct bfd_arch_info *compat; - int ix; - - for (ix = 0; VEC_iterate (arch_p, target_desc->compatible, ix, compat); - ix++) + for (const bfd_arch_info *compat : target_desc->compatible) { if (compat == arch || arch->compatible (arch, compat) @@ -1768,24 +1758,20 @@ void tdesc_add_compatible (struct target_desc *target_desc, const struct bfd_arch_info *compatible) { - const struct bfd_arch_info *compat; - int ix; - /* If this instance of GDB is compiled without BFD support for the compatible architecture, simply ignore it -- we would not be able to handle it anyway. */ if (compatible == NULL) return; - for (ix = 0; VEC_iterate (arch_p, target_desc->compatible, ix, compat); - ix++) + for (const bfd_arch_info *compat : target_desc->compatible) if (compat == compatible) internal_error (__FILE__, __LINE__, _("Attempted to add duplicate " "compatible architecture \"%s\""), compatible->printable_name); - VEC_safe_push (arch_p, target_desc->compatible, compatible); + target_desc->compatible.push_back (compatible); } void @@ -1956,19 +1942,12 @@ public: printf_unfiltered ("\n"); } - int ix; - const struct bfd_arch_info *compatible; - struct property *prop; - - for (ix = 0; VEC_iterate (arch_p, e->compatible, ix, compatible); - ix++) - { - printf_unfiltered - (" tdesc_add_compatible (result, bfd_scan_arch (\"%s\"));\n", - compatible->printable_name); - } + for (const struct bfd_arch_info *compatible : e->compatible) + printf_unfiltered + (" tdesc_add_compatible (result, bfd_scan_arch (\"%s\"));\n", + compatible->printable_name); - if (ix) + if (!e->compatible.empty ()) printf_unfiltered ("\n"); for (const property &prop : e->properties)