mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-06 23:50:09 +08:00
* c-typeprint.c (c_type_print_base, TYPE_FN_FIELD_STUB code):
If demangled name lacks a colon, don't dump core.
This commit is contained in:
@ -680,15 +680,24 @@ c_type_print_base (type, stream, show, level)
|
|||||||
/* Build something we can demangle. */
|
/* Build something we can demangle. */
|
||||||
mangled_name = gdb_mangle_name (type, i, j);
|
mangled_name = gdb_mangle_name (type, i, j);
|
||||||
demangled_name =
|
demangled_name =
|
||||||
cplus_demangle (mangled_name,
|
cplus_demangle (mangled_name,
|
||||||
DMGL_ANSI | DMGL_PARAMS);
|
DMGL_ANSI | DMGL_PARAMS);
|
||||||
if (demangled_name == NULL)
|
if (demangled_name == NULL)
|
||||||
fprintf_filtered (stream, "<badly mangled name %s>",
|
fprintf_filtered (stream, "<badly mangled name %s>",
|
||||||
mangled_name);
|
mangled_name);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf_filtered (stream, "%s",
|
char *demangled_no_class =
|
||||||
strchr (demangled_name, ':') + 2);
|
strchr (demangled_name, ':');
|
||||||
|
|
||||||
|
if (demangled_no_class == NULL)
|
||||||
|
demangled_no_class = demangled_name;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (*++demangled_no_class == ':')
|
||||||
|
++demangled_no_class;
|
||||||
|
}
|
||||||
|
fputs_filtered (demangled_no_class, stream);
|
||||||
free (demangled_name);
|
free (demangled_name);
|
||||||
}
|
}
|
||||||
free (mangled_name);
|
free (mangled_name);
|
||||||
|
Reference in New Issue
Block a user