* 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. */
mangled_name = gdb_mangle_name (type, i, j);
demangled_name =
cplus_demangle (mangled_name,
DMGL_ANSI | DMGL_PARAMS);
cplus_demangle (mangled_name,
DMGL_ANSI | DMGL_PARAMS);
if (demangled_name == NULL)
fprintf_filtered (stream, "<badly mangled name %s>",
mangled_name);
else
mangled_name);
else
{
fprintf_filtered (stream, "%s",
strchr (demangled_name, ':') + 2);
char *demangled_no_class =
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 (mangled_name);