xsvf: fix clang warning
[openocd.git] / src / xsvf / xsvf.c
index f4d09ff9296ec01fadcf7ff6d7bb64bccbbd6632..5699d57fedd398294a59c6597ad2bdeafae11d4a 100644 (file)
@@ -189,7 +189,7 @@ COMMAND_HANDLER(handle_xsvf_command)
        tap_state_t xenddr = TAP_IDLE;
 
        uint8_t         opcode;
-       uint8_t         uc;
+       uint8_t         uc = 0;
        long            file_offset = 0;
 
        int             loop_count = 0;
@@ -221,8 +221,7 @@ COMMAND_HANDLER(handle_xsvf_command)
 
        if (CMD_ARGC < 2)
        {
-               command_print(CMD_CTX, "usage: xsvf <device#|plain> <file> [<variant>] [quiet]");
-               return ERROR_FAIL;
+               return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
        /* we mess with CMD_ARGV starting point below, snapshot filename here */
@@ -510,54 +509,59 @@ COMMAND_HANDLER(handle_xsvf_command)
                                if (xruntest)
                                {
                                        result = svf_add_statemove(TAP_IDLE);
+                                       if (result != ERROR_OK)
+                                               return result;
 
                                        if (runtest_requires_tck)
                                                jtag_add_clocks(xruntest);
                                        else
                                                jtag_add_sleep(xruntest);
-                               }
-                               else if (xendir != TAP_DRPAUSE) /* we are already in TAP_DRPAUSE */
+                               } else if (xendir != TAP_DRPAUSE) {
+                                       /* we are already in TAP_DRPAUSE */
                                        result = svf_add_statemove(xenddr);
+                                       if (result != ERROR_OK)
+                                               return result;
+                               }
                        }
                        break;
 
                case XSETSDRMASKS:
-                       LOG_ERROR("unsupported XSETSDRMASKS\n");
+                       LOG_ERROR("unsupported XSETSDRMASKS");
                        unsupported = 1;
                        break;
 
                case XSDRINC:
-                       LOG_ERROR("unsupported XSDRINC\n");
+                       LOG_ERROR("unsupported XSDRINC");
                        unsupported = 1;
                        break;
 
                case XSDRB:
-                       LOG_ERROR("unsupported XSDRB\n");
+                       LOG_ERROR("unsupported XSDRB");
                        unsupported = 1;
                        break;
 
                case XSDRC:
-                       LOG_ERROR("unsupported XSDRC\n");
+                       LOG_ERROR("unsupported XSDRC");
                        unsupported = 1;
                        break;
 
                case XSDRE:
-                       LOG_ERROR("unsupported XSDRE\n");
+                       LOG_ERROR("unsupported XSDRE");
                        unsupported = 1;
                        break;
 
                case XSDRTDOB:
-                       LOG_ERROR("unsupported XSDRTDOB\n");
+                       LOG_ERROR("unsupported XSDRTDOB");
                        unsupported = 1;
                        break;
 
                case XSDRTDOC:
-                       LOG_ERROR("unsupported XSDRTDOC\n");
+                       LOG_ERROR("unsupported XSDRTDOC");
                        unsupported = 1;
                        break;
 
                case XSDRTDOE:
-                       LOG_ERROR("unsupported XSDRTDOE\n");
+                       LOG_ERROR("unsupported XSDRTDOE");
                        unsupported = 1;
                        break;
 
@@ -760,7 +764,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                                   XWAIT <uint8_t wait_state> <uint8_t end_state> <uint32_t usecs>
                                */
 
-                               uint8_t wait;
+                               uint8_t wait_local;
                                uint8_t end;
                                uint8_t delay_buf[4];
 
@@ -768,7 +772,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                                tap_state_t end_state;
                                int     delay;
 
-                               if (read(xsvf_fd, &wait, 1) < 0
+                               if (read(xsvf_fd, &wait_local, 1) < 0
                                  || read(xsvf_fd, &end, 1) < 0
                                  || read(xsvf_fd, delay_buf, 4) < 0)
                                {
@@ -776,7 +780,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                                        break;
                                }
 
-                               wait_state = xsvf_to_tap(wait);
+                               wait_state = xsvf_to_tap(wait_local);
                                end_state  = xsvf_to_tap(end);
                                delay      = be_to_h_u32(delay_buf);
 
@@ -790,8 +794,12 @@ COMMAND_HANDLER(handle_xsvf_command)
                                {
                                        /* FIXME handle statemove errors ... */
                                        result = svf_add_statemove(wait_state);
+                                       if (result != ERROR_OK)
+                                               return result;
                                        jtag_add_sleep(delay);
                                        result = svf_add_statemove(end_state);
+                                       if (result != ERROR_OK)
+                                               return result;
                                }
                        }
                        break;
@@ -804,14 +812,14 @@ COMMAND_HANDLER(handle_xsvf_command)
 
                                uint8_t  clock_buf[4];
                                uint8_t usecs_buf[4];
-                               uint8_t wait;
+                               uint8_t wait_local;
                                uint8_t end;
                                tap_state_t wait_state;
                                tap_state_t end_state;
                                int clock_count;
                                int usecs;
 
-                               if (read(xsvf_fd, &wait, 1) < 0
+                               if (read(xsvf_fd, &wait_local, 1) < 0
                                 ||  read(xsvf_fd, &end, 1) < 0
                                 ||  read(xsvf_fd, clock_buf, 4) < 0
                                 ||  read(xsvf_fd, usecs_buf, 4) < 0)
@@ -820,7 +828,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                                        break;
                                }
 
-                               wait_state = xsvf_to_tap(wait);
+                               wait_state = xsvf_to_tap(wait_local);
                                end_state  = xsvf_to_tap(end);
 
                                clock_count = be_to_h_u32(clock_buf);
@@ -846,12 +854,16 @@ COMMAND_HANDLER(handle_xsvf_command)
 
                                /* FIXME handle statemove errors ... */
                                result = svf_add_statemove(wait_state);
+                               if (result != ERROR_OK)
+                                       return result;
 
                                jtag_add_clocks(clock_count);
 
                                jtag_add_sleep(usecs);
 
                                result = svf_add_statemove(end_state);
+                               if (result != ERROR_OK)
+                                       return result;
                        }
                        break;
 
@@ -925,6 +937,8 @@ COMMAND_HANDLER(handle_xsvf_command)
                                        struct scan_field field;
 
                                        result = svf_add_statemove(loop_state);
+                                       if (result != ERROR_OK)
+                                               return result;
                                        jtag_add_clocks(loop_clocks);
                                        jtag_add_sleep(loop_usecs);
 
@@ -993,7 +1007,7 @@ COMMAND_HANDLER(handle_xsvf_command)
                        break;
 
                default:
-                       LOG_ERROR("unknown xsvf command (0x%02X)\n", uc);
+                       LOG_ERROR("unknown xsvf command (0x%02X)", uc);
                        unsupported = 1;
                }
 
@@ -1003,7 +1017,11 @@ COMMAND_HANDLER(handle_xsvf_command)
 
                        /* upon error, return the TAPs to a reasonable state */
                        result = svf_add_statemove(TAP_IDLE);
+                       if (result != ERROR_OK)
+                               return result;
                        result = jtag_execute_queue();
+                       if (result != ERROR_OK)
+                               return result;
                        break;
                }
        }

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)