Fix invalid implicit conversions from void *
* ia64-libunwind-tdep.c (libunwind_descr): Add cast from void *. (libunwind_frame_set_descr): Likewise. (libunwind_frame_cache): Likewise. (libunwind_frame_dealloc_cache): Likewise. (libunwind_frame_sniffer): Likewise. (libunwind_search_unwind_table): Likewise. (libunwind_sigtramp_frame_sniffer): Likewise. (libunwind_get_reg_special): Likewise. (libunwind_load): Likewise. * ia64-linux-nat.c (ia64_linux_fetch_register): Likewise. (ia64_linux_store_register): Likewise. (ia64_linux_xfer_partial): Likewise. * ia64-tdep.c (ia64_access_reg): Likewise. (ia64_access_fpreg): Likewise. (ia64_access_rse_reg): Likewise. (ia64_access_rse_fpreg): Likewise.
This commit is contained in:
parent
fc3eec7ebd
commit
bfb0d950a5
|
@ -1,3 +1,22 @@
|
||||||
|
2016-05-19 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
|
* ia64-libunwind-tdep.c (libunwind_descr): Add cast from void *.
|
||||||
|
(libunwind_frame_set_descr): Likewise.
|
||||||
|
(libunwind_frame_cache): Likewise.
|
||||||
|
(libunwind_frame_dealloc_cache): Likewise.
|
||||||
|
(libunwind_frame_sniffer): Likewise.
|
||||||
|
(libunwind_search_unwind_table): Likewise.
|
||||||
|
(libunwind_sigtramp_frame_sniffer): Likewise.
|
||||||
|
(libunwind_get_reg_special): Likewise.
|
||||||
|
(libunwind_load): Likewise.
|
||||||
|
* ia64-linux-nat.c (ia64_linux_fetch_register): Likewise.
|
||||||
|
(ia64_linux_store_register): Likewise.
|
||||||
|
(ia64_linux_xfer_partial): Likewise.
|
||||||
|
* ia64-tdep.c (ia64_access_reg): Likewise.
|
||||||
|
(ia64_access_fpreg): Likewise.
|
||||||
|
(ia64_access_rse_reg): Likewise.
|
||||||
|
(ia64_access_rse_fpreg): Likewise.
|
||||||
|
|
||||||
2016-05-18 Tom Tromey <tom@tromey.com>
|
2016-05-18 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* rust-lang.c (rust_subscript): Initialize "high".
|
* rust-lang.c (rust_subscript): Initialize "high".
|
||||||
|
|
|
@ -59,20 +59,33 @@ static int libunwind_initialized;
|
||||||
static struct gdbarch_data *libunwind_descr_handle;
|
static struct gdbarch_data *libunwind_descr_handle;
|
||||||
|
|
||||||
/* Required function pointers from libunwind. */
|
/* Required function pointers from libunwind. */
|
||||||
static int (*unw_get_reg_p) (unw_cursor_t *, unw_regnum_t, unw_word_t *);
|
typedef int (unw_get_reg_p_ftype) (unw_cursor_t *, unw_regnum_t, unw_word_t *);
|
||||||
static int (*unw_get_fpreg_p) (unw_cursor_t *, unw_regnum_t, unw_fpreg_t *);
|
static unw_get_reg_p_ftype *unw_get_reg_p;
|
||||||
static int (*unw_get_saveloc_p) (unw_cursor_t *, unw_regnum_t,
|
typedef int (unw_get_fpreg_p_ftype) (unw_cursor_t *, unw_regnum_t,
|
||||||
unw_save_loc_t *);
|
unw_fpreg_t *);
|
||||||
static int (*unw_is_signal_frame_p) (unw_cursor_t *);
|
static unw_get_fpreg_p_ftype *unw_get_fpreg_p;
|
||||||
static int (*unw_step_p) (unw_cursor_t *);
|
typedef int (unw_get_saveloc_p_ftype) (unw_cursor_t *, unw_regnum_t,
|
||||||
static int (*unw_init_remote_p) (unw_cursor_t *, unw_addr_space_t, void *);
|
unw_save_loc_t *);
|
||||||
static unw_addr_space_t (*unw_create_addr_space_p) (unw_accessors_t *, int);
|
static unw_get_saveloc_p_ftype *unw_get_saveloc_p;
|
||||||
static void (*unw_destroy_addr_space_p) (unw_addr_space_t);
|
typedef int (unw_is_signal_frame_p_ftype) (unw_cursor_t *);
|
||||||
static int (*unw_search_unwind_table_p) (unw_addr_space_t, unw_word_t,
|
static unw_is_signal_frame_p_ftype *unw_is_signal_frame_p;
|
||||||
unw_dyn_info_t *,
|
typedef int (unw_step_p_ftype) (unw_cursor_t *);
|
||||||
unw_proc_info_t *, int, void *);
|
static unw_step_p_ftype *unw_step_p;
|
||||||
static unw_word_t (*unw_find_dyn_list_p) (unw_addr_space_t, unw_dyn_info_t *,
|
typedef int (unw_init_remote_p_ftype) (unw_cursor_t *, unw_addr_space_t,
|
||||||
void *);
|
void *);
|
||||||
|
static unw_init_remote_p_ftype *unw_init_remote_p;
|
||||||
|
typedef unw_addr_space_t (unw_create_addr_space_p_ftype) (unw_accessors_t *,
|
||||||
|
int);
|
||||||
|
static unw_create_addr_space_p_ftype *unw_create_addr_space_p;
|
||||||
|
typedef void (unw_destroy_addr_space_p_ftype) (unw_addr_space_t);
|
||||||
|
static unw_destroy_addr_space_p_ftype *unw_destroy_addr_space_p;
|
||||||
|
typedef int (unw_search_unwind_table_p_ftype) (unw_addr_space_t, unw_word_t,
|
||||||
|
unw_dyn_info_t *,
|
||||||
|
unw_proc_info_t *, int, void *);
|
||||||
|
static unw_search_unwind_table_p_ftype *unw_search_unwind_table_p;
|
||||||
|
typedef unw_word_t (unw_find_dyn_list_p_ftype) (unw_addr_space_t,
|
||||||
|
unw_dyn_info_t *, void *);
|
||||||
|
static unw_find_dyn_list_p_ftype *unw_find_dyn_list_p;
|
||||||
|
|
||||||
|
|
||||||
struct libunwind_frame_cache
|
struct libunwind_frame_cache
|
||||||
|
@ -114,7 +127,8 @@ static char *find_dyn_list_name = STRINGIFY(UNW_OBJ(find_dyn_list));
|
||||||
static struct libunwind_descr *
|
static struct libunwind_descr *
|
||||||
libunwind_descr (struct gdbarch *gdbarch)
|
libunwind_descr (struct gdbarch *gdbarch)
|
||||||
{
|
{
|
||||||
return gdbarch_data (gdbarch, libunwind_descr_handle);
|
return ((struct libunwind_descr *)
|
||||||
|
gdbarch_data (gdbarch, libunwind_descr_handle));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
|
@ -134,12 +148,13 @@ libunwind_frame_set_descr (struct gdbarch *gdbarch,
|
||||||
|
|
||||||
gdb_assert (gdbarch != NULL);
|
gdb_assert (gdbarch != NULL);
|
||||||
|
|
||||||
arch_descr = gdbarch_data (gdbarch, libunwind_descr_handle);
|
arch_descr = ((struct libunwind_descr *)
|
||||||
|
gdbarch_data (gdbarch, libunwind_descr_handle));
|
||||||
|
|
||||||
if (arch_descr == NULL)
|
if (arch_descr == NULL)
|
||||||
{
|
{
|
||||||
/* First time here. Must initialize data area. */
|
/* First time here. Must initialize data area. */
|
||||||
arch_descr = libunwind_descr_init (gdbarch);
|
arch_descr = (struct libunwind_descr *) libunwind_descr_init (gdbarch);
|
||||||
deprecated_set_gdbarch_data (gdbarch,
|
deprecated_set_gdbarch_data (gdbarch,
|
||||||
libunwind_descr_handle, arch_descr);
|
libunwind_descr_handle, arch_descr);
|
||||||
}
|
}
|
||||||
|
@ -165,7 +180,7 @@ libunwind_frame_cache (struct frame_info *this_frame, void **this_cache)
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
if (*this_cache)
|
if (*this_cache)
|
||||||
return *this_cache;
|
return (struct libunwind_frame_cache *) *this_cache;
|
||||||
|
|
||||||
/* Allocate a new cache. */
|
/* Allocate a new cache. */
|
||||||
cache = FRAME_OBSTACK_ZALLOC (struct libunwind_frame_cache);
|
cache = FRAME_OBSTACK_ZALLOC (struct libunwind_frame_cache);
|
||||||
|
@ -197,7 +212,7 @@ libunwind_frame_cache (struct frame_info *this_frame, void **this_cache)
|
||||||
use this cursor to find previous registers via the unw_get_reg
|
use this cursor to find previous registers via the unw_get_reg
|
||||||
interface which will invoke libunwind's special logic. */
|
interface which will invoke libunwind's special logic. */
|
||||||
descr = libunwind_descr (gdbarch);
|
descr = libunwind_descr (gdbarch);
|
||||||
acc = descr->accessors;
|
acc = (unw_accessors_t *) descr->accessors;
|
||||||
as = unw_create_addr_space_p (acc,
|
as = unw_create_addr_space_p (acc,
|
||||||
gdbarch_byte_order (gdbarch)
|
gdbarch_byte_order (gdbarch)
|
||||||
== BFD_ENDIAN_BIG
|
== BFD_ENDIAN_BIG
|
||||||
|
@ -230,7 +245,8 @@ libunwind_frame_cache (struct frame_info *this_frame, void **this_cache)
|
||||||
void
|
void
|
||||||
libunwind_frame_dealloc_cache (struct frame_info *self, void *this_cache)
|
libunwind_frame_dealloc_cache (struct frame_info *self, void *this_cache)
|
||||||
{
|
{
|
||||||
struct libunwind_frame_cache *cache = this_cache;
|
struct libunwind_frame_cache *cache
|
||||||
|
= (struct libunwind_frame_cache *) this_cache;
|
||||||
|
|
||||||
if (cache->as)
|
if (cache->as)
|
||||||
unw_destroy_addr_space_p (cache->as);
|
unw_destroy_addr_space_p (cache->as);
|
||||||
|
@ -262,7 +278,7 @@ libunwind_frame_sniffer (const struct frame_unwind *self,
|
||||||
it has found sufficient libunwind unwinding information to do so. */
|
it has found sufficient libunwind unwinding information to do so. */
|
||||||
|
|
||||||
descr = libunwind_descr (gdbarch);
|
descr = libunwind_descr (gdbarch);
|
||||||
acc = descr->accessors;
|
acc = (unw_accessors_t *) descr->accessors;
|
||||||
as = unw_create_addr_space_p (acc,
|
as = unw_create_addr_space_p (acc,
|
||||||
gdbarch_byte_order (gdbarch)
|
gdbarch_byte_order (gdbarch)
|
||||||
== BFD_ENDIAN_BIG
|
== BFD_ENDIAN_BIG
|
||||||
|
@ -380,8 +396,10 @@ int
|
||||||
libunwind_search_unwind_table (void *as, long ip, void *di,
|
libunwind_search_unwind_table (void *as, long ip, void *di,
|
||||||
void *pi, int need_unwind_info, void *args)
|
void *pi, int need_unwind_info, void *args)
|
||||||
{
|
{
|
||||||
return unw_search_unwind_table_p (*(unw_addr_space_t *)as, (unw_word_t )ip,
|
return unw_search_unwind_table_p (*(unw_addr_space_t *) as, (unw_word_t) ip,
|
||||||
di, pi, need_unwind_info, args);
|
(unw_dyn_info_t *) di,
|
||||||
|
(unw_proc_info_t *) pi, need_unwind_info,
|
||||||
|
args);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Verify if we are in a sigtramp frame and we can use libunwind to unwind. */
|
/* Verify if we are in a sigtramp frame and we can use libunwind to unwind. */
|
||||||
|
@ -405,7 +423,7 @@ libunwind_sigtramp_frame_sniffer (const struct frame_unwind *self,
|
||||||
so. */
|
so. */
|
||||||
|
|
||||||
descr = libunwind_descr (gdbarch);
|
descr = libunwind_descr (gdbarch);
|
||||||
acc = descr->accessors;
|
acc = (unw_accessors_t *) descr->accessors;
|
||||||
as = unw_create_addr_space_p (acc,
|
as = unw_create_addr_space_p (acc,
|
||||||
gdbarch_byte_order (gdbarch)
|
gdbarch_byte_order (gdbarch)
|
||||||
== BFD_ENDIAN_BIG
|
== BFD_ENDIAN_BIG
|
||||||
|
@ -450,7 +468,7 @@ libunwind_get_reg_special (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||||
|
|
||||||
|
|
||||||
descr = libunwind_descr (gdbarch);
|
descr = libunwind_descr (gdbarch);
|
||||||
acc = descr->special_accessors;
|
acc = (unw_accessors_t *) descr->special_accessors;
|
||||||
as = unw_create_addr_space_p (acc,
|
as = unw_create_addr_space_p (acc,
|
||||||
gdbarch_byte_order (gdbarch)
|
gdbarch_byte_order (gdbarch)
|
||||||
== BFD_ENDIAN_BIG
|
== BFD_ENDIAN_BIG
|
||||||
|
@ -517,43 +535,52 @@ libunwind_load (void)
|
||||||
|
|
||||||
/* Initialize pointers to the dynamic library functions we will use. */
|
/* Initialize pointers to the dynamic library functions we will use. */
|
||||||
|
|
||||||
unw_get_reg_p = dlsym (handle, get_reg_name);
|
unw_get_reg_p = (unw_get_reg_p_ftype *) dlsym (handle, get_reg_name);
|
||||||
if (unw_get_reg_p == NULL)
|
if (unw_get_reg_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
unw_get_fpreg_p = dlsym (handle, get_fpreg_name);
|
unw_get_fpreg_p = (unw_get_fpreg_p_ftype *) dlsym (handle, get_fpreg_name);
|
||||||
if (unw_get_fpreg_p == NULL)
|
if (unw_get_fpreg_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
unw_get_saveloc_p = dlsym (handle, get_saveloc_name);
|
unw_get_saveloc_p
|
||||||
|
= (unw_get_saveloc_p_ftype *) dlsym (handle, get_saveloc_name);
|
||||||
if (unw_get_saveloc_p == NULL)
|
if (unw_get_saveloc_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
unw_is_signal_frame_p = dlsym (handle, is_signal_frame_name);
|
unw_is_signal_frame_p
|
||||||
|
= (unw_is_signal_frame_p_ftype *) dlsym (handle, is_signal_frame_name);
|
||||||
if (unw_is_signal_frame_p == NULL)
|
if (unw_is_signal_frame_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
unw_step_p = dlsym (handle, step_name);
|
unw_step_p = (unw_step_p_ftype *) dlsym (handle, step_name);
|
||||||
if (unw_step_p == NULL)
|
if (unw_step_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
unw_init_remote_p = dlsym (handle, init_remote_name);
|
unw_init_remote_p
|
||||||
|
= (unw_init_remote_p_ftype *) dlsym (handle, init_remote_name);
|
||||||
if (unw_init_remote_p == NULL)
|
if (unw_init_remote_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
unw_create_addr_space_p = dlsym (handle, create_addr_space_name);
|
unw_create_addr_space_p
|
||||||
|
= (unw_create_addr_space_p_ftype *) dlsym (handle, create_addr_space_name);
|
||||||
if (unw_create_addr_space_p == NULL)
|
if (unw_create_addr_space_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
unw_destroy_addr_space_p = dlsym (handle, destroy_addr_space_name);
|
unw_destroy_addr_space_p
|
||||||
|
= (unw_destroy_addr_space_p_ftype *) dlsym (handle,
|
||||||
|
destroy_addr_space_name);
|
||||||
if (unw_destroy_addr_space_p == NULL)
|
if (unw_destroy_addr_space_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
unw_search_unwind_table_p = dlsym (handle, search_unwind_table_name);
|
unw_search_unwind_table_p
|
||||||
|
= (unw_search_unwind_table_p_ftype *) dlsym (handle,
|
||||||
|
search_unwind_table_name);
|
||||||
if (unw_search_unwind_table_p == NULL)
|
if (unw_search_unwind_table_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
unw_find_dyn_list_p = dlsym (handle, find_dyn_list_name);
|
unw_find_dyn_list_p
|
||||||
|
= (unw_find_dyn_list_p_ftype *) dlsym (handle, find_dyn_list_name);
|
||||||
if (unw_find_dyn_list_p == NULL)
|
if (unw_find_dyn_list_p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
@ -746,7 +746,7 @@ ia64_linux_fetch_register (struct regcache *regcache, int regnum)
|
||||||
size = register_size (gdbarch, regnum);
|
size = register_size (gdbarch, regnum);
|
||||||
|
|
||||||
gdb_assert ((size % sizeof (PTRACE_TYPE_RET)) == 0);
|
gdb_assert ((size % sizeof (PTRACE_TYPE_RET)) == 0);
|
||||||
buf = alloca (size);
|
buf = (PTRACE_TYPE_RET *) alloca (size);
|
||||||
|
|
||||||
/* Read the register contents from the inferior a chunk at a time. */
|
/* Read the register contents from the inferior a chunk at a time. */
|
||||||
for (i = 0; i < size / sizeof (PTRACE_TYPE_RET); i++)
|
for (i = 0; i < size / sizeof (PTRACE_TYPE_RET); i++)
|
||||||
|
@ -804,7 +804,7 @@ ia64_linux_store_register (const struct regcache *regcache, int regnum)
|
||||||
size = register_size (gdbarch, regnum);
|
size = register_size (gdbarch, regnum);
|
||||||
|
|
||||||
gdb_assert ((size % sizeof (PTRACE_TYPE_RET)) == 0);
|
gdb_assert ((size % sizeof (PTRACE_TYPE_RET)) == 0);
|
||||||
buf = alloca (size);
|
buf = (PTRACE_TYPE_RET *) alloca (size);
|
||||||
|
|
||||||
/* Write the register contents into the inferior a chunk at a time. */
|
/* Write the register contents into the inferior a chunk at a time. */
|
||||||
regcache_raw_collect (regcache, regnum, buf);
|
regcache_raw_collect (regcache, regnum, buf);
|
||||||
|
@ -865,7 +865,7 @@ ia64_linux_xfer_partial (struct target_ops *ops,
|
||||||
if (offset >= gate_table_size)
|
if (offset >= gate_table_size)
|
||||||
return TARGET_XFER_EOF;
|
return TARGET_XFER_EOF;
|
||||||
|
|
||||||
tmp_buf = alloca (gate_table_size);
|
tmp_buf = (gdb_byte *) alloca (gate_table_size);
|
||||||
res = syscall (__NR_getunwind, tmp_buf, gate_table_size);
|
res = syscall (__NR_getunwind, tmp_buf, gate_table_size);
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
return TARGET_XFER_E_IO;
|
return TARGET_XFER_E_IO;
|
||||||
|
|
|
@ -2485,7 +2485,7 @@ ia64_access_reg (unw_addr_space_t as, unw_regnum_t uw_regnum, unw_word_t *val,
|
||||||
{
|
{
|
||||||
int regnum = ia64_uw2gdb_regnum (uw_regnum);
|
int regnum = ia64_uw2gdb_regnum (uw_regnum);
|
||||||
unw_word_t bsp, sof, sol, cfm, psr, ip;
|
unw_word_t bsp, sof, sol, cfm, psr, ip;
|
||||||
struct frame_info *this_frame = arg;
|
struct frame_info *this_frame = (struct frame_info *) arg;
|
||||||
struct gdbarch *gdbarch = get_frame_arch (this_frame);
|
struct gdbarch *gdbarch = get_frame_arch (this_frame);
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
long new_sof, old_sof;
|
long new_sof, old_sof;
|
||||||
|
@ -2548,7 +2548,7 @@ ia64_access_fpreg (unw_addr_space_t as, unw_regnum_t uw_regnum,
|
||||||
unw_fpreg_t *val, int write, void *arg)
|
unw_fpreg_t *val, int write, void *arg)
|
||||||
{
|
{
|
||||||
int regnum = ia64_uw2gdb_regnum (uw_regnum);
|
int regnum = ia64_uw2gdb_regnum (uw_regnum);
|
||||||
struct frame_info *this_frame = arg;
|
struct frame_info *this_frame = (struct frame_info *) arg;
|
||||||
|
|
||||||
/* We never call any libunwind routines that need to write registers. */
|
/* We never call any libunwind routines that need to write registers. */
|
||||||
gdb_assert (!write);
|
gdb_assert (!write);
|
||||||
|
@ -2565,7 +2565,7 @@ ia64_access_rse_reg (unw_addr_space_t as, unw_regnum_t uw_regnum,
|
||||||
{
|
{
|
||||||
int regnum = ia64_uw2gdb_regnum (uw_regnum);
|
int regnum = ia64_uw2gdb_regnum (uw_regnum);
|
||||||
unw_word_t bsp, sof, sol, cfm, psr, ip;
|
unw_word_t bsp, sof, sol, cfm, psr, ip;
|
||||||
struct regcache *regcache = arg;
|
struct regcache *regcache = (struct regcache *) arg;
|
||||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
long new_sof, old_sof;
|
long new_sof, old_sof;
|
||||||
|
@ -2629,7 +2629,7 @@ ia64_access_rse_fpreg (unw_addr_space_t as, unw_regnum_t uw_regnum,
|
||||||
unw_fpreg_t *val, int write, void *arg)
|
unw_fpreg_t *val, int write, void *arg)
|
||||||
{
|
{
|
||||||
int regnum = ia64_uw2gdb_regnum (uw_regnum);
|
int regnum = ia64_uw2gdb_regnum (uw_regnum);
|
||||||
struct regcache *regcache = arg;
|
struct regcache *regcache = (struct regcache *) arg;
|
||||||
|
|
||||||
/* We never call any libunwind routines that need to write registers. */
|
/* We never call any libunwind routines that need to write registers. */
|
||||||
gdb_assert (!write);
|
gdb_assert (!write);
|
||||||
|
|
Loading…
Reference in New Issue