/* stabs.c -- Parse stabs debugging information
- Copyright (C) 1995-2019 Free Software Foundation, Inc.
+ Copyright (C) 1995-2020 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>.
This file is part of GNU Binutils.
|| ! parse_stab_tilde_field (dhandle, info, pp, typenums, &vptrbase,
&ownvptr, p_end))
{
- if (fields != NULL)
- free (fields);
+ free (fields);
return DEBUG_TYPE_NULL;
}
return TRUE;
fail:
- if (name != NULL)
- free (name);
- if (variants != NULL)
- free (variants);
- if (argtypes != NULL)
- free (argtypes);
+ free (name);
+ free (variants);
+ free (argtypes);
return FALSE;
}
&& fieldname[1] == 'p'
&& (fieldname[2] == '$' || fieldname[2] == '.'))
{
- const char *opname;
-
- opname = cplus_mangle_opname (fieldname + 3, 0);
- if (opname == NULL)
- {
- fprintf (stderr, _("No mangling for \"%s\"\n"), fieldname);
- return DEBUG_TYPE_NULL;
- }
- mangled_name_len += strlen (opname);
- physname = (char *) xmalloc (mangled_name_len);
- strncpy (physname, fieldname, 3);
- strcpy (physname + 3, opname);
+ /* Opname selection is no longer supported by libiberty's demangler. */
+ return DEBUG_TYPE_NULL;
}
+
+ physname = (char *) xmalloc (mangled_name_len);
+ if (is_constructor)
+ physname[0] = '\0';
else
- {
- physname = (char *) xmalloc (mangled_name_len);
- if (is_constructor)
- physname[0] = '\0';
- else
- strcpy (physname, fieldname);
- }
+ strcpy (physname, fieldname);
physname_len = strlen (physname);
strcat (physname, buf);
return minfo.args;
error_return:
- if (minfo.typestrings != NULL)
- free (minfo.typestrings);
+ free (minfo.typestrings);
return NULL;
}
if (s3 == NULL || s4 == NULL)
{
stab_bad_demangle (orig);
- if (s3 != NULL)
- free (s3);
+ free (s3);
return FALSE;
}