* 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>
|
2005-01-11 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||||
|
|
||||||
* hex.c (hex_value): Group 'unsigned int' together to get correct
|
* 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;
|
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);
|
demangled = d_demangle (mangled_name, DMGL_PARAMS | DMGL_TYPES, &alc);
|
||||||
|
|
||||||
if (demangled == NULL)
|
if (demangled == NULL)
|
||||||
|
|
Loading…
Reference in a new issue