* 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:
Jim Kingdon
1993-09-30 22:14:03 +00:00
parent 763cfca018
commit 4f9bddb4fc

View File

@ -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);