* cp-demangle.c (__cxa_demangle): Change resolution of ambiguous
arguments.
This commit is contained in:
parent
eed5120384
commit
aca9a74241
2 changed files with 5 additions and 15 deletions
|
@ -1,3 +1,8 @@
|
|||
2005-02-13 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* cp-demangle.c (__cxa_demangle): Change resolution of ambiguous
|
||||
arguments.
|
||||
|
||||
2005-01-11 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
|
||||
* hex.c (hex_value): Group 'unsigned int' together to get correct
|
||||
|
|
|
@ -4047,21 +4047,6 @@ __cxa_demangle (mangled_name, output_buffer, length, status)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* The specification for __cxa_demangle() is that if the mangled
|
||||
name could be either an extern "C" identifier, or an internal
|
||||
built-in type name, then we resolve it as the identifier. All
|
||||
internal built-in type names are a single lower case character.
|
||||
Frankly, this simplistic disambiguation doesn't make sense to me,
|
||||
but it is documented, so we implement it here. */
|
||||
if (IS_LOWER (mangled_name[0])
|
||||
&& mangled_name[1] == '\0'
|
||||
&& cplus_demangle_builtin_types[mangled_name[0] - 'a'].name != NULL)
|
||||
{
|
||||
if (status != NULL)
|
||||
*status = -2;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
demangled = d_demangle (mangled_name, DMGL_PARAMS | DMGL_TYPES, &alc);
|
||||
|
||||
if (demangled == NULL)
|
||||
|
|
Loading…
Reference in a new issue