Merge branch 'jk/fallthrough'
authorJunio C Hamano <gitster@pobox.com>
Thu, 28 Sep 2017 05:47:53 +0000 (14:47 +0900)
committerJunio C Hamano <gitster@pobox.com>
Thu, 28 Sep 2017 05:47:53 +0000 (14:47 +0900)
Many codepaths have been updated to squelch -Wimplicit-fallthrough
warnings from Gcc 7 (which is a good code hygiene).

* jk/fallthrough:
consistently use "fallthrough" comments in switches
curl_trace(): eliminate switch fallthrough
test-line-buffer: simplify command parsing

15 files changed:
apply.c
builtin/cat-file.c
builtin/checkout.c
builtin/remote-ext.c
builtin/submodule--helper.c
config.c
convert.c
fsck.c
http-push.c
http.c
mailinfo.c
quote.c
read-cache.c
send-pack.c
t/helper/test-line-buffer.c
diff --git a/apply.c b/apply.c
index 71cbbd141c73bd72778d71e1e2400413c11f492f..c022af53a24bf56556d136a3456862cf6a2ca7cc 100644 (file)
--- a/apply.c
+++ b/apply.c
@@ -2920,6 +2920,7 @@ static int apply_one_fragment(struct apply_state *state,
                        if (plen && (ws_rule & WS_BLANK_AT_EOF) &&
                            ws_blank_line(patch + 1, plen, ws_rule))
                                is_blank_context = 1;
+                       /* fallthrough */
                case '-':
                        memcpy(old, patch + 1, plen);
                        add_line_info(&preimage, old, plen,
@@ -2927,7 +2928,7 @@ static int apply_one_fragment(struct apply_state *state,
                        old += plen;
                        if (first == '-')
                                break;
-               /* Fall-through for ' ' */
+                       /* fallthrough */
                case '+':
                        /* --no-add does not add new lines */
                        if (first == '+' && state->no_add)
index 1ea25331d38f4395f1c5079a1ca39263c69701b2..f5fa4fd75af26a66cd1b2c0d493116704bc16dd5 100644 (file)
@@ -113,6 +113,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
 
                if (textconv_object(path, obj_context.mode, &oid, 1, &buf, &size))
                        break;
+               /* else fallthrough */
 
        case 'p':
                type = sha1_object_info(oid.hash, NULL);
index 5c202b7af57e26f5171eb8a83b107fceeb747488..d091f06274ca12c218ca9538ddee40dcd72dbe36 100644 (file)
@@ -436,6 +436,7 @@ static int reset_tree(struct tree *tree, const struct checkout_opts *o,
                 * update paths in the work tree, and we cannot revert
                 * them.
                 */
+               /* fallthrough */
        case 0:
                return 0;
        default:
index bfb21ba7d217bafaf3527af007cd4ac4658d36c5..6a9127a33c019c5e6336075b5f68c7514d720b04 100644 (file)
@@ -57,7 +57,7 @@ static char *strip_escapes(const char *str, const char *service,
                                special = str[rpos];
                                if (rpos == 1)
                                        break;
-                               /* Fall-through to error. */
+                               /* fallthrough */
                        default:
                                die("Bad remote-ext placeholder '%%%c'.",
                                        str[rpos]);
index 818fe74f0af8696fe21a75d4aaf6b919b645d22b..f6a5e1af5d7c2fdb827f139e899e96cb9c4d91b5 100644 (file)
@@ -1189,6 +1189,7 @@ static int push_check(int argc, const char **argv, const char *prefix)
                                                break;
                                        die("HEAD does not match the named branch in the superproject");
                                }
+                               /* fallthrough */
                        default:
                                die("src refspec '%s' must name a ref",
                                    rs->src);
index a77cae56ed26212c6bfbbd831c85c8cf64deb8b9..7ab37bacae927864329782d68c30e73f267176ce 100644 (file)
--- a/config.c
+++ b/config.c
@@ -2355,6 +2355,7 @@ static ssize_t write_pair(int fd, const char *key, const char *value)
                case '"':
                case '\\':
                        strbuf_addch(&sb, '\\');
+                       /* fallthrough */
                default:
                        strbuf_addch(&sb, value[i]);
                        break;
index a09935cb8123f04a8fdb4d48157c2a98e67b3c64..20d7ab67bdf889feb255e01a9b18cf4efa6107a3 100644 (file)
--- a/convert.c
+++ b/convert.c
@@ -1545,8 +1545,9 @@ static int ident_filter_fn(struct stream_filter *filter,
                switch (ident->state) {
                default:
                        strbuf_add(&ident->left, head, ident->state);
+                       /* fallthrough */
                case IDENT_SKIPPING:
-                       /* fallthru */
+                       /* fallthrough */
                case IDENT_DRAINING:
                        ident_drain(ident, &output, osize_p);
                }
diff --git a/fsck.c b/fsck.c
index 2d2d2e9432b96e5ff2ad893bd8661c0157d42eee..2ad00fc4d0356d8ec2cac21d1897a76b5002fd5b 100644 (file)
--- a/fsck.c
+++ b/fsck.c
@@ -588,6 +588,7 @@ static int fsck_tree(struct tree *item, struct fsck_options *options)
                case S_IFREG | 0664:
                        if (!options->strict)
                                break;
+                       /* fallthrough */
                default:
                        has_bad_modes = 1;
                }
index e4c9b065ce13ca2c4e522e20f603f192ddcb9306..d860c477c60e7baec79220d9f06330a139d0e035 100644 (file)
@@ -1523,6 +1523,7 @@ static int remote_exists(const char *path)
                break;
        case HTTP_ERROR:
                error("unable to access '%s': %s", url, curl_errorstr);
+               /* fallthrough */
        default:
                ret = -1;
        }
diff --git a/http.c b/http.c
index 9e40a465fdec6467726e980da413478b9cf78492..713525f38ed3f254aed2b0dd65fece7972444072 100644 (file)
--- a/http.c
+++ b/http.c
@@ -638,9 +638,7 @@ static int curl_trace(CURL *handle, curl_infotype type, char *data, size_t size,
        switch (type) {
        case CURLINFO_TEXT:
                trace_printf_key(&trace_curl, "== Info: %s", data);
-       default:                /* we ignore unknown types by default */
-               return 0;
-
+               break;
        case CURLINFO_HEADER_OUT:
                text = "=> Send header";
                curl_dump_header(text, (unsigned char *)data, size, DO_FILTER);
@@ -665,6 +663,9 @@ static int curl_trace(CURL *handle, curl_infotype type, char *data, size_t size,
                text = "<= Recv SSL data";
                curl_dump_data(text, (unsigned char *)data, size);
                break;
+
+       default:                /* we ignore unknown types by default */
+               return 0;
        }
        return 0;
 }
index f2387a32675591d6da83473ef6235ba823721d1c..bcdbf98de57878a55c732e17b8baeb933f3cc056 100644 (file)
@@ -822,6 +822,7 @@ static void handle_filter(struct mailinfo *mi, struct strbuf *line)
                if (!handle_commit_msg(mi, line))
                        break;
                mi->filter_stage++;
+               /* fallthrough */
        case 1:
                handle_patch(mi, line);
                break;
diff --git a/quote.c b/quote.c
index 53b98a5b840d8fd4d73fab27348b657501923dca..de2922ddd63d6fc001822d116387c8ced7d7630d 100644 (file)
--- a/quote.c
+++ b/quote.c
@@ -431,6 +431,7 @@ void tcl_quote_buf(struct strbuf *sb, const char *src)
                case '{': case '}':
                case '$': case '\\': case '"':
                        strbuf_addch(sb, '\\');
+                       /* fallthrough */
                default:
                        strbuf_addch(sb, c);
                        break;
index cdcd11c71efd67130dd8159c9ac4da86e854222a..65f4fe8375d59234d5e58f87a8593fc50e6336a2 100644 (file)
@@ -220,6 +220,7 @@ static int ce_modified_check_fs(const struct cache_entry *ce, struct stat *st)
        case S_IFDIR:
                if (S_ISGITLINK(ce->ce_mode))
                        return ce_compare_gitlink(ce) ? DATA_CHANGED : 0;
+               /* else fallthrough */
        default:
                return TYPE_CHANGED;
        }
index b865f662e41880d11305ac6a4fe64450ef26f133..a8cc6b266e67847abafa613184752b3b781eb8dd 100644 (file)
@@ -497,7 +497,7 @@ int send_pack(struct send_pack_args *args,
                                strbuf_release(&cap_buf);
                                return atomic_push_failure(args, remote_refs, ref);
                        }
-                       /* Fallthrough for non atomic case. */
+                       /* else fallthrough */
                default:
                        continue;
                }
index 81575fe2ab91b550067ce8180650b003bdd939b7..078dd7e29d0844f217a3a76144df312879c8536c 100644 (file)
@@ -17,27 +17,17 @@ static uint32_t strtouint32(const char *s)
 
 static void handle_command(const char *command, const char *arg, struct line_buffer *buf)
 {
-       switch (*command) {
-       case 'b':
-               if (starts_with(command, "binary ")) {
-                       struct strbuf sb = STRBUF_INIT;
-                       strbuf_addch(&sb, '>');
-                       buffer_read_binary(buf, &sb, strtouint32(arg));
-                       fwrite(sb.buf, 1, sb.len, stdout);
-                       strbuf_release(&sb);
-                       return;
-               }
-       case 'c':
-               if (starts_with(command, "copy ")) {
-                       buffer_copy_bytes(buf, strtouint32(arg));
-                       return;
-               }
-       case 's':
-               if (starts_with(command, "skip ")) {
-                       buffer_skip_bytes(buf, strtouint32(arg));
-                       return;
-               }
-       default:
+       if (starts_with(command, "binary ")) {
+               struct strbuf sb = STRBUF_INIT;
+               strbuf_addch(&sb, '>');
+               buffer_read_binary(buf, &sb, strtouint32(arg));
+               fwrite(sb.buf, 1, sb.len, stdout);
+               strbuf_release(&sb);
+       } else if (starts_with(command, "copy ")) {
+               buffer_copy_bytes(buf, strtouint32(arg));
+       } else if (starts_with(command, "skip ")) {
+               buffer_skip_bytes(buf, strtouint32(arg));
+       } else {
                die("unrecognized command: %s", command);
        }
 }