2014-07-15 Jason Merrill <jason@redhat.com>
+ PR c++/61811
+ * decl2.c (maybe_emit_vtables): Return true for -fuse-all-virtuals.
+
PR c++/60848
PR c++/61723
* call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO.
if (DECL_COMDAT (primary_vtbl)
&& CLASSTYPE_DEBUG_REQUESTED (ctype))
note_debug_info_needed (ctype);
- if (mark_all_virtuals)
- /* Make sure virtual functions get instantiated/synthesized so that
- they can be inlined after devirtualization even if the vtable is
- never emitted. */
- mark_vtable_entries (primary_vtbl);
+ if (mark_all_virtuals && !DECL_ODR_USED (primary_vtbl))
+ {
+ /* Make sure virtual functions get instantiated/synthesized so that
+ they can be inlined after devirtualization even if the vtable is
+ never emitted. */
+ mark_used (primary_vtbl);
+ mark_vtable_entries (primary_vtbl);
+ return true;
+ }
return false;
}