diff options
author | Pedro Alves <palves@redhat.com> | 2015-10-13 19:40:50 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2015-10-13 19:40:50 +0100 |
commit | 170742de5dd5be2156f938e00e2451526ef57d5c (patch) | |
tree | 724d67ab6251af91e7f1e276fecd249b389f1450 /gdb | |
parent | bfb1c7963b15b31073c9adf2d97ff1cf953ec99c (diff) | |
download | gdb-170742de5dd5be2156f938e00e2451526ef57d5c.zip gdb-170742de5dd5be2156f938e00e2451526ef57d5c.tar.gz gdb-170742de5dd5be2156f938e00e2451526ef57d5c.tar.bz2 |
Fix execution_direction's type
This fixes a few build errors like these in C++ mode:
src/gdb/reverse.c: In function ‘void exec_reverse_once(char*, char*, int)’:
src/gdb/reverse.c:49:34: error: invalid conversion from ‘int’ to ‘exec_direction_kind’ [-fpermissive]
enum exec_direction_kind dir = execution_direction;
^
make: *** [reverse.o] Error 1
gdb/ChangeLog:
2015-10-13 Pedro Alves <palves@redhat.com>
* infrun.c (restore_execution_direction): New function.
(fetch_inferior_event): Use it instead of
make_cleanup_restore_integer.
(execution_direction): Change type to enum
exec_direction_kind.
* infrun.h (execution_direction): Likewise.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/infrun.c | 16 | ||||
-rw-r--r-- | gdb/infrun.h | 6 |
3 files changed, 25 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 63d0560..84eb37c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,14 @@ 2015-10-13 Pedro Alves <palves@redhat.com> + * infrun.c (restore_execution_direction): New function. + (fetch_inferior_event): Use it instead of + make_cleanup_restore_integer. + (execution_direction): Change type to enum + exec_direction_kind. + * infrun.h (execution_direction): Likewise. + +2015-10-13 Pedro Alves <palves@redhat.com> + * ada-lang.c (ada_value_primitive_packed_val): Constify locals. Use value_contents_writeable. Remove casts. diff --git a/gdb/infrun.c b/gdb/infrun.c index cf91370..0c268ff 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -3798,6 +3798,17 @@ clean_up_just_stopped_threads_fsms (struct execution_control_state *ecs) } } +/* A cleanup that restores the execution direction to the value saved + in *ARG. */ + +static void +restore_execution_direction (void *arg) +{ + enum exec_direction_kind *save_exec_dir = (enum exec_direction_kind *) arg; + + execution_direction = *save_exec_dir; +} + /* Asynchronous version of wait_for_inferior. It is called by the event loop whenever a change of state is detected on the file descriptor corresponding to the target. It can be called more than @@ -3815,6 +3826,7 @@ fetch_inferior_event (void *client_data) struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); struct cleanup *ts_old_chain; int was_sync = sync_execution; + enum exec_direction_kind save_exec_dir = execution_direction; int cmd_done = 0; ptid_t waiton_ptid = minus_one_ptid; @@ -3847,7 +3859,7 @@ fetch_inferior_event (void *client_data) event. */ target_dcache_invalidate (); - make_cleanup_restore_integer (&execution_direction); + make_cleanup (restore_execution_direction, &save_exec_dir); execution_direction = target_execution_direction (); ecs->ptid = do_target_wait (waiton_ptid, &ecs->ws, @@ -8937,7 +8949,7 @@ clear_exit_convenience_vars (void) Set exec-direction / show exec-direction commands (returns error unless target implements to_set_exec_direction method). */ -int execution_direction = EXEC_FORWARD; +enum exec_direction_kind execution_direction = EXEC_FORWARD; static const char exec_forward[] = "forward"; static const char exec_reverse[] = "reverse"; static const char *exec_direction = exec_forward; diff --git a/gdb/infrun.h b/gdb/infrun.h index ab27538..7364065 100644 --- a/gdb/infrun.h +++ b/gdb/infrun.h @@ -74,10 +74,8 @@ enum exec_direction_kind EXEC_REVERSE }; -/* The current execution direction. This should only be set to enum - exec_direction_kind values. It is only an int to make it - compatible with make_cleanup_restore_integer. */ -extern int execution_direction; +/* The current execution direction. */ +extern enum exec_direction_kind execution_direction; extern void start_remote (int from_tty); |