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.

jeff

Reply via email to