Code cleanup: compile: func_addr -> func_sym

Currently the code fetches _gdb_expr address/types at multiple places, guessing
its parameters at multiple places etc.

Fetch it once, verify it has expected type and then rely on it.

While the patch tries to clean up the code it is still horrible due to the
missing C++ sub-classing.


gdb/ChangeLog
2015-05-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* compile/compile-object-load.c (get_regs_type): Add parameter func_sym.
	Rely on its parameter count.
	(compile_object_load): Replace lookup_minimal_symbol_text by
	lookup_global_symbol_from_objfile.  Verify FUNC_SYM.  Set it in the
	return value.
	* compile/compile-object-load.h (struct compile_module): Replace
	func_addr by func_sym.
	* compile/compile-object-run.c: Include block.h.
	(compile_object_run): Reset module variable after it is freed.  Use
	FUNC_SYM instead of FUNC_ADDR.  Rely on it.
This commit is contained in:
Jan Kratochvil 2015-05-16 14:20:45 +02:00
parent 3a9558c494
commit 83d3415ef5
4 changed files with 88 additions and 51 deletions

View file

@ -25,8 +25,8 @@ struct compile_module
/* .c file OBJFILE was built from. It needs to be xfree-d. */
char *source_file;
/* Inferior function address. */
CORE_ADDR func_addr;
/* Inferior function GCC_FE_WRAPPER_FUNCTION. */
struct symbol *func_sym;
/* Inferior registers address or NULL if the inferior function does not
require any. */