diff options
author | Utkarsh Verma <utkarshverma294@gmail.com> | 2021-09-04 10:42:01 +0300 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2021-09-15 00:07:49 +0300 |
commit | 29bd0cace2351eeccf325e36756aa55aa939bd11 (patch) | |
tree | 2e8bd98a368220cdfc7eeaf4f2f0084ebbb9351c | |
parent | d9548979f7aee0cbff4b407e8fce4af6b6d3cab0 (diff) | |
download | linux-29bd0cace2351eeccf325e36756aa55aa939bd11.tar.xz |
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 <lukas.bulwahn@gmail.com>
Signed-off-by: Utkarsh Verma <utkarshverma294@gmail.com>
Link: https://lore.kernel.org/r/20210904074201.13532-1-utkarshverma294@gmail.com
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
-rw-r--r-- | Documentation/dev-tools/checkpatch.rst | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst index b7a1288e96a9..891779c7f0bf 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. |