checkpatch: suspect code indent must stop at #else/#elif
authorAndy Whitcroft <apw@shadowen.org>
Thu, 16 Oct 2008 05:02:32 +0000 (22:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Oct 2008 18:21:37 +0000 (11:21 -0700)
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.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
scripts/checkpatch.pl

index 4680ccf7760c4c96c1ec6358a40e21dd04f1b0a1..c479bdefc77986a8a182257f95cc130342e2bab0 100755 (executable)
@@ -1468,6 +1468,12 @@ sub process {
                        while ($cond_ptr != $cond_lines) {
                                $cond_ptr = $cond_lines;
 
+                               # If we see an #else/#elif then the code
+                               # is not linear.
+                               if ($s =~ /^\s*\#\s*(?:else|elif)/) {
+                                       $check = 0;
+                               }
+
                                # Ignore:
                                #  1) blank lines, they should be at 0,
                                #  2) preprocessor lines, and