Bug? Where are these emitted?? (type_info, virtual table, etc)

Phil Edwards pedwards@ball.com
Tue Oct 6 08:07:00 GMT 1998


Alexandre Oliva wrote:
> 8 A virtual function declared in a class shall be defined,  or  declared
>   pure  (_class.abstract_)  in that class, or both; but no diagnostic is
>   required (_basic.def.odr_).
>
> So you're violating the standard by not providing a definition of a
> virtual non-abstract member function.

Brain skip on my part; thank you.

> gcc will emit the virtual table of a class in the translation unit
> that contains the definition of the first non-inline non-abstract
> member function.

That's common behavior as I understand it.  Curious that the linker 
complained about 'missing virtual table' and the contained type_info, but 
never about a missing non-abstract impure virtual definition.  Perhaps it 
just gives up after three missing defs?  (I've never found a way to study 
linker design; they're complete black magic to me.)

>  Strangely, this is heuristics is documented as
> enabled only if -fvtable-thunks is enabled, but it is not enabled by
> default on Solaris.

I was wondering about that too; there are a couple -f directives that seem to 
be undocumented in 1.1.

Thanks.

--
/dev/phil            Ball Aerospace & Technologies Corp.
pedwards@ball.com    Advanced Systems & Technology Operations
(937-320-4048)




More information about the Gcc mailing list