From 2d146a93217239b0f869aea5c6cae57a27db6744 Mon Sep 17 00:00:00 2001 From: Paul Fertser Date: Mon, 8 Jul 2013 10:10:19 +0400 Subject: [PATCH] oocd_trace: fix warnings gcc (Gentoo Hardened 4.6.3 p1.13) produces a warning about the variable assigned but not used. write() can sometimes write less than the specified count so it's marked with warn_unused_result in the system headers and its return value can't be ignored. The most correct solution would be to have a loop writing the buffer until all bytes are written or an error is returned but here it's impractical. Change-Id: I75f7482e2b26fe0e6d70d34947518d3a8f0afe5c Signed-off-by: Paul Fertser Reviewed-on: http://openocd.zylin.com/1490 Reviewed-by: Laszlo Papp Tested-by: jenkins Reviewed-by: Spencer Oliver --- src/target/oocd_trace.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/target/oocd_trace.c b/src/target/oocd_trace.c index 2969cc1e1..e723efe04 100644 --- a/src/target/oocd_trace.c +++ b/src/target/oocd_trace.c @@ -38,6 +38,8 @@ static int oocd_trace_read_reg(struct oocd_trace *oocd_trace, int reg, uint32_t cmd = 0x10 | (reg & 0x7); bytes_written = write(oocd_trace->tty_fd, &cmd, 1); + if (bytes_written < 1) + return ERROR_FAIL; bytes_to_read = 4; while (bytes_to_read > 0) { @@ -62,6 +64,9 @@ static int oocd_trace_write_reg(struct oocd_trace *oocd_trace, int reg, uint32_t data[4] = (value & 0xff000000) >> 24; bytes_written = write(oocd_trace->tty_fd, data, 5); + if (bytes_written < 5) + return ERROR_FAIL; + LOG_DEBUG("reg #%i: 0x%8.8x", reg, value); return ERROR_OK; @@ -78,6 +83,8 @@ static int oocd_trace_read_memory(struct oocd_trace *oocd_trace, uint8_t *data, cmd = 0x20; bytes_written = write(oocd_trace->tty_fd, &cmd, 1); + if (bytes_written < 1) + return ERROR_FAIL; bytes_to_read = size * 16; while (bytes_to_read > 0) { @@ -358,6 +365,8 @@ COMMAND_HANDLER(handle_oocd_trace_resync_command) cmd_array[0] = 0xf0; bytes_written = write(oocd_trace->tty_fd, cmd_array, 1); + if (bytes_written < 1) + return ERROR_FAIL; command_print(CMD_CTX, "requesting traceclock resync"); LOG_DEBUG("resyncing traceclk pll");