From patchwork Thu May 19 12:54:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Schwab X-Patchwork-Id: 12378 Received: (qmail 86646 invoked by alias); 19 May 2016 12:54:21 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 86624 invoked by uid 89); 19 May 2016 12:54:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 spammy=sol, 1148, 26297, cfm X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Thu, 19 May 2016 12:54:10 +0000 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id CDA28AAB6 for ; Thu, 19 May 2016 12:54:06 +0000 (UTC) From: Andreas Schwab To: gdb-patches@sourceware.org Subject: [PATCH] Fix invalid implicit conversions from void * X-Yow: A wide-eyed, innocent UNICORN, poised delicately in a MEADOW filled with LILACS, LOLLIPOPS & small CHILDREN at the HUSH of twilight?? Date: Thu, 19 May 2016 14:54:06 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Tested on ia64-suse-linux. Andreas. * 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. --- gdb/ia64-libunwind-tdep.c | 60 ++++++++++++++++++++++++++++++----------------- gdb/ia64-linux-nat.c | 6 ++--- gdb/ia64-tdep.c | 8 +++---- 3 files changed, 46 insertions(+), 28 deletions(-) diff --git a/gdb/ia64-libunwind-tdep.c b/gdb/ia64-libunwind-tdep.c index fa89a0e..8ed00d4 100644 --- a/gdb/ia64-libunwind-tdep.c +++ b/gdb/ia64-libunwind-tdep.c @@ -114,7 +114,8 @@ static char *find_dyn_list_name = STRINGIFY(UNW_OBJ(find_dyn_list)); static struct libunwind_descr * libunwind_descr (struct gdbarch *gdbarch) { - return gdbarch_data (gdbarch, libunwind_descr_handle); + return ((struct libunwind_descr *) + gdbarch_data (gdbarch, libunwind_descr_handle)); } static void * @@ -134,12 +135,13 @@ libunwind_frame_set_descr (struct gdbarch *gdbarch, 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) { /* 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, libunwind_descr_handle, arch_descr); } @@ -165,7 +167,7 @@ libunwind_frame_cache (struct frame_info *this_frame, void **this_cache) int i, ret; if (*this_cache) - return *this_cache; + return (struct libunwind_frame_cache *) *this_cache; /* Allocate a new cache. */ cache = FRAME_OBSTACK_ZALLOC (struct libunwind_frame_cache); @@ -197,7 +199,7 @@ libunwind_frame_cache (struct frame_info *this_frame, void **this_cache) use this cursor to find previous registers via the unw_get_reg interface which will invoke libunwind's special logic. */ descr = libunwind_descr (gdbarch); - acc = descr->accessors; + acc = (unw_accessors_t *) descr->accessors; as = unw_create_addr_space_p (acc, gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG @@ -230,7 +232,8 @@ libunwind_frame_cache (struct frame_info *this_frame, void **this_cache) void 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) unw_destroy_addr_space_p (cache->as); @@ -262,7 +265,7 @@ libunwind_frame_sniffer (const struct frame_unwind *self, it has found sufficient libunwind unwinding information to do so. */ descr = libunwind_descr (gdbarch); - acc = descr->accessors; + acc = (unw_accessors_t *) descr->accessors; as = unw_create_addr_space_p (acc, gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG @@ -380,8 +383,10 @@ int libunwind_search_unwind_table (void *as, long ip, void *di, void *pi, int need_unwind_info, void *args) { - return unw_search_unwind_table_p (*(unw_addr_space_t *)as, (unw_word_t )ip, - di, pi, need_unwind_info, args); + return unw_search_unwind_table_p (*(unw_addr_space_t *) as, (unw_word_t) ip, + (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. */ @@ -405,7 +410,7 @@ libunwind_sigtramp_frame_sniffer (const struct frame_unwind *self, so. */ descr = libunwind_descr (gdbarch); - acc = descr->accessors; + acc = (unw_accessors_t *) descr->accessors; as = unw_create_addr_space_p (acc, gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG @@ -450,7 +455,7 @@ libunwind_get_reg_special (struct gdbarch *gdbarch, struct regcache *regcache, descr = libunwind_descr (gdbarch); - acc = descr->special_accessors; + acc = (unw_accessors_t *) descr->special_accessors; as = unw_create_addr_space_p (acc, gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG @@ -517,43 +522,56 @@ libunwind_load (void) /* Initialize pointers to the dynamic library functions we will use. */ - unw_get_reg_p = dlsym (handle, get_reg_name); + unw_get_reg_p = ((int (*) (unw_cursor_t *, unw_regnum_t, unw_word_t *)) + dlsym (handle, get_reg_name)); if (unw_get_reg_p == NULL) return 0; - unw_get_fpreg_p = dlsym (handle, get_fpreg_name); + unw_get_fpreg_p = ((int (*) (unw_cursor_t *, unw_regnum_t, unw_fpreg_t *)) + dlsym (handle, get_fpreg_name)); if (unw_get_fpreg_p == NULL) return 0; - unw_get_saveloc_p = dlsym (handle, get_saveloc_name); + unw_get_saveloc_p = ((int (*) (unw_cursor_t *, unw_regnum_t, + unw_save_loc_t *)) + dlsym (handle, get_saveloc_name)); if (unw_get_saveloc_p == NULL) return 0; - unw_is_signal_frame_p = dlsym (handle, is_signal_frame_name); + unw_is_signal_frame_p = ((int (*) (unw_cursor_t *)) + dlsym (handle, is_signal_frame_name)); if (unw_is_signal_frame_p == NULL) return 0; - unw_step_p = dlsym (handle, step_name); + unw_step_p = (int (*) (unw_cursor_t *)) dlsym (handle, step_name); if (unw_step_p == NULL) return 0; - unw_init_remote_p = dlsym (handle, init_remote_name); + unw_init_remote_p = ((int (*) (unw_cursor_t *, unw_addr_space_t, void *)) + dlsym (handle, init_remote_name)); if (unw_init_remote_p == NULL) return 0; - unw_create_addr_space_p = dlsym (handle, create_addr_space_name); + unw_create_addr_space_p = ((unw_addr_space_t (*) (unw_accessors_t *, int)) + dlsym (handle, create_addr_space_name)); if (unw_create_addr_space_p == NULL) return 0; - unw_destroy_addr_space_p = dlsym (handle, destroy_addr_space_name); + unw_destroy_addr_space_p = ((void (*) (unw_addr_space_t)) + dlsym (handle, destroy_addr_space_name)); if (unw_destroy_addr_space_p == NULL) return 0; - unw_search_unwind_table_p = dlsym (handle, search_unwind_table_name); + unw_search_unwind_table_p = ((int (*) (unw_addr_space_t, unw_word_t, + unw_dyn_info_t *, unw_proc_info_t *, + int, void *)) + dlsym (handle, search_unwind_table_name)); if (unw_search_unwind_table_p == NULL) return 0; - unw_find_dyn_list_p = dlsym (handle, find_dyn_list_name); + unw_find_dyn_list_p = ((unw_word_t (*) (unw_addr_space_t, unw_dyn_info_t *, + void *)) + dlsym (handle, find_dyn_list_name)); if (unw_find_dyn_list_p == NULL) return 0; diff --git a/gdb/ia64-linux-nat.c b/gdb/ia64-linux-nat.c index cd52d2e..a401fdd 100644 --- a/gdb/ia64-linux-nat.c +++ b/gdb/ia64-linux-nat.c @@ -746,7 +746,7 @@ ia64_linux_fetch_register (struct regcache *regcache, int regnum) size = register_size (gdbarch, regnum); 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. */ 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); 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. */ regcache_raw_collect (regcache, regnum, buf); @@ -865,7 +865,7 @@ ia64_linux_xfer_partial (struct target_ops *ops, if (offset >= gate_table_size) 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); if (res < 0) return TARGET_XFER_E_IO; diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index 681c560..5a14409 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -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); 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); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); 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) { 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. */ 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); 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); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); 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) { 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. */ gdb_assert (!write);