| Index: gdb/xstormy16-tdep.c
|
| diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
|
| index 47fc86b22597c0bfbf2c84f1597539c47344faff..cb7d31eed01ff3b530ed2ac3d42932e38bae9293 100644
|
| --- a/gdb/xstormy16-tdep.c
|
| +++ b/gdb/xstormy16-tdep.c
|
| @@ -1,6 +1,6 @@
|
| /* Target-dependent code for the Sanyo Xstormy16a (LC590000) processor.
|
|
|
| - Copyright (C) 2001-2005, 2007-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -29,7 +29,7 @@
|
| #include "value.h"
|
| #include "dis-asm.h"
|
| #include "inferior.h"
|
| -#include "gdb_string.h"
|
| +#include <string.h>
|
| #include "gdb_assert.h"
|
| #include "arch-utils.h"
|
| #include "floatformat.h"
|
| @@ -160,13 +160,13 @@ xstormy16_use_struct_convention (struct type *type)
|
|
|
| static void
|
| xstormy16_extract_return_value (struct type *type, struct regcache *regcache,
|
| - void *valbuf)
|
| + gdb_byte *valbuf)
|
| {
|
| int len = TYPE_LENGTH (type);
|
| int i, regnum = E_1ST_ARG_REGNUM;
|
|
|
| for (i = 0; i < len; i += xstormy16_reg_size)
|
| - regcache_raw_read (regcache, regnum++, (char *) valbuf + i);
|
| + regcache_raw_read (regcache, regnum++, valbuf + i);
|
| }
|
|
|
| /* Function: xstormy16_store_return_value
|
| @@ -176,12 +176,12 @@ xstormy16_extract_return_value (struct type *type, struct regcache *regcache,
|
|
|
| static void
|
| xstormy16_store_return_value (struct type *type, struct regcache *regcache,
|
| - const void *valbuf)
|
| + const gdb_byte *valbuf)
|
| {
|
| if (TYPE_LENGTH (type) == 1)
|
| {
|
| /* Add leading zeros to the value. */
|
| - char buf[xstormy16_reg_size];
|
| + gdb_byte buf[xstormy16_reg_size];
|
| memset (buf, 0, xstormy16_reg_size);
|
| memcpy (buf, valbuf, 1);
|
| regcache_raw_write (regcache, E_1ST_ARG_REGNUM, buf);
|
| @@ -192,7 +192,7 @@ xstormy16_store_return_value (struct type *type, struct regcache *regcache,
|
| int i, regnum = E_1ST_ARG_REGNUM;
|
|
|
| for (i = 0; i < len; i += xstormy16_reg_size)
|
| - regcache_raw_write (regcache, regnum++, (char *) valbuf + i);
|
| + regcache_raw_write (regcache, regnum++, valbuf + i);
|
| }
|
| }
|
|
|
| @@ -238,7 +238,7 @@ xstormy16_push_dummy_call (struct gdbarch *gdbarch,
|
| int i, j;
|
| int typelen, slacklen;
|
| const gdb_byte *val;
|
| - char buf[xstormy16_pc_size];
|
| + gdb_byte buf[xstormy16_pc_size];
|
|
|
| /* If struct_return is true, then the struct return address will
|
| consume one argument-passing register. */
|
| @@ -278,17 +278,21 @@ xstormy16_push_dummy_call (struct gdbarch *gdbarch,
|
| wordaligned. */
|
| for (j = nargs - 1; j >= i; j--)
|
| {
|
| - char *val;
|
| + gdb_byte *val;
|
| + struct cleanup *back_to;
|
| + const gdb_byte *bytes = value_contents (args[j]);
|
|
|
| typelen = TYPE_LENGTH (value_enclosing_type (args[j]));
|
| slacklen = typelen & 1;
|
| - val = alloca (typelen + slacklen);
|
| - memcpy (val, value_contents (args[j]), typelen);
|
| + val = xmalloc (typelen + slacklen);
|
| + back_to = make_cleanup (xfree, val);
|
| + memcpy (val, bytes, typelen);
|
| memset (val + typelen, 0, slacklen);
|
|
|
| /* Now write this data to the stack. The stack grows upwards. */
|
| write_memory (stack_dest, val, typelen + slacklen);
|
| stack_dest += typelen + slacklen;
|
| + do_cleanups (back_to);
|
| }
|
|
|
| store_unsigned_integer (buf, xstormy16_pc_size, byte_order, bp_addr);
|
| @@ -501,7 +505,7 @@ xstormy16_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
|
| return 0;
|
| }
|
|
|
| -const static unsigned char *
|
| +static const unsigned char *
|
| xstormy16_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr,
|
| int *lenptr)
|
| {
|
| @@ -521,7 +525,7 @@ xstormy16_resolve_jmp_table_entry (struct gdbarch *gdbarch, CORE_ADDR faddr)
|
| if (faddr_sect)
|
| {
|
| LONGEST inst, inst2, addr;
|
| - char buf[2 * xstormy16_inst_size];
|
| + gdb_byte buf[2 * xstormy16_inst_size];
|
|
|
| /* Return faddr if it's not pointing into the jump table. */
|
| if (strcmp (faddr_sect->the_bfd_section->name, ".plt"))
|
| @@ -573,7 +577,7 @@ xstormy16_find_jmp_table_entry (struct gdbarch *gdbarch, CORE_ADDR faddr)
|
| for (; addr < endaddr; addr += 2 * xstormy16_inst_size)
|
| {
|
| LONGEST inst, inst2, faddr2;
|
| - char buf[2 * xstormy16_inst_size];
|
| + gdb_byte buf[2 * xstormy16_inst_size];
|
|
|
| if (target_read_memory (addr, buf, sizeof buf))
|
| return 0;
|
|
|