* [PATCH 1/3] checkpatch: handle variables that begin with 'case'
@ 2025-11-14 23:31 Tiffany Yang
2025-11-14 23:31 ` [PATCH 2/3] checkpatch: check indentation on case without space Tiffany Yang
2025-11-14 23:31 ` [PATCH] checkpatch: Allow bare SHA-1 hashes in checkpatch commits Tiffany Yang
0 siblings, 2 replies; 3+ messages in thread
From: Tiffany Yang @ 2025-11-14 23:31 UTC (permalink / raw)
To: linux-kernel
Cc: kernel-team, Andy Whitcroft, Joe Perches, Dwaipayan Ray,
Lukas Bulwahn
The current script returns switch statement-related errors when
variables that start with "case" are used in a ternary.
For example:
./scripts/checkpatch.pl --git d1934ed9803c
ERROR: space prohibited before that ':' (ctx:WxW)
#289: FILE: drivers/android/tests/binder_alloc_kunit.c:321:
+ case_failed ? "FAILED" : "PASSED",
^
ERROR: trailing statements should be on next line
#289: FILE: drivers/android/tests/binder_alloc_kunit.c:321:
+ case_failed ? "FAILED" : "PASSED",
Fix these false positives.
Signed-off-by: Tiffany Yang <ynaffit@google.com>
---
scripts/checkpatch.pl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 92669904eecc..b026b1235079 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2179,7 +2179,7 @@ sub annotate_values {
$av_pending = 'E';
$type = 'N';
- } elsif ($cur =~/^(case)/o) {
+ } elsif ($cur =~/^(case)\b/o) {
print "CASE($1)\n" if ($dbg_values > 1);
$av_pend_colon = 'C';
$type = 'N';
@@ -5797,7 +5797,7 @@ sub process {
$herecurr);
}
# case and default should not have general statements after them
- if ($line =~ /^.\s*(?:case\s*.*|default\s*):/g &&
+ if ($line =~ /^.\s*(?:case\b\s*.*|default\s*):/g &&
$line !~ /\G(?:
(?:\s*$;*)(?:\s*{)?(?:\s*$;*)(?:\s*\\)?\s*$|
\s*return\s+
--
2.52.0.rc1.455.g30608eb744-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH 2/3] checkpatch: check indentation on case without space
2025-11-14 23:31 [PATCH 1/3] checkpatch: handle variables that begin with 'case' Tiffany Yang
@ 2025-11-14 23:31 ` Tiffany Yang
2025-11-14 23:31 ` [PATCH] checkpatch: Allow bare SHA-1 hashes in checkpatch commits Tiffany Yang
1 sibling, 0 replies; 3+ messages in thread
From: Tiffany Yang @ 2025-11-14 23:31 UTC (permalink / raw)
To: linux-kernel
Cc: kernel-team, Andy Whitcroft, Joe Perches, Dwaipayan Ray,
Lukas Bulwahn
The script was not catching switch statement indentation errors when
'case' isn't followed by a space.
For example, checkpatch is silent for this change:
+switch (foo) {
+case(1):
+ break;
+ case(2):
+ break;
+}
But reports an error for the following:
+switch (foo) {
+case 1:
+ break;
+ case 2:
+ break;
+}
ERROR: switch and case should be at the same indent
#39: FILE: kernel/checkpatch_case_fix/test_cases.c:21:
+switch (foo) {
[...]
+ case 2:
Update the check so that the error is reported for both.
Signed-off-by: Tiffany Yang <ynaffit@google.com>
---
scripts/checkpatch.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index b026b1235079..f9d14115c416 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -4311,7 +4311,7 @@ sub process {
shift(@ctx);
for my $ctx (@ctx) {
my ($clen, $cindent) = line_stats($ctx);
- if ($ctx =~ /^\+\s*(case\s+|default:)/ &&
+ if ($ctx =~ /^\+\s*(case\b\s*|default:)/ &&
$indent != $cindent) {
$err .= "$sep$ctx\n";
$sep = '';
--
2.52.0.rc1.455.g30608eb744-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH] checkpatch: Allow bare SHA-1 hashes in checkpatch commits
2025-11-14 23:31 [PATCH 1/3] checkpatch: handle variables that begin with 'case' Tiffany Yang
2025-11-14 23:31 ` [PATCH 2/3] checkpatch: check indentation on case without space Tiffany Yang
@ 2025-11-14 23:31 ` Tiffany Yang
1 sibling, 0 replies; 3+ messages in thread
From: Tiffany Yang @ 2025-11-14 23:31 UTC (permalink / raw)
To: linux-kernel
Cc: kernel-team, Andy Whitcroft, Joe Perches, Dwaipayan Ray,
Lukas Bulwahn
Commit messages for changes to checkpatch may use the output of the
"--git" option to illustrate the changed behavior. For example:
./scripts/checkpatch.pl --git d1934ed9803c
Don't report an improperly formed commit description when the SHA-1 hash
is being used as an example input to the checkpatch script.
Signed-off-by: Tiffany Yang <ynaffit@google.com>
---
scripts/checkpatch.pl | 1 +
1 file changed, 1 insertion(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index f9d14115c416..c81787538b35 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3358,6 +3358,7 @@ sub process {
$in_commit_log && !$commit_log_possible_stack_dump &&
$line !~ /^\s*(?:Link|Patchwork|http|https|BugLink|base-commit):/i &&
$line !~ /^This reverts commit [0-9a-f]{7,40}/ &&
+ $line !~ /^\s*(?:(\$|%)\s+)?\.\/scripts\/checkpatch\.pl\s(?:-g|--git)\s[0-9a-f]{5,40}/ &&
(($line =~ /\bcommit\s+[0-9a-f]{5,}\b/i ||
($line =~ /\bcommit\s*$/i && defined($rawlines[$linenr]) && $rawlines[$linenr] =~ /^\s*[0-9a-f]{5,}\b/i)) ||
($line =~ /(?:\s|^)[0-9a-f]{12,40}(?:[\s"'\(\[]|$)/i &&
--
2.52.0.rc1.455.g30608eb744-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-11-14 23:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-14 23:31 [PATCH 1/3] checkpatch: handle variables that begin with 'case' Tiffany Yang
2025-11-14 23:31 ` [PATCH 2/3] checkpatch: check indentation on case without space Tiffany Yang
2025-11-14 23:31 ` [PATCH] checkpatch: Allow bare SHA-1 hashes in checkpatch commits Tiffany Yang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox