Messages in this thread | | | From | Julius Werner <> | Subject | [PATCH v2 0/3] Detect suspicious indentation after conditional | Date | Wed, 26 May 2021 19:26:21 -0700 |
| |
This patch series is adding functionality to checkpatch.pl to test for incorrect code indentation after a conditional statement, like this:
if (a) b; c;
(Indentation implies that `c;` was guarded by the conditional, but it isn't.) The main part is re-sending a patch from Ivo Sieben that was already proposed in 2014 [1]. I don't know why it was never merged -- it seems that there was no discussion on it. I hope that it was only overlooked, because it works great, and I think this is a very important class of common error to catch.
I have tested it extensively on the kernel tree and in the course of that found a few more edge cases that get fixed by the other two patches. With all these applied, the vast majority of hits I get from this check on the kernel tree are actual indentation errors or other code style violations (e.g. case label and statement on the same line). The only significant remaining group of false positives I found are cases of macros being defined within a function, which are overall very rare. I think the benefit of adding this check would far outweigh the remaining amount of noise.
[1]: https://lore.kernel.org/patchwork/patch/465116
Ivo Sieben (1): Suspicious indentation detection after conditional statement
Julius Werner (2): checkpatch: ctx_statement_block: Fix preprocessor guard tracking checkpatch: Ignore labels when checking indentation
Changelog: v2: Expanded fix to ctx_block_get, some minor simplifications
scripts/checkpatch.pl | 56 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 4 deletions(-)
-- 2.29.2
| |