This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Mark Mitchell <mark@codesourcery.com> writes:
Ian Lance Taylor wrote:
So by my reading, when given something like _X11TransParseAddress which is not a valid mangled name, it is correct for __cxa_demangle() to return NULL with status set to -2. What other reading could there be?
The ABI implies that you can feed an 'extern "C"' name to __cxa_demangle.
For example, it says that "i" should be demangled as "i".
It's hard (for me) to see how to get that without considering "i" a valid mangled name.
The ABI says that an ambiguity between an extern "C" name and an internal built-in type name should be resolved in favor of the extern "C" name. It doesn't say what to return for an extern "C" name. That is, it doesn't say that __cxa_demangle() should return "i" when passed "i".
In fact, I'm just writing the disambiguation code now in my demangler, and my natural inclination is to write it so that when __cxa_demangle() is passed "i", it returns NULL with *status set to -2.
-- Mark Mitchell CodeSourcery, LLC mark@codesourcery.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |