[Linux-kernel-mentees] checkpatch.pl investigation: MULTISTATEMENT_MACRO_USE_DO_WHILE issues
Dwaipayan Ray
dwaipayanray1 at gmail.com
Mon Sep 28 15:47:43 UTC 2020
Hi,
Checkpatch seems to generate some false positives on
certain macros.
For example running checkpatch on (kernel/trace/trace_export.c),
ERROR: Macros with multiple statements should be enclosed in a do - while loop
#49: FILE: kernel/trace/trace_export.c:49:
+#define __field_packed(type, container, item) type item;
ERROR: Macros with multiple statements should be enclosed in a do - while loop
#52: FILE: kernel/trace/trace_export.c:52:
+#define __array(type, item, size) type item[size];
and several other same errors.
Wrapping this in a do - while certainly doesn't make sense.
Removing the semicolon at the end of macro and appending semicolon
in the call changes the error to:
ERROR: Macros with complex values should be enclosed in parentheses
#49: FILE: kernel/trace/trace_export.c:49:
+#define __array_desc(type, container, item, size) type item[size]
This seems more reasonable. But the error isn't necessary in the first
place.
Thanks,
Dwaipayan.
More information about the Linux-kernel-mentees
mailing list