gdb: Remove a cleanup from find_overload_match

This patch changes cp-support.c:cp_func_name to return a
'gdb::unique_xmalloc_ptr<char>' instead of a 'char *'.  This allows a
cleanup to be removed from valops.c:find_overload_match.

gdb/ChangeLog:

	* compile/compile-cplus-types.c
	(compile_cplus_instance::decl_name): Handle changes to
	cp_func_name.
	* cp-support.c (cp_func_name): Update header comment, update
	return type.
	* cp-support.h (cp_func_name): Update return type in declaration.
	* valops.c (find_overload_match): Move temp_func local to top
	level of function and change its type.  Use temp_func to hold and
	delete temporary string obtained from cp_func_name.
This commit is contained in:
Andrew Burgess 2018-12-31 17:41:38 +00:00
parent 66644cd32b
commit 06d3e5b004
5 changed files with 23 additions and 14 deletions

View file

@ -63,9 +63,9 @@ compile_cplus_instance::decl_name (const char *natural)
if (natural == nullptr)
return nullptr;
char *name = cp_func_name (natural);
gdb::unique_xmalloc_ptr<char> name = cp_func_name (natural);
if (name != nullptr)
return gdb::unique_xmalloc_ptr<char> (name);
return name;
return gdb::unique_xmalloc_ptr<char> (xstrdup (natural));
}