On 2015.08.10 at 08:05 -0400, tbsaunde+...@tbsaunde.org wrote: > > 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?
Are you sure that you don't unintentionally introduce new ODR violations? An LTO bootstrap, where you look for new -Wodr warnings, should give the answer. -- Markus