On 2015.08.12 at 13:03 -0600, Jeff Law wrote:
> On 08/12/2015 12:57 PM, Richard Sandiford wrote:
> > Jeff Law <l...@redhat.com> writes:
> >> On 08/10/2015 06:05 AM, tbsaunde+...@tbsaunde.org wrote:
> >>> From: Trevor Saunders <tbsaunde+...@tbsaunde.org>
> >>>
> >>> 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  <tbsau...@tbsaunde.org>
> >>>
> >>>   * 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
> > 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.

For the record here the gdb bug in question:
https://sourceware.org/bugzilla/show_bug.cgi?id=16874
It even has a patch attached, that improves the issue.

-- 
Markus

Reply via email to