From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16226 invoked by alias); 27 Sep 2016 15:55:45 -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 16213 invoked by uid 89); 27 Sep 2016 15:55:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=D*tbsaunde.org X-HELO: gproxy9-pub.mail.unifiedlayer.com Received: from gproxy9-pub.mail.unifiedlayer.com (HELO gproxy9-pub.mail.unifiedlayer.com) (69.89.20.122) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with SMTP; Tue, 27 Sep 2016 15:55:35 +0000 Received: (qmail 16988 invoked by uid 0); 27 Sep 2016 15:55:33 -0000 Received: from unknown (HELO cmgw4) (10.0.90.85) by gproxy9.mail.unifiedlayer.com with SMTP; 27 Sep 2016 15:55:33 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw4 with id ofvV1t01d2f2jeq01fvY00; Tue, 27 Sep 2016 09:55:33 -0600 X-Authority-Analysis: v=2.1 cv=Hq7lRSjS c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=GW1xBdLrtEIA:10 a=V82Az2P4AAAA:8 a=1DIEN6z7g9SXC2xfZ-sA:9 a=GUYa6fla-me-Zpd7-Uj-:22 Received: from 71-218-192-86.hlrn.qwest.net ([71.218.192.86]:40734 helo=pokyo) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86_1) (envelope-from ) id 1boujB-0004YR-Ip; Tue, 27 Sep 2016 09:55:29 -0600 From: Tom Tromey To: Trevor Saunders Cc: Tom Tromey , gdb-patches@sourceware.org Subject: Re: [RFA 01/22] Change selttest.c to use use std::vector References: <1474949330-4307-1-git-send-email-tom@tromey.com> <1474949330-4307-2-git-send-email-tom@tromey.com> <20160927084049.naw5nx64smlzpqxg@ball> Date: Tue, 27 Sep 2016 16:44:00 -0000 In-Reply-To: <20160927084049.naw5nx64smlzpqxg@ball> (Trevor Saunders's message of "Tue, 27 Sep 2016 04:40:50 -0400") Message-ID: <87twd1z6a7.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-BWhitelist: no X-Exim-ID: 1boujB-0004YR-Ip X-Source-Sender: 71-218-192-86.hlrn.qwest.net (pokyo) [71.218.192.86]:40734 X-Source-Auth: tom+tromey.com X-Email-Count: 2 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-SW-Source: 2016-09/txt/msg00366.txt.bz2 >>>>> "Trevor" == Trevor Saunders writes: Trevor> I'd agree, hopefully we can throw VEC in the trash some day. Relatedly Trevor> we should probably move gcc's hash table stuff to include/ sooner rather Trevor> than later so we can similarly get rid of htab. That would be nice; though we could probably use std::set and std::map in gdb as well. One wrinkle with hash tables is that they're sometimes allocated on obstacks; would gcc's handle this? >> for (auto f : tests) Trevor> its debatable, but imho its not necessarily obvious what the type of the Trevor> local is when you use auto to iterate over vectors especially when they Trevor> are members or globals like here. Yeah, that's one drawback. Often one actually wants "auto &f" in there. >> +static std::vector tests; Trevor> should we use a pointer to avoid the static initializer? I was on the fence about this one. On the one hand, static initializers can be very bad. On the other hand, this one in particular doesn't seem like it could cause problems. >> - for (i = 0; VEC_iterate (self_test_function_ptr, tests, i, func); ++i) >> + for (std::vector::iterator iter = tests.begin (); >> + iter != tests.end (); >> + ++iter) Trevor> I believe you can "cheat" here and just use the function pointer type, Trevor> because the sane implementation of iterators over vectors is pointers. Yeah, or just loop using an int and index into the vector. I'll see if that looks cleaner. Tom