From patchwork Fri Oct 9 13:10:07 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 9005 Received: (qmail 20495 invoked by alias); 9 Oct 2015 13:10:15 -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 20482 invoked by uid 89); 9 Oct 2015 13:10:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, SPF_PASS autolearn=ham version=3.3.2 X-HELO: usevmg21.ericsson.net Received: from usevmg21.ericsson.net (HELO usevmg21.ericsson.net) (198.24.6.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Fri, 09 Oct 2015 13:10:10 +0000 Received: from EUSAAHC006.ericsson.se (Unknown_Domain [147.117.188.90]) by usevmg21.ericsson.net (Symantec Mail Security) with SMTP id A1.2E.26730.69057165; Fri, 9 Oct 2015 07:28:54 +0200 (CEST) Received: from [142.133.110.144] (147.117.188.8) by smtp-am.internal.ericsson.com (147.117.188.92) with Microsoft SMTP Server id 14.3.248.2; Fri, 9 Oct 2015 09:10:07 -0400 Subject: Re: [PATCH c++] Change some void* to gdb_byte* To: Pedro Alves , References: <1444341261-5714-1-git-send-email-simon.marchi@ericsson.com> <56178E8C.5040407@redhat.com> From: Simon Marchi Message-ID: <5617BCAF.8070704@ericsson.com> Date: Fri, 9 Oct 2015 09:10:07 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <56178E8C.5040407@redhat.com> X-IsSubscribed: yes On 15-10-09 05:53 AM, Pedro Alves wrote: > This will need a fix similar to 39086a0e13: > https://sourceware.org/ml/gdb-patches/2013-03/msg00449.html Good find! Here is the updated version. Only py-inferior.c changed. I also noticed that infpy_write_memory needed the same change, I don't know why I didn't include it in the original patch. From 6a200361bf3e6ae6ba577f02ace1f3fb76ef47a2 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 8 Oct 2015 17:54:14 -0400 Subject: [PATCH] Change some void* to gdb_byte* There are a bunch of places where a void* is implicitely casted into a gdb_byte*. The auto-insert-casts script added explicit casts at those places. However, in many cases, it makes more sense to just change the void* to a gdb_byte*. gdb/ChangeLog: * aarch64-tdep.c (stack_item_t): Change type of data to gdb_byte*. * arm-tdep.c (struct stack_item): Likewise. (push_stack_item): Add gdb_byte* cast. * avr-tdep.c (struct stack_item): Change type of data to gdb_byte*. (push_stack_item): Add gdb_byte* cast. * cli/cli-dump.c (dump_memory_to_file): Change type of buf to gdb_byte* and add cast. * cris-tdep.c (struct stack_item): Change type of data to gdb_byte*. (push_stack_item): Add gdb_byte* cast. * gcore.c (gcore_copy_callback): Change type of memhunk to gdb_byte* and add cast. * gdbtypes.h (print_scalar_formatted): Change type of first parameter to gdb_byte*. * h8300-tdep.c (h8300_extract_return_value): Change type of valbuf to gdb_byte* and remove unnecessary cast. (h8300h_extract_return_value): Likewise. (h8300_store_return_value): Change type of valbuf to gdb_byte*. (h8300h_store_return_value): Likewise. * iq2000-tdep.c (iq2000_extract_return_value): Change type of valbuf to gdb_byte* and remove unnecessary cast. * jit.c (jit_reader_try_read_symtab): Change type of gdb_mem to gdb_byte* and add cast. * m32r-tdep.c (m32r_store_return_value): Change type of valbuf to gdb_byte* and remove unnecessary cast. (m32r_extract_return_value): Change type of dst to gdb_byte* and remove valbuf. * mep-tdep.c (mep_pseudo_cr32_read): Change type of buf to gdb_byte*. (mep_pseudo_cr64_read): Likewise. (mep_pseudo_csr_write): Likewise. (mep_pseudo_cr32_write): Likewise. (mep_pseudo_cr64_write): Likewise. * mi/mi-main.c (mi_cmd_data_write_memory): Change type of buffer to gdb_byte* and add cast. * moxie-tdep.c (moxie_store_return_value): Change type of valbuf to gdb_byte* and remove unnecessary cast. (moxie_extract_return_value): Change type of dst to gdb_byte* and remove valbuf. * p-valprint.c (print_scalar_formatted): Change type of valaddr to gdb_byte*. * printcmd.c (void): Likewise. * python/py-inferior.c (infpy_read_memory): Change type of buffer to gdb_byte* and add cast. (infpy_write_memory): Likewise. (infpy_search_memory): Likewise. * regcache.c (regcache_raw_write_signed): Change type of buf to gdb_byte* and add cast. (regcache_raw_write_unsigned): Likewise. (regcache_cooked_write_signed): Likewise. (regcache_cooked_write_unsigned): Likewise. * sh64-tdep.c (h64_extract_return_value): Change type of valbuf to gdb_byte*. --- gdb/aarch64-tdep.c | 2 +- gdb/arm-tdep.c | 4 ++-- gdb/avr-tdep.c | 4 ++-- gdb/cli/cli-dump.c | 4 ++-- gdb/cris-tdep.c | 4 ++-- gdb/gcore.c | 4 ++-- gdb/gdbtypes.h | 2 +- gdb/h8300-tdep.c | 13 ++++++------- gdb/iq2000-tdep.c | 4 ++-- gdb/jit.c | 4 ++-- gdb/m32r-tdep.c | 11 +++++------ gdb/mep-tdep.c | 10 +++++----- gdb/mi/mi-main.c | 4 ++-- gdb/moxie-tdep.c | 12 +++++------- gdb/p-valprint.c | 4 ++-- gdb/printcmd.c | 2 +- gdb/python/py-inferior.c | 23 +++++++++++++++-------- gdb/regcache.c | 16 ++++++++-------- gdb/sh64-tdep.c | 2 +- 19 files changed, 66 insertions(+), 63 deletions(-) diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index df67e12..90ee204 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -1161,7 +1161,7 @@ aarch64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, typedef struct { /* Value to pass on stack. */ - const void *data; + const gdb_byte *data; /* Size in bytes of value to pass on stack. */ int len; diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 4c99ddf..249e1d1 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -3398,7 +3398,7 @@ struct stack_item { int len; struct stack_item *prev; - void *data; + gdb_byte *data; }; static struct stack_item * @@ -3406,7 +3406,7 @@ push_stack_item (struct stack_item *prev, const void *contents, int len) { struct stack_item *si; si = XNEW (struct stack_item); - si->data = xmalloc (len); + si->data = (gdb_byte *) xmalloc (len); si->len = len; si->prev = prev; memcpy (si->data, contents, len); diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index 4fcae53..1108eb4 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -1198,7 +1198,7 @@ struct stack_item { int len; struct stack_item *prev; - void *data; + gdb_byte *data; }; static struct stack_item * @@ -1206,7 +1206,7 @@ push_stack_item (struct stack_item *prev, const bfd_byte *contents, int len) { struct stack_item *si; si = XNEW (struct stack_item); - si->data = xmalloc (len); + si->data = (gdb_byte *) xmalloc (len); si->len = len; si->prev = prev; memcpy (si->data, contents, len); diff --git a/gdb/cli/cli-dump.c b/gdb/cli/cli-dump.c index a434ac1..2dcb9c3 100644 --- a/gdb/cli/cli-dump.c +++ b/gdb/cli/cli-dump.c @@ -212,7 +212,7 @@ dump_memory_to_file (const char *cmd, const char *mode, const char *file_format) CORE_ADDR hi; ULONGEST count; const char *filename; - void *buf; + gdb_byte *buf; const char *lo_exp; const char *hi_exp; @@ -237,7 +237,7 @@ dump_memory_to_file (const char *cmd, const char *mode, const char *file_format) /* FIXME: Should use read_memory_partial() and a magic blocking value. */ - buf = xmalloc (count); + buf = (gdb_byte *) xmalloc (count); make_cleanup (xfree, buf); read_memory (lo, buf, count); diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 73e4048..adb7221 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -665,14 +665,14 @@ struct stack_item { int len; struct stack_item *prev; - void *data; + gdb_byte *data; }; static struct stack_item * push_stack_item (struct stack_item *prev, const gdb_byte *contents, int len) { struct stack_item *si = XNEW (struct stack_item); - si->data = xmalloc (len); + si->data = (gdb_byte *) xmalloc (len); si->len = len; si->prev = prev; memcpy (si->data, contents, len); diff --git a/gdb/gcore.c b/gdb/gcore.c index a883e89..04007ae 100644 --- a/gdb/gcore.c +++ b/gdb/gcore.c @@ -562,7 +562,7 @@ gcore_copy_callback (bfd *obfd, asection *osec, void *ignored) bfd_size_type size, total_size = bfd_section_size (obfd, osec); file_ptr offset = 0; struct cleanup *old_chain = NULL; - void *memhunk; + gdb_byte *memhunk; /* Read-only sections are marked; we don't have to copy their contents. */ if ((bfd_get_section_flags (obfd, osec) & SEC_LOAD) == 0) @@ -573,7 +573,7 @@ gcore_copy_callback (bfd *obfd, asection *osec, void *ignored) return; size = min (total_size, MAX_COPY_BYTES); - memhunk = xmalloc (size); + memhunk = (gdb_byte *) xmalloc (size); old_chain = make_cleanup (xfree, memhunk); while (total_size > 0) diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index 29eec99..9c64569 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -1904,7 +1904,7 @@ extern int field_is_static (struct field *); /* printcmd.c */ -extern void print_scalar_formatted (const void *, struct type *, +extern void print_scalar_formatted (const gdb_byte *, struct type *, const struct value_print_options *, int, struct ui_file *); diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index f4b97c1..5bdc159 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -742,7 +742,7 @@ h8300_push_dummy_call (struct gdbarch *gdbarch, struct value *function, static void h8300_extract_return_value (struct type *type, struct regcache *regcache, - void *valbuf) + gdb_byte *valbuf) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); @@ -760,7 +760,7 @@ h8300_extract_return_value (struct type *type, struct regcache *regcache, regcache_cooked_read_unsigned (regcache, E_RET0_REGNUM, &c); store_unsigned_integer (valbuf, 2, byte_order, c); regcache_cooked_read_unsigned (regcache, E_RET1_REGNUM, &c); - store_unsigned_integer ((void *)((char *) valbuf + 2), 2, byte_order, c); + store_unsigned_integer (valbuf + 2, 2, byte_order, c); break; case 8: /* long long is now 8 bytes. */ if (TYPE_CODE (type) == TYPE_CODE_INT) @@ -779,7 +779,7 @@ h8300_extract_return_value (struct type *type, struct regcache *regcache, static void h8300h_extract_return_value (struct type *type, struct regcache *regcache, - void *valbuf) + gdb_byte *valbuf) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); @@ -799,8 +799,7 @@ h8300h_extract_return_value (struct type *type, struct regcache *regcache, regcache_cooked_read_unsigned (regcache, E_RET0_REGNUM, &c); store_unsigned_integer (valbuf, 4, byte_order, c); regcache_cooked_read_unsigned (regcache, E_RET1_REGNUM, &c); - store_unsigned_integer ((void *) ((char *) valbuf + 4), 4, - byte_order, c); + store_unsigned_integer (valbuf + 4, 4, byte_order, c); } else { @@ -845,7 +844,7 @@ h8300h_use_struct_convention (struct type *value_type) static void h8300_store_return_value (struct type *type, struct regcache *regcache, - const void *valbuf) + const gdb_byte *valbuf) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); @@ -874,7 +873,7 @@ h8300_store_return_value (struct type *type, struct regcache *regcache, static void h8300h_store_return_value (struct type *type, struct regcache *regcache, - const void *valbuf) + const gdb_byte *valbuf) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); diff --git a/gdb/iq2000-tdep.c b/gdb/iq2000-tdep.c index efeb244..36f3e8d 100644 --- a/gdb/iq2000-tdep.c +++ b/gdb/iq2000-tdep.c @@ -537,7 +537,7 @@ iq2000_use_struct_convention (struct type *type) static void iq2000_extract_return_value (struct type *type, struct regcache *regcache, - void *valbuf) + gdb_byte *valbuf) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); @@ -564,7 +564,7 @@ iq2000_extract_return_value (struct type *type, struct regcache *regcache, regcache_cooked_read_unsigned (regcache, regno++, &tmp); store_unsigned_integer (valbuf, size, byte_order, tmp); len -= size; - valbuf = ((char *) valbuf) + size; + valbuf += size; } } else diff --git a/gdb/jit.c b/gdb/jit.c index fbc0d02..7c267d7 100644 --- a/gdb/jit.c +++ b/gdb/jit.c @@ -819,7 +819,7 @@ static int jit_reader_try_read_symtab (struct jit_code_entry *code_entry, CORE_ADDR entry_addr) { - void *gdb_mem; + gdb_byte *gdb_mem; int status; jit_dbg_reader_data priv_data; struct gdb_reader_funcs *funcs; @@ -842,7 +842,7 @@ jit_reader_try_read_symtab (struct jit_code_entry *code_entry, if (!loaded_jit_reader) return 0; - gdb_mem = xmalloc (code_entry->symfile_size); + gdb_mem = (gdb_byte *) xmalloc (code_entry->symfile_size); status = 1; TRY diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c index 9b89ad9..472e666 100644 --- a/gdb/m32r-tdep.c +++ b/gdb/m32r-tdep.c @@ -249,7 +249,7 @@ m32r_register_type (struct gdbarch *gdbarch, int reg_nr) static void m32r_store_return_value (struct type *type, struct regcache *regcache, - const void *valbuf) + const gdb_byte *valbuf) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); @@ -261,7 +261,7 @@ m32r_store_return_value (struct type *type, struct regcache *regcache, if (len > 4) { - regval = extract_unsigned_integer ((gdb_byte *) valbuf + 4, + regval = extract_unsigned_integer (valbuf + 4, len - 4, byte_order); regcache_cooked_write_unsigned (regcache, RET1_REGNUM + 1, regval); } @@ -776,25 +776,24 @@ m32r_push_dummy_call (struct gdbarch *gdbarch, struct value *function, static void m32r_extract_return_value (struct type *type, struct regcache *regcache, - void *dst) + gdb_byte *dst) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); - bfd_byte *valbuf = dst; int len = TYPE_LENGTH (type); ULONGEST tmp; /* By using store_unsigned_integer we avoid having to do anything special for small big-endian values. */ regcache_cooked_read_unsigned (regcache, RET1_REGNUM, &tmp); - store_unsigned_integer (valbuf, (len > 4 ? len - 4 : len), byte_order, tmp); + store_unsigned_integer (dst, (len > 4 ? len - 4 : len), byte_order, tmp); /* Ignore return values more than 8 bytes in size because the m32r returns anything more than 8 bytes in the stack. */ if (len > 4) { regcache_cooked_read_unsigned (regcache, RET1_REGNUM + 1, &tmp); - store_unsigned_integer (valbuf + len - 4, 4, byte_order, tmp); + store_unsigned_integer (dst + len - 4, 4, byte_order, tmp); } } diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c index b3c1f77..b6f242f 100644 --- a/gdb/mep-tdep.c +++ b/gdb/mep-tdep.c @@ -1126,7 +1126,7 @@ static enum register_status mep_pseudo_cr32_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, - void *buf) + gdb_byte *buf) { enum register_status status; enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); @@ -1152,7 +1152,7 @@ static enum register_status mep_pseudo_cr64_read (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, - void *buf) + gdb_byte *buf) { return regcache_raw_read (regcache, mep_pseudo_to_raw[cookednum], buf); } @@ -1182,7 +1182,7 @@ static void mep_pseudo_csr_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, - const void *buf) + const gdb_byte *buf) { enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); int size = register_size (gdbarch, cookednum); @@ -1213,7 +1213,7 @@ static void mep_pseudo_cr32_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, - const void *buf) + const gdb_byte *buf) { enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); /* Expand the 32-bit value into a 64-bit value, and write that to @@ -1234,7 +1234,7 @@ static void mep_pseudo_cr64_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, - const void *buf) + const gdb_byte *buf) { regcache_raw_write (regcache, mep_pseudo_to_raw[cookednum], buf); } diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index 3ad11bb..2b25a9c 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -1696,7 +1696,7 @@ mi_cmd_data_write_memory (char *command, char **argv, int argc) /* FIXME: ezannoni 2000-02-17 LONGEST could possibly not be big enough when using a compiler other than GCC. */ LONGEST value; - void *buffer; + gdb_byte *buffer; struct cleanup *old_chain; long offset = 0; int oind = 0; @@ -1744,7 +1744,7 @@ mi_cmd_data_write_memory (char *command, char **argv, int argc) /* Get the value as a number. */ value = parse_and_eval_address (argv[3]); /* Get the value into an array. */ - buffer = xmalloc (word_size); + buffer = (gdb_byte *) xmalloc (word_size); old_chain = make_cleanup (xfree, buffer); store_signed_integer (buffer, word_size, byte_order, value); /* Write it down to memory. */ diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c index 3236012..49e8410 100644 --- a/gdb/moxie-tdep.c +++ b/gdb/moxie-tdep.c @@ -117,7 +117,7 @@ moxie_register_type (struct gdbarch *gdbarch, int reg_nr) static void moxie_store_return_value (struct type *type, struct regcache *regcache, - const void *valbuf) + const gdb_byte *valbuf) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); @@ -129,8 +129,7 @@ moxie_store_return_value (struct type *type, struct regcache *regcache, regcache_cooked_write_unsigned (regcache, RET1_REGNUM, regval); if (len > 4) { - regval = extract_unsigned_integer ((gdb_byte *) valbuf + 4, - len - 4, byte_order); + regval = extract_unsigned_integer (valbuf + 4, len - 4, byte_order); regcache_cooked_write_unsigned (regcache, RET1_REGNUM + 1, regval); } } @@ -499,25 +498,24 @@ moxie_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame) static void moxie_extract_return_value (struct type *type, struct regcache *regcache, - void *dst) + gdb_byte *dst) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); - bfd_byte *valbuf = dst; int len = TYPE_LENGTH (type); ULONGEST tmp; /* By using store_unsigned_integer we avoid having to do anything special for small big-endian values. */ regcache_cooked_read_unsigned (regcache, RET1_REGNUM, &tmp); - store_unsigned_integer (valbuf, (len > 4 ? len - 4 : len), byte_order, tmp); + store_unsigned_integer (dst, (len > 4 ? len - 4 : len), byte_order, tmp); /* Ignore return values more than 8 bytes in size because the moxie returns anything more than 8 bytes in the stack. */ if (len > 4) { regcache_cooked_read_unsigned (regcache, RET1_REGNUM + 1, &tmp); - store_unsigned_integer (valbuf + len - 4, 4, byte_order, tmp); + store_unsigned_integer (dst + len - 4, 4, byte_order, tmp); } } diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c index 4e1c812..120035a 100644 --- a/gdb/p-valprint.c +++ b/gdb/p-valprint.c @@ -203,11 +203,11 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr, && addr != 0) { ULONGEST string_length; - void *buffer; + gdb_byte *buffer; if (want_space) fputs_filtered (" ", stream); - buffer = xmalloc (length_size); + buffer = (gdb_byte *) xmalloc (length_size); read_memory (addr + length_pos, buffer, length_size); string_length = extract_unsigned_integer (buffer, length_size, byte_order); diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 5dddf4e..1744abd 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -346,7 +346,7 @@ float_type_from_length (struct type *type) supported at this level. */ void -print_scalar_formatted (const void *valaddr, struct type *type, +print_scalar_formatted (const gdb_byte *valaddr, struct type *type, const struct value_print_options *options, int size, struct ui_file *stream) { diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c index dbc197e..c506ccd 100644 --- a/gdb/python/py-inferior.c +++ b/gdb/python/py-inferior.c @@ -505,7 +505,7 @@ static PyObject * infpy_read_memory (PyObject *self, PyObject *args, PyObject *kw) { CORE_ADDR addr, length; - void *buffer = NULL; + gdb_byte *buffer = NULL; membuf_object *membuf_obj; PyObject *addr_obj, *length_obj, *result; static char *keywords[] = { "address", "length", NULL }; @@ -520,7 +520,7 @@ infpy_read_memory (PyObject *self, PyObject *args, PyObject *kw) TRY { - buffer = xmalloc (length); + buffer = (gdb_byte *) xmalloc (length); read_memory (addr, buffer, length); } @@ -564,7 +564,7 @@ infpy_write_memory (PyObject *self, PyObject *args, PyObject *kw) { struct gdb_exception except = exception_none; Py_ssize_t buf_len; - const char *buffer; + const gdb_byte *buffer; CORE_ADDR addr, length; PyObject *addr_obj, *length_obj = NULL; static char *keywords[] = { "address", "buffer", "length", NULL }; @@ -576,13 +576,17 @@ infpy_write_memory (PyObject *self, PyObject *args, PyObject *kw) &length_obj)) return NULL; - buffer = pybuf.buf; + buffer = (const gdb_byte *) pybuf.buf; buf_len = pybuf.len; #else + const void *vbuffer; + if (! PyArg_ParseTupleAndKeywords (args, kw, "Os#|O", keywords, &addr_obj, &buffer, &buf_len, &length_obj)) return NULL; + + buffer = (const gdb_byte *) buffer; #endif if (get_addr_from_python (addr_obj, &addr) < 0) @@ -595,7 +599,7 @@ infpy_write_memory (PyObject *self, PyObject *args, PyObject *kw) TRY { - write_memory_with_notification (addr, (gdb_byte *) buffer, length); + write_memory_with_notification (addr, buffer, length); } CATCH (ex, RETURN_MASK_ALL) { @@ -717,7 +721,7 @@ infpy_search_memory (PyObject *self, PyObject *args, PyObject *kw) static char *keywords[] = { "address", "length", "pattern", NULL }; PyObject *start_addr_obj, *length_obj; Py_ssize_t pattern_size; - const void *buffer; + const gdb_byte *buffer; CORE_ADDR found_addr; int found = 0; #ifdef IS_PY3K @@ -728,10 +732,11 @@ infpy_search_memory (PyObject *self, PyObject *args, PyObject *kw) &pybuf)) return NULL; - buffer = pybuf.buf; + buffer = (const gdb_byte *) pybuf.buf; pattern_size = pybuf.len; #else PyObject *pattern; + const void *vbuffer; if (! PyArg_ParseTupleAndKeywords (args, kw, "OOO", keywords, &start_addr_obj, &length_obj, @@ -746,8 +751,10 @@ infpy_search_memory (PyObject *self, PyObject *args, PyObject *kw) return NULL; } - if (PyObject_AsReadBuffer (pattern, &buffer, &pattern_size) == -1) + if (PyObject_AsReadBuffer (pattern, &vbuffer, &pattern_size) == -1) return NULL; + + buffer = (const gdb_byte *) vbuffer; #endif if (get_addr_from_python (start_addr_obj, &start_addr) < 0) diff --git a/gdb/regcache.c b/gdb/regcache.c index 41c7aca..74d883a 100644 --- a/gdb/regcache.c +++ b/gdb/regcache.c @@ -710,11 +710,11 @@ regcache_raw_read_unsigned (struct regcache *regcache, int regnum, void regcache_raw_write_signed (struct regcache *regcache, int regnum, LONGEST val) { - void *buf; + gdb_byte *buf; gdb_assert (regcache != NULL); gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers); - buf = alloca (regcache->descr->sizeof_register[regnum]); + buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]); store_signed_integer (buf, regcache->descr->sizeof_register[regnum], gdbarch_byte_order (regcache->descr->gdbarch), val); regcache_raw_write (regcache, regnum, buf); @@ -724,11 +724,11 @@ void regcache_raw_write_unsigned (struct regcache *regcache, int regnum, ULONGEST val) { - void *buf; + gdb_byte *buf; gdb_assert (regcache != NULL); gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers); - buf = alloca (regcache->descr->sizeof_register[regnum]); + buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]); store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum], gdbarch_byte_order (regcache->descr->gdbarch), val); regcache_raw_write (regcache, regnum, buf); @@ -858,11 +858,11 @@ void regcache_cooked_write_signed (struct regcache *regcache, int regnum, LONGEST val) { - void *buf; + gdb_byte *buf; gdb_assert (regcache != NULL); gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers); - buf = alloca (regcache->descr->sizeof_register[regnum]); + buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]); store_signed_integer (buf, regcache->descr->sizeof_register[regnum], gdbarch_byte_order (regcache->descr->gdbarch), val); regcache_cooked_write (regcache, regnum, buf); @@ -872,11 +872,11 @@ void regcache_cooked_write_unsigned (struct regcache *regcache, int regnum, ULONGEST val) { - void *buf; + gdb_byte *buf; gdb_assert (regcache != NULL); gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers); - buf = alloca (regcache->descr->sizeof_register[regnum]); + buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]); store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum], gdbarch_byte_order (regcache->descr->gdbarch), val); regcache_cooked_write (regcache, regnum, buf); diff --git a/gdb/sh64-tdep.c b/gdb/sh64-tdep.c index f76c845..f751b29 100644 --- a/gdb/sh64-tdep.c +++ b/gdb/sh64-tdep.c @@ -1222,7 +1222,7 @@ sh64_push_dummy_call (struct gdbarch *gdbarch, TYPE, and copy that, in virtual format, into VALBUF. */ static void sh64_extract_return_value (struct type *type, struct regcache *regcache, - void *valbuf) + gdb_byte *valbuf) { struct gdbarch *gdbarch = get_regcache_arch (regcache); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);