target_read_memory&co: no longer return target_xfer_status

Years ago, these functions used to return errno/EIO.  Later, through a
series of changes that intended to remove native/remote differences,
they ended up returning a target_xfer_status in disguise.

Unlike target_xfer_partial&co, the point of target_read_memory&co is
to either fully succeed or fail.  On error, they always return
TARGET_XFER_E_IO.  So there's no real point in casting the return of
target_read_memory to a target_xfer_status to pass it to memory_error.
Instead, it results in clearer code to simply decouple
target_read_memory&co's return from target_xfer_status.

This fixes build errors like this in C++ mode:

 ../../src/gdb/corefile.c: In function ‘void read_stack(CORE_ADDR, gdb_byte*, ssize_t)’:
 ../../src/gdb/corefile.c:276:34: error: invalid conversion from ‘int’ to ‘target_xfer_status’ [-fpermissive]
      memory_error (status, memaddr);
				   ^
 ../../src/gdb/corefile.c:216:1: error:   initializing argument 1 of ‘void memory_error(target_xfer_status, CORE_ADDR)’ [-fpermissive]

gdb/ChangeLog:
2015-10-27  Pedro Alves  <palves@redhat.com>

	* alpha-tdep.c (alpha_read_insn): Always pass TARGET_XFER_E_IO to
	memory_error.  Rename local 'status' to 'res'.
	* c-lang.c (c_get_string): Always pass TARGET_XFER_E_IO to
	memory_error.
	* corefile.c (read_stack, read_code, write_memory): Always pass
	TARGET_XFER_E_IO to memory_error.
	* disasm.c (dis_asm_memory_error): Always pass TARGET_XFER_E_IO to
	memory_error.  Rename parameter 'status' to 'err'.
	(dump_insns): Rename local 'status' to 'err'.
	* mips-tdep.c (mips_fetch_instruction): Rename parameter 'statusp'
	to 'errp'.  Rename local 'status' to 'err'.  Always pass
	TARGET_XFER_E_IO to memory_error.
	(mips_breakpoint_from_pc): Rename local 'status' to 'err'.
	* target.c (target_read_memory, target_read_raw_memory)
	(target_read_stack, target_read_code, target_write_memory)
	(target_write_raw_memory): Return -1 on error instead of
	TARGET_XFER_E_IO.
	* valprint.c (val_print_string): Rename local 'errcode' to 'err'.
	Always pass TARGET_XFER_E_IO to memory_error.  Update comment.
This commit is contained in:
Pedro Alves
2015-10-27 17:25:09 +00:00
parent c519209250
commit d09f2c3fc1
8 changed files with 72 additions and 49 deletions

View File

@@ -273,7 +273,7 @@ read_stack (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
status = target_read_stack (memaddr, myaddr, len);
if (status != 0)
memory_error (status, memaddr);
memory_error (TARGET_XFER_E_IO, memaddr);
}
/* Same as target_read_code, but report an error if can't read. */
@@ -285,7 +285,7 @@ read_code (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
status = target_read_code (memaddr, myaddr, len);
if (status != 0)
memory_error (status, memaddr);
memory_error (TARGET_XFER_E_IO, memaddr);
}
/* Read memory at MEMADDR of length LEN and put the contents in
@@ -392,7 +392,7 @@ write_memory (CORE_ADDR memaddr,
status = target_write_memory (memaddr, myaddr, len);
if (status != 0)
memory_error (status, memaddr);
memory_error (TARGET_XFER_E_IO, memaddr);
}
/* Same as write_memory, but notify 'memory_changed' observers. */