http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48759

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |jason at gcc dot gnu.org
         Resolution|                            |INVALID

--- Comment #1 from Jason Merrill <jason at gcc dot gnu.org> 2011-04-28 
16:58:09 UTC ---
This is correct behavior.  The ABI definition says:

5.2.3 Virtual Tables

The virtual table for a class is emitted in the same object containing the
definition of its key function, i.e. the first non-pure virtual function that
is not inline at the point of class definition. If there is no key function, it
is emitted everywhere used. The emitted virtual table includes the full virtual
table group for the class, any new construction virtual tables required for
subobjects, and the VTT for the class. They are emitted in a COMDAT group, with
the virtual table mangled name as the identifying symbol. Note that if the key
function is not declared inline in the class definition, but its definition
later is always declared inline, it will be emitted in every object containing
the definition.

The last sentence describes your situation.

Reply via email to