Fix GCC7 warnings about switch-case fallthroughs 74/4174/4
authorFreddie Chopin <freddie.chopin@gmail.com>
Thu, 29 Jun 2017 21:48:19 +0000 (23:48 +0200)
committerFreddie Chopin <freddie.chopin@gmail.com>
Mon, 23 Oct 2017 09:54:16 +0000 (10:54 +0100)
GCC7 with -Wextra warns about switch-case blocks which fallthrough with
"this statement may fall through [-Werror=implicit-fallthrough=]". This
can be fixed by adding "special" comments: "/* fallthrough */".

See https://gcc.gnu.org/gcc-7/changes.html

Change-Id: Iba0be791dbdd86984489b2d9a0592bb59828da1e
Signed-off-by: Freddie Chopin <freddie.chopin@gmail.com>
Reviewed-on: http://openocd.zylin.com/4174
Tested-by: jenkins
src/flash/mflash.c
src/flash/nand/mx3.c
src/flash/nor/kinetis.c
src/helper/command.c
src/jtag/drivers/ftdi.c
src/jtag/drivers/kitprog.c
src/svf/svf.c
src/target/arm_adi_v5.c
src/target/arm_disassembler.c
src/target/target.c

index b6999554279114c6967e971f99568fa86218e6eb..4c95d216caa1896f0deee458e9ea415f679b9316 100644 (file)
@@ -259,11 +259,11 @@ static int mg_dsk_wait(mg_io_type_wait wait_local, uint32_t time_var)
                                case mg_io_wait_rdy:
                                        if (status & mg_io_rbit_status_ready)
                                                return ERROR_OK;
-
+                                       /* fallthrough */
                                case mg_io_wait_drq:
                                        if (status & mg_io_rbit_status_data_req)
                                                return ERROR_OK;
-
+                                       /* fallthrough */
                                default:
                                        break;
                        }
index b61e47535fbf5bb5363302798d63c0712845a80e..5fdc923056c96ec875208297d4c9ba7f5f0e9553 100644 (file)
@@ -281,6 +281,7 @@ static int imx31_command(struct nand_device *nand, uint8_t command)
                         * offset == one half of page size
                         */
                        in_sram_address = MX3_NF_MAIN_BUFFER0 + (nand->page_size >> 1);
+                       break;
                default:
                        in_sram_address = MX3_NF_MAIN_BUFFER0;
        }
index 4ef4385070183f38f035e7466ac0a90f0f41c393..455e7b1b08a0324e663a2622bf91c6e799953009 100644 (file)
@@ -2126,6 +2126,7 @@ static int kinetis_probe_chip(struct kinetis_chip *k_chip)
                        case KINETIS_SDID_FAMILYID_K6X | KINETIS_SDID_SUBFAMID_KX1:     /* errata 7534 - should be K63 */
                        case KINETIS_SDID_FAMILYID_K6X | KINETIS_SDID_SUBFAMID_KX2:     /* errata 7534 - should be K64 */
                                subfamid += 2; /* errata 7534 fix */
+                               /* fallthrough */
                        case KINETIS_SDID_FAMILYID_K6X | KINETIS_SDID_SUBFAMID_KX3:
                                /* K63FN1M0 */
                        case KINETIS_SDID_FAMILYID_K6X | KINETIS_SDID_SUBFAMID_KX4:
index 5deaee859342ae03ad1fa1e7253ed925faff88f4..40e8b05827f1b506fd9d0cb0188482e8dc55f0ae 100644 (file)
@@ -1456,8 +1456,8 @@ COMMAND_HELPER(handle_command_parse_bool, bool *out, const char *label)
                                LOG_ERROR("%s: argument '%s' is not valid", CMD_NAME, in);
                                return ERROR_COMMAND_SYNTAX_ERROR;
                        }
-                       /* fall through */
                }
+                       /* fallthrough */
                case 0:
                        LOG_INFO("%s is %s", label, *out ? "enabled" : "disabled");
                        break;
