EEEEKS! The mangling changed!

Gabriel Dos Reis gdr@integrable-solutions.net
Sun Nov 30 02:29:00 GMT 2003


Carlo Wood <carlo@alinoe.com> writes:

| To my absolute horror I found today that a simple 'std::vector' is
| suddenly mangled as '__gnu_norm::vector'.

This happened a while ago as a side effect of the debug-mode work.

| That makes it nearly unrecognizable and at least questionably whenever it is
| demangled by which-ever debugging tool.  When the programmer uses "std::"
| he wants it to BE "std::"

No.  The programmer has absolutely no control over what is in std::.
When he/she says std::, he/she gets whatever name lookup happen to
find there. 

| and that means that the abbreviation / compression
| 'St' is used in the mangled name, that was especially added even - in order
| to change the long and memory consuming 3std into just St.

Not everything in std:: gets resolved to __gnu_norm::.  You might want
to consult the documentation relating that work.  Things that are
really defined in std are still mangled as before.

-- Gaby



More information about the Libstdc++ mailing list