When we hit and #else or #elif we know we are meeting an alternative piece of code. All bets are off on indent if we did not see the open of the control so stop checking.
Showing the changes to scripts/checkpatch.pl (1 of 1 file). Show all
Unified · Split
| @@ -1468,6 +1468,12 @@ sub process { · 1467 unmodified lines | |||
| 1468 | while ($cond_ptr != $cond_lines) { | 1468 | while ($cond_ptr != $cond_lines) { |
| 1469 | $cond_ptr = $cond_lines; | 1469 | $cond_ptr = $cond_lines; |
| 1470 | 1470 | ||
| 1471 | # If we see an #else/#elif then the code | ||
| 1472 | # is not linear. | ||
| 1473 | if ($s =~ /^\s*\#\s*(?:else|elif)/) { | ||
| 1474 | $check = 0; | ||
| 1475 | } | ||
| 1476 | |||
| 1471 | # Ignore: | 1477 | # Ignore: |
| 1472 | # 1) blank lines, they should be at 0, | 1478 | # 1) blank lines, they should be at 0, |
| 1473 | # 2) preprocessor lines, and | 1479 | # 2) preprocessor lines, and |