mips: fix void*/gdb_byte* compilation errors

The error in mips64_linux_get_longjmp_target is fixed by changing "buf"
to be a gdb_byte*, as usual.  supply_32bit_reg and mips64_fill_gregset
do some more complicated things however, so it's safer just to add the
explicit cast and avoid changing the code too much.

gdb/ChangeLog:

	* mips-linux-tdep.c (mips64_linux_get_longjmp_target): Change type of
	buf to gdb_byte*.
	(supply_32bit_reg): Add cast.
	(mips64_fill_gregset): Likewise.
This commit is contained in:
Simon Marchi 2015-10-22 09:46:28 -04:00 committed by Simon Marchi
parent 4894d80b50
commit 709476c3c5
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2015-10-22 Simon Marchi <simon.marchi@polymtl.ca>
* mips-linux-tdep.c (mips64_linux_get_longjmp_target): Change type of
buf to gdb_byte*.
(supply_32bit_reg): Add cast.
(mips64_fill_gregset): Likewise.
2015-10-21 Simon Marchi <simon.marchi@polymtl.ca>
PR python/18073

View File

@ -120,7 +120,8 @@ supply_32bit_reg (struct regcache *regcache, int regnum, const void *addr)
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
gdb_byte buf[MAX_REGISTER_SIZE];
store_signed_integer (buf, register_size (gdbarch, regnum), byte_order,
extract_signed_integer (addr, 4, byte_order));
extract_signed_integer ((const gdb_byte *) addr, 4,
byte_order));
regcache_raw_supply (regcache, regnum, buf);
}
@ -334,7 +335,8 @@ mips64_linux_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc)
CORE_ADDR jb_addr;
struct gdbarch *gdbarch = get_frame_arch (frame);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
void *buf = alloca (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
gdb_byte *buf
= (gdb_byte *) alloca (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
int element_size = gdbarch_ptr_bit (gdbarch) == 32 ? 4 : 8;
jb_addr = get_frame_register_unsigned (frame, MIPS_A0_REGNUM);
@ -475,7 +477,7 @@ mips64_fill_gregset (const struct regcache *regcache,
val = extract_signed_integer (buf, register_size (gdbarch, regno),
byte_order);
dst = regp + regaddr;
store_signed_integer (dst, 8, byte_order, val);
store_signed_integer ((gdb_byte *) dst, 8, byte_order, val);
}
}