diff options
author | Pedro Alves <palves@redhat.com> | 2016-04-21 06:42:13 -0400 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2016-04-21 12:03:53 +0100 |
commit | 3451269c4128c4b74f4614d9781cb75207c5ee34 (patch) | |
tree | b03d165bd6a8825826c30e852333a3701a0f529a /gdb/gdbserver/linux-s390-low.c | |
parent | b36cec19e826c19648964576ef2d20d63f99e888 (diff) | |
download | gdb-3451269c4128c4b74f4614d9781cb75207c5ee34.zip gdb-3451269c4128c4b74f4614d9781cb75207c5ee34.tar.gz gdb-3451269c4128c4b74f4614d9781cb75207c5ee34.tar.bz2 |
Fix s390 GNU/Linux gdb and gdbserver builds
Now that gdb/gdbserver compile as C++ programs by default, the s390
GNU/Linux build started failing with:
In file included from ../../src/gdb/common/common-defs.h:64:0,
from ../../src/gdb/defs.h:28,
from ../../src/gdb/s390-linux-nat.c:22:
../../src/gdb/s390-linux-nat.c: In function ‘void fetch_regset(regcache*, int, int, int, const regset*)’:
../../src/gdb/../include/libiberty.h:711:38: error: invalid conversion from ‘void*’ to ‘gdb_byte* {aka unsigned char*}’ [-fpermissive]
# define alloca(x) __builtin_alloca(x)
^
../../src/gdb/s390-linux-nat.c:297:19: note: in expansion of macro ‘alloca’
gdb_byte *buf = alloca (regsize);
^
etc.
gdb/ChangeLog:
2016-04-21 Pedro Alves <palves@redhat.com>
* s390-linux-nat.c (fetch_regset, store_regset, check_regset): Use
void * instead of gdb_byte *.
gdb/gdbserver/ChangeLog:
2016-04-21 Pedro Alves <palves@redhat.com>
* linux-s390-low.c (s390_collect_ptrace_register)
(s390_supply_ptrace_register, s390_get_hwcap): Use gdb_byte * and
add casts.
(s390_check_regset): Use void * instead of gdb_byte *.
Diffstat (limited to 'gdb/gdbserver/linux-s390-low.c')
-rw-r--r-- | gdb/gdbserver/linux-s390-low.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gdb/gdbserver/linux-s390-low.c b/gdb/gdbserver/linux-s390-low.c index 12269b6..f5a7d85 100644 --- a/gdb/gdbserver/linux-s390-low.c +++ b/gdb/gdbserver/linux-s390-low.c @@ -171,7 +171,7 @@ s390_collect_ptrace_register (struct regcache *regcache, int regno, char *buf) { /* Convert 4-byte PSW mask to 8 bytes by clearing bit 12 and copying the basic addressing mode bit from the PSW address. */ - char *addr = alloca (register_size (regcache->tdesc, regno ^ 1)); + gdb_byte *addr = (gdb_byte *) alloca (register_size (regcache->tdesc, regno ^ 1)); collect_register (regcache, regno, buf); collect_register (regcache, regno ^ 1, addr); buf[1] &= ~0x8; @@ -216,8 +216,8 @@ s390_supply_ptrace_register (struct regcache *regcache, { /* Convert 8-byte PSW mask to 4 bytes by setting bit 12 and copying the basic addressing mode into the PSW address. */ - char *mask = alloca (size); - char *addr = alloca (register_size (regcache->tdesc, regno ^ 1)); + gdb_byte *mask = (gdb_byte *) alloca (size); + gdb_byte *addr = (gdb_byte *) alloca (register_size (regcache->tdesc, regno ^ 1)); memcpy (mask, buf, size); mask[1] |= 0x8; supply_register (regcache, regno, mask); @@ -231,7 +231,7 @@ s390_supply_ptrace_register (struct regcache *regcache, { /* Convert 8-byte PSW address to 4 bytes by truncating, but keeping the addressing mode bit (which was set from the mask). */ - char *addr = alloca (size); + gdb_byte *addr = (gdb_byte *) alloca (size); char amode; collect_register (regcache, regno, addr); amode = addr[0] & 0x80; @@ -442,7 +442,7 @@ static unsigned long s390_get_hwcap (const struct target_desc *tdesc) { int wordsize = register_size (tdesc, 0); - unsigned char *data = alloca (2 * wordsize); + gdb_byte *data = (gdb_byte *) alloca (2 * wordsize); int offset = 0; while ((*the_target->read_auxv) (offset, data, 2 * wordsize) == 2 * wordsize) @@ -469,7 +469,7 @@ s390_get_hwcap (const struct target_desc *tdesc) static int s390_check_regset (int pid, int regset, int regsize) { - gdb_byte *buf = alloca (regsize); + void *buf = alloca (regsize); struct iovec iov; iov.iov_base = buf; |