Turn target_can_execute_reverse into function

This changes target_can_execute_reverse from an object-like macro to
an inline function.

gdb/ChangeLog
2020-09-28  Tom Tromey  <tom@tromey.com>

	* mi/mi-main.c (exec_reverse_continue)
	(mi_cmd_list_target_features): Update.
	* infrun.c (set_exec_direction_func): Update.
	* target.c (default_execution_direction): Update.
	* reverse.c (exec_reverse_once): Update.
	* target.h (target_can_execute_reverse): Now a function.
This commit is contained in:
Tom Tromey
2020-09-28 19:38:25 -06:00
parent 9dccd06e8a
commit 05374cfd90
6 changed files with 19 additions and 7 deletions

View File

@ -1,3 +1,12 @@
2020-09-28 Tom Tromey <tom@tromey.com>
* mi/mi-main.c (exec_reverse_continue)
(mi_cmd_list_target_features): Update.
* infrun.c (set_exec_direction_func): Update.
* target.c (default_execution_direction): Update.
* reverse.c (exec_reverse_once): Update.
* target.h (target_can_execute_reverse): Now a function.
2020-09-28 Tom Tromey <tom@tromey.com> 2020-09-28 Tom Tromey <tom@tromey.com>
* tui/tui-regs.c (tui_get_register) * tui/tui-regs.c (tui_get_register)

View File

@ -9145,7 +9145,7 @@ static void
set_exec_direction_func (const char *args, int from_tty, set_exec_direction_func (const char *args, int from_tty,
struct cmd_list_element *cmd) struct cmd_list_element *cmd)
{ {
if (target_can_execute_reverse) if (target_can_execute_reverse ())
{ {
if (!strcmp (exec_direction, exec_forward)) if (!strcmp (exec_direction, exec_forward))
execution_direction = EXEC_FORWARD; execution_direction = EXEC_FORWARD;

View File

@ -321,7 +321,7 @@ exec_reverse_continue (char **argv, int argc)
if (dir == EXEC_REVERSE) if (dir == EXEC_REVERSE)
error (_("Already in reverse mode.")); error (_("Already in reverse mode."));
if (!target_can_execute_reverse) if (!target_can_execute_reverse ())
error (_("Target %s does not support this command."), target_shortname); error (_("Target %s does not support this command."), target_shortname);
scoped_restore save_exec_dir = make_scoped_restore (&execution_direction, scoped_restore save_exec_dir = make_scoped_restore (&execution_direction,
@ -1684,7 +1684,7 @@ mi_cmd_list_target_features (const char *command, char **argv, int argc)
ui_out_emit_list list_emitter (uiout, "features"); ui_out_emit_list list_emitter (uiout, "features");
if (mi_async_p ()) if (mi_async_p ())
uiout->field_string (NULL, "async"); uiout->field_string (NULL, "async");
if (target_can_execute_reverse) if (target_can_execute_reverse ())
uiout->field_string (NULL, "reverse"); uiout->field_string (NULL, "reverse");
return; return;
} }

View File

@ -44,7 +44,7 @@ exec_reverse_once (const char *cmd, const char *args, int from_tty)
error (_("Already in reverse mode. Use '%s' or 'set exec-dir forward'."), error (_("Already in reverse mode. Use '%s' or 'set exec-dir forward'."),
cmd); cmd);
if (!target_can_execute_reverse) if (!target_can_execute_reverse ())
error (_("Target %s does not support this command."), target_shortname); error (_("Target %s does not support this command."), target_shortname);
std::string reverse_command = string_printf ("%s %s", cmd, args ? args : ""); std::string reverse_command = string_printf ("%s %s", cmd, args ? args : "");

View File

@ -525,7 +525,7 @@ default_get_ada_task_ptid (struct target_ops *self, long lwp, long tid)
static enum exec_direction_kind static enum exec_direction_kind
default_execution_direction (struct target_ops *self) default_execution_direction (struct target_ops *self)
{ {
if (!target_can_execute_reverse) if (!target_can_execute_reverse ())
return EXEC_FORWARD; return EXEC_FORWARD;
else if (!target_can_async_p ()) else if (!target_can_async_p ())
return EXEC_FORWARD; return EXEC_FORWARD;

View File

@ -2117,8 +2117,11 @@ extern int target_ranged_break_num_registers (void);
extern int target_masked_watch_num_registers (CORE_ADDR addr, CORE_ADDR mask); extern int target_masked_watch_num_registers (CORE_ADDR addr, CORE_ADDR mask);
/* Target can execute in reverse? */ /* Target can execute in reverse? */
#define target_can_execute_reverse \ static inline bool
current_top_target ()->can_execute_reverse () target_can_execute_reverse ()
{
return current_top_target ()->can_execute_reverse ();
}
extern const struct target_desc *target_read_description (struct target_ops *); extern const struct target_desc *target_read_description (struct target_ops *);