On 2014.07.30 at 13:26 -0400, Jason Merrill wrote: > Since can_refer_decl_in_current_unit_p doesn't allow references to > DECL_COMDAT entities that aren't defined in the current unit, by setting > that flag we can avoid problems with devirtualization introducing > references to vague linkage functions that haven't been > synthesized/instantiated because they aren't referenced directly. > > The first attached patch sets DECL_COMDAT for inlines and templates. > > The second attached patch removes the -fuse-all-virtuals code, which is > no longer needed for correctness. > > Tested x86_64-pc-linux-gnu, applying to trunk. I'm planning to apply > the first patch to 4.9.2 if it doesn't cause trouble on trunk.
It breaks Firefox build: ... /tmp/cc1qQHsI.ltrans2.ltrans.o:cc1qQHsI.ltrans2.o:function JS::AutoGCRooter::trace(JSTracer*): error: undefined reference to 'js::frontend::MarkParser(JSTracer*, JS::AutoGCRooter*)' collect2: error: ld returned 1 exit status /var/tmp/mozilla-central/config/rules.mk:719: recipe for target 'js' failed I haven't looked deeper yet. -- Markus