From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12838 invoked by alias); 12 Aug 2015 20:36:13 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 12829 invoked by uid 89); 12 Aug 2015 20:36:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.6 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: paperclip.tbsaunde.org Received: from tbsaunde.org (HELO paperclip.tbsaunde.org) (66.228.47.254) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 12 Aug 2015 20:36:12 +0000 Received: from tsaunders-iceball.corp.tor1.mozilla.com (unknown [66.207.208.102]) by paperclip.tbsaunde.org (Postfix) with ESMTPSA id F2074C069; Wed, 12 Aug 2015 20:36:09 +0000 (UTC) Date: Wed, 12 Aug 2015 20:36:00 -0000 From: Trevor Saunders To: Jeff Law Cc: tbsaunde+gcc@tbsaunde.org, gcc-patches@gcc.gnu.org, richard.sandiford@arm.com Subject: Re: [PATCH 2/2] replace several uses of the anon namespace with GCC_FINAL Message-ID: <20150812203608.GB4898@tsaunders-iceball.corp.tor1.mozilla.com> References: <1439208314-7390-1-git-send-email-tbsaunde+gcc@tbsaunde.org> <1439208314-7390-2-git-send-email-tbsaunde+gcc@tbsaunde.org> <55CA4B93.3060003@redhat.com> <87oaicbaht.fsf@e105548-lin.cambridge.arm.com> <55CB9888.4000200@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55CB9888.4000200@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SW-Source: 2015-08/txt/msg00659.txt.bz2 On Wed, Aug 12, 2015 at 01:03:36PM -0600, Jeff Law wrote: > On 08/12/2015 12:57 PM, Richard Sandiford wrote: > >Jeff Law writes: > >>On 08/10/2015 06:05 AM, tbsaunde+gcc@tbsaunde.org wrote: > >>>From: Trevor Saunders > >>> > >>>Hi, > >>> > >>>In many places gcc puts classes in the anon namespace so the compiler can tell > >>>they do not get inheritted from to enable better devirtualization. However > >>>debugging code in the anon namespace can be a pain, and the same thing can be > >>>accomplished more directly by marking the classes as final. When > >>>bootstrapping > >>>stage 3 should always be built in C++14 mode now, and of course will always be > >>>newer than gcc 4.7, so these classes will always be marked as final there. > >>>AIUI cross compilers are supposed to be built with recent gcc, which I would > >>>tend to think implies newer than 4.7, so they should also be built with these > >>>classes marked as final. I believe that means in all important cases > >>>this works just as well as the anon namespace. > >>> > >>>bootstrapped + regtested on x86_64-linux-gnu, ok? > >>> > >>>Trev > >>> > >>> > >>>gcc/ChangeLog: > >>> > >>>2015-08-10 Trevor Saunders > >>> > >>> * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c, > >>> gimple-ssa-strength-reduction.c, graphite.c, init-regs.c, > >>> ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c, > >>> omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c, > >>> tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c, > >>> tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c, > >>> tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c, > >>> tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c, > >>> vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous > >>>namespace. > >>OK. > > > >I was hoping someone else was going to speak up since I seem > >to have been posting a few negative messages recently, but I think > >this is really a step in the wrong direction. I think the code > >was using anonymous namespaces in exactly the way they were are they actually all that common? I think gcc is the only C++ with which I'm familiar that uses them much. > >intended to be used. > No need to worry about seeming to be negative. > > > The problem is you can't get to stuff in the anonymous namespace easily in > the debugger. There was talk of fixing that, but I don't think it ever went > forward on the gdb side. > > If gdb were to get fixed so that debugging this stuff was easier, then I'd > fully support putting things back into the anonymous namespace. I have vague memories of other reasons to dislike the anon namespace being brought up when it was discussed at $day job, but debuggers was the big reason (and its not just gdb that's bad) Trev > > jeff >