mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
checkpatch: warn on unnecessary else after return or break
Using an else following a break or return can unnecessarily indent code blocks. ie: for (i = 0; i < 100; i++) { int foo = bar(); if (foo < 1) break; else usleep(1); } is generally better written as: for (i = 0; i < 100; i++) { int foo = bar(); if (foo < 1) break; usleep(1); } Warn when a bare else statement is preceded by a break or return indented 1 tab more than the else. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ebfdc40969
commit
032a4c0f9a
1 changed files with 10 additions and 0 deletions
|
@ -2342,6 +2342,16 @@ sub process {
|
||||||
# check we are in a valid C source file if not then ignore this hunk
|
# check we are in a valid C source file if not then ignore this hunk
|
||||||
next if ($realfile !~ /\.(h|c)$/);
|
next if ($realfile !~ /\.(h|c)$/);
|
||||||
|
|
||||||
|
# check indentation of any line with a bare else
|
||||||
|
# if the previous line is a break or return and is indented 1 tab more...
|
||||||
|
if ($sline =~ /^\+([\t]+)(?:}[ \t]*)?else(?:[ \t]*{)?\s*$/) {
|
||||||
|
my $tabs = length($1) + 1;
|
||||||
|
if ($prevline =~ /^\+\t{$tabs,$tabs}(?:break|return)\b/) {
|
||||||
|
WARN("UNNECESSARY_ELSE",
|
||||||
|
"else is not generally useful after a break or return\n" . $hereprev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# discourage the addition of CONFIG_EXPERIMENTAL in #if(def).
|
# discourage the addition of CONFIG_EXPERIMENTAL in #if(def).
|
||||||
if ($line =~ /^\+\s*\#\s*if.*\bCONFIG_EXPERIMENTAL\b/) {
|
if ($line =~ /^\+\s*\#\s*if.*\bCONFIG_EXPERIMENTAL\b/) {
|
||||||
WARN("CONFIG_EXPERIMENTAL",
|
WARN("CONFIG_EXPERIMENTAL",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue