Which method to get rid of this error message do you prefer:
...
src/jtag/drivers/arm-jtag-ew.c: In function ?armjtagew_debug_buffer?:
src/jtag/drivers/arm-jtag-ew.c:789:22: error: ?%04x? directive output may be 
truncated writing between 4 and 8 bytes into a region of size 5 
[-Werror=format-truncation=]
   snprintf(line, 5, "%04x", i);
                      ^~~~
src/jtag/drivers/arm-jtag-ew.c:789:21: note: directive argument in the range 
[0, 2147483632]
   snprintf(line, 5, "%04x", i);
                     ^~~~~~
...

and similarily for src/jtag/drivers/opendous.c.

///
 The code is last in file:

#ifdef _DEBUG_USB_COMMS_
#define BYTES_PER_LINE  16

static void armjtagew_debug_buffer(uint8_t *buffer, int length)
{
        char line[81];
        char s[4];
        int i;
        int j;

        for (i = 0; i < length; i += BYTES_PER_LINE) {
                snprintf(line, 5, "%04x", i);
                for (j = i; j < i + BYTES_PER_LINE && j < length; j++) {
                        snprintf(s, 4, " %02x", buffer[j]);
                        strcat(line, s);
                }
                LOG_DEBUG("%s", line);

                /* Prevent GDB timeout (writing to log might take some time) */
                keep_alive();
        }
}
#endif

and is about what to print for the byte offset index first on output 
line.

As a quick fix to make it compile I just added a (uint16_t) cast before 
i in the snprintf-line, but one could change i, j and length to uint16_t 
and use SCNx16 from inttypes.h, or change the #define and snprintf to 
accept the full range of int values.

Regards,
/Karl Hammar



_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to