From: Utkarsh Verma Date: Sat, 4 Sep 2021 07:42:01 +0000 (+0530) Subject: Documentation: checkpatch: Add TRAILING_SEMICOLON message X-Git-Tag: v5.16-rc1~136^2~48 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=29bd0cace2351eeccf325e36756aa55aa939bd11;p=thirdparty%2Fkernel%2Flinux.git Documentation: checkpatch: Add TRAILING_SEMICOLON message Add a new message type TRAILING_SEMICOLON for the macro definitions that conclude with a semicolon. Suggested-by: Lukas Bulwahn Signed-off-by: Utkarsh Verma Link: https://lore.kernel.org/r/20210904074201.13532-1-utkarshverma294@gmail.com Signed-off-by: Jonathan Corbet --- diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst index b7a1288e96a92..891779c7f0bf6 100644 --- a/Documentation/dev-tools/checkpatch.rst +++ b/Documentation/dev-tools/checkpatch.rst @@ -851,6 +851,27 @@ Macros, Attributes and Symbols Use the `fallthrough;` pseudo keyword instead of `/* fallthrough */` like comments. + **TRAILING_SEMICOLON** + Macro definition should not end with a semicolon. The macro + invocation style should be consistent with function calls. + This can prevent any unexpected code paths:: + + #define MAC do_something; + + If this macro is used within a if else statement, like:: + + if (some_condition) + MAC; + + else + do_something; + + Then there would be a compilation error, because when the macro is + expanded there are two trailing semicolons, so the else branch gets + orphaned. + + See: https://lore.kernel.org/lkml/1399671106.2912.21.camel@joe-AO725/ + **WEAK_DECLARATION** Using weak declarations like __attribute__((weak)) or __weak can have unintended link defects. Avoid using them.