1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-28 03:26:08 +02:00
git/builtin
Jeff King 1cf01a34ea consistently use "fallthrough" comments in switches
Gcc 7 adds -Wimplicit-fallthrough, which can warn when a
switch case falls through to the next case. The general idea
is that the compiler can't tell if this was intentional or
not, so you should annotate any intentional fall-throughs as
such, leaving it to complain about any unannotated ones.

There's a GNU __attribute__ which can be used for
annotation, but of course we'd have to #ifdef it away on
non-gcc compilers. Gcc will also recognize
specially-formatted comments, which matches our current
practice. Let's extend that practice to all of the
unannotated sites (which I did look over and verify that
they were behaving as intended).

Ideally in each case we'd actually give some reasons in the
comment about why we're falling through, or what we're
falling through to. And gcc does support that with
-Wimplicit-fallthrough=2, which relaxes the comment pattern
matching to anything that contains "fallthrough" (or a
variety of spelling variants). However, this isn't the
default for -Wimplicit-fallthrough, nor for -Wextra. In the
name of simplicity, it's probably better for us to support
the default level, which requires "fallthrough" to be the
only thing in the comment (modulo some window dressing like
"else" and some punctuation; see the gcc manual for the
complete set of patterns).

This patch suppresses all warnings due to
-Wimplicit-fallthrough. We might eventually want to add that
to the DEVELOPER Makefile knob, but we should probably wait
until gcc 7 is more widely adopted (since earlier versions
will complain about the unknown warning type).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-09-22 12:49:57 +09:00
..
add.c add UNLEAK annotation for reducing leak false positives 2017-09-08 15:43:17 +09:00
am.c am: release strbuf after use in safe_to_abort() 2017-09-07 08:49:26 +09:00
annotate.c
apply.c Convert read_mmblob to take struct object_id. 2016-09-07 12:59:42 -07:00
archive.c archive: read local configuration 2016-11-22 13:55:20 -08:00
bisect--helper.c
blame.c Merge branch 'po/read-graft-line' 2017-09-06 13:11:25 +09:00
branch.c builtin/branch: stop supporting the "--set-upstream" option 2017-08-17 13:33:20 -07:00
bundle.c bundle: use prefix_filename with bundle path 2017-03-21 11:18:41 -07:00
cat-file.c consistently use "fallthrough" comments in switches 2017-09-22 12:49:57 +09:00
check-attr.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
check-ignore.c Merge branch 'bw/config-h' 2017-06-24 14:28:41 -07:00
check-mailmap.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
check-ref-format.c check-ref-format: release strbuf after use in check_ref_format_branch() 2017-09-07 08:49:26 +09:00
checkout-index.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
checkout.c consistently use "fallthrough" comments in switches 2017-09-22 12:49:57 +09:00
clean.c clean: release strbuf after use in remove_dirs() 2017-09-07 08:49:27 +09:00
clone.c clone: release strbuf after use in remove_junk() 2017-09-07 08:49:27 +09:00
column.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
commit-tree.c Merge branch 'rk/commit-tree-make-F-verbatim' 2017-09-19 10:47:57 +09:00
commit.c add UNLEAK annotation for reducing leak false positives 2017-09-08 15:43:17 +09:00
config.c add UNLEAK annotation for reducing leak false positives 2017-09-08 15:43:17 +09:00
count-objects.c pack: move open_pack_index(), parse_pack_index() 2017-08-23 15:12:06 -07:00
credential.c credential: handle invalid arguments earlier 2017-05-30 14:45:03 +09:00
describe.c hashmap: add API to disable item counting when threaded 2017-09-07 09:42:02 +09:00
diff-files.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
diff-index.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
diff-tree.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
diff.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
difftool.c sha1_file: convert index_fd to struct object_id 2017-08-20 21:52:08 -07:00
fast-export.c hashmap.h: compare function has access to a data field 2017-06-30 12:49:28 -07:00
fetch-pack.c Rename sha1_array to oid_array 2017-03-31 08:33:56 -07:00
fetch.c Merge branch 'jt/packmigrate' 2017-08-26 22:55:09 -07:00
fmt-merge-msg.c Merge branch 'dc/fmt-merge-msg-microcleanup' into maint 2017-08-23 14:33:52 -07:00
for-each-ref.c for-each-ref: load config earlier 2017-07-13 12:42:51 -07:00
fsck.c Merge branch 'jt/packmigrate' 2017-08-26 22:55:09 -07:00
gc.c tempfile: auto-allocate tempfiles on heap 2017-09-06 17:19:54 +09:00
get-tar-commit-id.c
grep.c Merge branch 'bw/submodule-config-cleanup' 2017-08-26 22:55:08 -07:00
hash-object.c sha1_file: convert hash_sha1_file_literally to struct object_id 2017-08-20 21:52:53 -07:00
help.c help: release strbuf on error return in exec_woman_emacs() 2017-09-07 08:49:27 +09:00
index-pack.c pack: move pack name-related functions 2017-08-23 15:12:06 -07:00
init-db.c add UNLEAK annotation for reducing leak false positives 2017-09-08 15:43:17 +09:00
interpret-trailers.c Merge branch 'jk/trailers-parse' 2017-08-26 22:55:04 -07:00
log.c Merge branch 'jc/simplify-progress' 2017-08-24 10:20:02 -07:00
ls-files.c add UNLEAK annotation for reducing leak false positives 2017-09-08 15:43:17 +09:00
ls-remote.c wildmatch: remove unused wildopts parameter 2017-06-23 18:27:07 -07:00
ls-tree.c Merge branch 'bw/config-h' 2017-06-24 14:28:41 -07:00
mailinfo.c prefix_filename: return newly allocated string 2017-03-21 11:18:41 -07:00
mailsplit.c mailinfo & mailsplit: check for EOF while parsing 2017-05-08 12:18:19 +09:00
merge-base.c Merge branch 'bw/config-h' 2017-06-24 14:28:41 -07:00
merge-file.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
merge-index.c Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ 2017-03-26 22:08:21 -07:00
merge-ours.c
merge-recursive.c i18n: merge-recursive: mark verbose message for translation 2016-09-15 13:17:32 -07:00
merge-tree.c tree-walk: convert fill_tree_descriptor() to object_id 2017-08-14 12:38:54 -07:00
merge.c Merge branch 'rs/strbuf-leakfix' 2017-09-19 10:47:57 +09:00
mktag.c
mktree.c mktree: plug memory leaks reported by Coverity 2017-05-08 12:18:19 +09:00
mv.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
name-rev.c Merge branch 'mg/timestamp-t-fix' 2017-09-19 10:47:52 +09:00
notes.c notes: release strbuf after use in notes_copy_from_stdin() 2017-09-07 08:49:28 +09:00
pack-objects.c Merge branch 'ma/ts-cleanups' 2017-09-10 17:08:22 +09:00
pack-redundant.c pack: move pack name-related functions 2017-08-23 15:12:06 -07:00
pack-refs.c refs: delete pack_refs() in favor of refs_pack_refs() 2017-04-14 03:53:25 -07:00
patch-id.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
prune-packed.c Merge branch 'jt/packmigrate' 2017-08-26 22:55:09 -07:00
prune.c progress: simplify "delayed" progress API 2017-08-19 14:01:34 -07:00
pull.c pull: honor submodule.recurse config option 2017-09-07 09:52:18 +09:00
push.c Merge branch 'ma/parse-maybe-bool' 2017-08-22 10:29:03 -07:00
read-tree.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
rebase--helper.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
receive-pack.c pack: move pack-closing functions 2017-08-23 15:12:06 -07:00
reflog.c Merge branch 'ab/wildmatch' 2017-07-10 13:42:51 -07:00
remote-ext.c consistently use "fallthrough" comments in switches 2017-09-22 12:49:57 +09:00
remote-fd.c remote-{ext,fd}: print usage message on invalid arguments 2017-05-30 14:45:04 +09:00
remote.c remote: release strbuf after use in set_url() 2017-09-07 08:49:28 +09:00
repack.c Merge branch 'bw/config-h' 2017-06-24 14:28:41 -07:00
replace.c sha1_file: convert index_fd to struct object_id 2017-08-20 21:52:08 -07:00
rerere.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
reset.c Merge branch 'jk/leak-checkers' 2017-09-19 10:47:55 +09:00
rev-list.c Merge branch 'jc/simplify-progress' 2017-08-24 10:20:02 -07:00
rev-parse.c Merge branch 'mh/packed-ref-store-prep' 2017-09-19 10:47:55 +09:00
revert.c cherry-pick/revert: reject --rerere-autoupdate when continuing 2017-08-02 15:16:09 -07:00
rm.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
send-pack.c Merge branch 'ma/parse-maybe-bool' 2017-08-22 10:29:03 -07:00
shortlog.c shortlog: skip format/parse roundtrip for internal traversal 2017-09-09 01:57:03 +09:00
show-branch.c Merge branch 'jk/ref-filter-colors' 2017-08-11 13:26:58 -07:00
show-ref.c show-ref: remove a stale comment 2017-01-23 18:51:56 -08:00
stripspace.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
submodule--helper.c consistently use "fallthrough" comments in switches 2017-09-22 12:49:57 +09:00
symbolic-ref.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
tag.c Merge branch 'ma/pager-per-subcommand-action' 2017-08-11 13:27:07 -07:00
unpack-file.c builtin/unpack-file: convert to struct object_id 2017-07-17 13:54:38 -07:00
unpack-objects.c Merge branch 'ab/free-and-null' 2017-06-24 14:28:41 -07:00
update-index.c Merge branch 'jk/leak-checkers' 2017-09-19 10:47:55 +09:00
update-ref.c builtin/update_ref: convert to struct object_id 2017-07-17 13:54:38 -07:00
update-server-info.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
upload-archive.c upload-archive: handle "-h" option early 2017-05-30 14:45:04 +09:00
var.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
verify-commit.c Merge branch 'bw/config-h' 2017-06-24 14:28:41 -07:00
verify-pack.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
verify-tag.c Merge branch 'jk/ref-filter-colors' 2017-08-11 13:26:58 -07:00
worktree.c add UNLEAK annotation for reducing leak false positives 2017-09-08 15:43:17 +09:00
write-tree.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00