Mangling question

Joe Kelsey joek@mail.flyingcroc.net
Wed May 29 07:14:00 GMT 2002


I was trying to figure out why my class wasn't defined due to linker 
errors I received.  The linker complained about undefined symbol

_$_6Shared

Where Shared is the name of the undefined class.  I read the mangling 
documentation and I cannot figure out where this comes from.  $ is some 
sort of static indicator, so what is _$_?  Indicating the static 
constructor?

Also, what are

__ti6Shared
__tf6Shared

t means template, i means integer and f means float, but the constructor 
is not a template nor does it take a float argument or return a float 
argument.  And the extra underscores are not for BSD compatibility, as 
the normal method name mangling does not start with an underscore.

Maybe the mangling document needs updating.

/Joe

p.s., the undefined problem was due to a stupid programming error, pure 
virtual destructor when what I needed was an empty virtual destructor...




More information about the Gcc-help mailing list