index 342e3210299e855ea1caa6fed583112cad07ea84..75a3ce43eddf6f497ed275fd0fde7fcba2bbce5c 100644 (file)
@@ -855,6 +855,7 @@ COMMAND_HANDLER(ftdi_handle_set_signal_command)
                        ftdi_set_signal(sig, *CMD_ARGV[1]);
                        break;
                }
+               /* fallthrough */
        default:
                LOG_ERROR("unknown signal level '%s', use 0, 1 or z", CMD_ARGV[1]);
                return ERROR_COMMAND_SYNTAX_ERROR;
index c689848c813da386170687344ed774ce2d61cbb4..584da8c9482c96a9663988dd04e758faec3673b8 100644 (file)
@@ -657,6 +657,7 @@ static int kitprog_swd_switch_seq(enum swd_special_seq seq)
                                LOG_DEBUG("JTAG to SWD not supported");
                                /* Fall through to fix target reset issue */
                        }
+                       /* fallthrough */
                case LINE_RESET:
                        LOG_DEBUG("SWD line reset");
                        if (kitprog_swd_seq(SEQUENCE_LINE_RESET) != ERROR_OK)
index e7e815c1046513e8a9f003477a28f7dfb89c7923..1d686ba6174c1e1e279ba66d36ac71b660f9faff 100644 (file)
@@ -661,11 +661,13 @@ static int svf_read_command_from_file(FILE *fd)
                                if (svf_getline(&svf_read_line, &svf_read_line_size, svf_fd) <= 0)
                                        return ERROR_FAIL;
                                i = -1;
+                               /* fallthrough */
                        case '\r':
                                slash = 0;
                                /* Don't save '\r' and '\n' if no data is parsed */
                                if (!cmd_pos)
                                        break;
+                               /* fallthrough */
                        default:
                                /* The parsing code currently expects a space
                                 * before parentheses -- "TDI (123)".  Also a
index eafc2ddc082f276fd72076f421bc6077fc771b7a..88491196d3d22371141d9abc163f9b5046f096ed 100644 (file)
@@ -346,8 +346,10 @@ static int mem_ap_write(struct adiv5_ap *ap, const uint8_t *buffer, uint32_t siz
                        case 4:
                                outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
                                outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
+                               /* fallthrough */
                        case 2:
                                outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
+                               /* fallthrough */
                        case 1:
                                outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
                        }
@@ -509,8 +511,10 @@ static int mem_ap_read(struct adiv5_ap *ap, uint8_t *buffer, uint32_t size, uint
                        case 4:
                                *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
                                *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
+                               /* fallthrough */
                        case 2:
                                *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
+                               /* fallthrough */
                        case 1:
                                *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
                        }
@@ -519,8 +523,10 @@ static int mem_ap_read(struct adiv5_ap *ap, uint8_t *buffer, uint32_t size, uint
                        case 4:
                                *buffer++ = *read_ptr >> 8 * (address++ & 3);
                                *buffer++ = *read_ptr >> 8 * (address++ & 3);
+                               /* fallthrough */
                        case 2:
                                *buffer++ = *read_ptr >> 8 * (address++ & 3);
+                               /* fallthrough */
                        case 1:
                                *buffer++ = *read_ptr >> 8 * (address++ & 3);
                        }
index 5277b94d88de152d2a16cf2a9ddb7742b2b8dbaa..3f1daca4d16309e9a4db50803c209670fea48d47 100644 (file)
@@ -3299,6 +3299,7 @@ static int t2ev_data_immed(uint32_t opcode, uint32_t address,
                case 0x10:
                case 0x12:
                        is_signed = true;
+                       /* fallthrough */
                case 0x18:
                case 0x1a:
                        /* signed/unsigned saturated add */
index 07fe453d9b14a2fa51b37708d0f1911b8b73f75a..36318d88e423887c7d1a2249b5906b80b77b7117 100644 (file)
@@ -3684,7 +3684,7 @@ COMMAND_HANDLER(handle_bp_command)
                                addr = 0;
                                return handle_bp_command_set(CMD_CTX, addr, asid, length, hw);
                        }
-
+                       /* fallthrough */
                case 4:
                        hw = BKPT_HARD;
                        COMMAND_PARSE_ADDRESS(CMD_ARGV[0], addr);

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)