Bug#169161: libstdc++5: Questionable type usage in mangled names

Martin v. Loewis martin@v.loewis.de
Thu Nov 14 23:06:00 GMT 2002


Daniel Jacobowitz <dan@debian.org> writes:

> This should presumably be reported to GCC rather than to us... 
> Libstdc++ folks, please maintain the CC's.  Any thoughts?

GCC is clearly behaving correctly. typedefs are resolved before
mangling, since symbols that differ only in typedef usage must compare
equal.

I also can't see an error in libstdc++: if it uses the mbstate_t
definition of the C library (as it should), it cannot influence how
the mangled symbols will look like.

So if there is an error, it is either in glibc (for making the primary
name of the struct __mbstate_t), or in LSB (for not recognizing this
fact).

As a related note: if only the source standards were taken into
account, the symbol should be mangled as 

_ZNKSt7codecvtIccNSt9mbstate_tEE11do_encodingEv
std::codecvt<char, char, std::mbstate_t>::do_encoding() const

since mbstate_t is in namespace std, in C++.

Regards,
Martin



More information about the Gcc-bugs mailing list