[ovs-dev] [PATCH] checkpatch: Ignore macro definitions of FOR_EACH
Aaron Conole
aconole at redhat.com
Mon Aug 3 13:57:46 UTC 2020
When defining a FOR_EACH macro, checkpatch freaks out and generates a
control block whitespace error. Create an exception so that it doesn't
generate errors for this case.
Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2020-August/373509.html
Reported-by: Toshiaki Makita <toshiaki.makita1 at gmail.com>
Signed-off-by: Aaron Conole <aconole at redhat.com>
---
diff --git a/tests/checkpatch.at b/tests/checkpatch.at
index 6c73947722..042090a0f6 100755
--- a/tests/checkpatch.at
+++ b/tests/checkpatch.at
@@ -284,6 +284,11 @@ try_checkpatch \
+ for (init; condition; increment) { \\
"
+try_checkpatch \
+ "COMMON_PATCH_HEADER
+ +#define SOME_FOR_EACH(a, b, c) /* Foo. */
+ "
+
AT_CLEANUP
diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py
index 7f1d21a40e..abe76ff3ba 100755
--- a/utilities/checkpatch.py
+++ b/utilities/checkpatch.py
@@ -156,6 +156,8 @@ __regex_leading_with_whitespace_at_all = re.compile(r'^\s+')
__regex_leading_with_spaces = re.compile(r'^ +[\S]+')
__regex_trailing_whitespace = re.compile(r'[^\S]+$')
__regex_single_line_feed = re.compile(r'^\f$')
+__regex_hash_define_for_each = re.compile(
+ r'#define [_A-Z]+FOR_*EACH[_A-Z0-9]*\(')
__regex_for_if_missing_whitespace = re.compile(r' +(%s)[\(]'
% __parenthesized_constructs)
__regex_for_if_too_much_whitespace = re.compile(r' +(%s) +[\(]'
@@ -245,6 +247,10 @@ def if_and_for_whitespace_checks(line):
"""
if skip_block_whitespace_check:
return True
+
+ if (__regex_hash_define_for_each.search(line) is not None):
+ return True
+
if (__regex_for_if_missing_whitespace.search(line) is not None or
__regex_for_if_too_much_whitespace.search(line) is not None or
__regex_for_if_parens_whitespace.search(line)):
---
More information about the dev
mailing list