From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 99174 invoked by alias); 22 Sep 2016 19:24:49 -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 99163 invoked by uid 89); 22 Sep 2016 19:24:48 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 22 Sep 2016 19:24:47 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C9919C09356B; Thu, 22 Sep 2016 19:24:46 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u8MJOjl9019420; Thu, 22 Sep 2016 15:24:46 -0400 Subject: Re: [RFA 3/5] Use std::string, std::vector in rust-lang.c To: Tom Tromey References: <1474566656-15389-1-git-send-email-tom@tromey.com> <1474566656-15389-4-git-send-email-tom@tromey.com> <89b014ab-704c-bb8e-2e1a-6361efa5a644@redhat.com> <87bmzf21bf.fsf@tromey.com> Cc: gdb-patches@sourceware.org From: Pedro Alves Message-ID: <1b62c1c7-31ec-38c7-e4b4-25fdc560388c@redhat.com> Date: Thu, 22 Sep 2016 19:35:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <87bmzf21bf.fsf@tromey.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-09/txt/msg00297.txt.bz2 On 09/22/2016 08:15 PM, Tom Tromey wrote: >>>>>> "Pedro" == Pedro Alves writes: > > Pedro> So I think we should move the variable declaration to the > Pedro> initialization line, to avoid default constructing the variable > Pedro> and then resetting it afterwards, as the compiler may > Pedro> not be smart enough to elide that. > > I think so too -- I had avoided this on account of earlier objections to > this style. In C, it'd require C99, while we were C89. Other than that, it was just a coding convention. But we now have technical reasons for not putting variables at top of the scope. There's the efficiency reason, and then some types may not even have a default constructor, and the arguments that'd need to be passed to the constructor might not have been computed at the top of the scope, making it impossible to declare the variable at the top, unless we'd open an ugly new scope... So I think there's no ground for objection. Thanks, Pedro Alves