[PATCH 4/5] checkpatch: fix __attribute__ matching

From: Daniel Walker
Date: Mon Sep 21 2009 - 22:15:27 EST


In the following code,

union thread_union init_thread_union
__attribute__((__section__(".data.init_task"))) =
{ INIT_THREAD_INFO(init_task) };

There is a non-conforming declaration. It should really be like the
following,

union thread_union init_thread_union
__attribute__((__section__(".data.init_task"))) = {
INIT_THREAD_INFO(init_task)
};

However, checkpatch doesn't catch this right now because it doesn't
correctly evaluate the "__attribute__". I just fixed it to pattern
match the attribute in the case above.

Signed-off-by: Daniel Walker <dwalker@xxxxxxxxxx>
---
scripts/checkpatch.pl | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index c7f741f..fd4fe03 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -134,7 +134,7 @@ our $Attribute = qr{
____cacheline_aligned|
____cacheline_aligned_in_smp|
____cacheline_internodealigned_in_smp|
- __weak
+ __weak|(?:__attribute__\(.*\))
}x;
our $Modifier;
our $Inline = qr{inline|__always_inline|noinline};
@@ -1628,7 +1628,7 @@ sub process {
}

# check for initialisation to aggregates open brace on the next line
- if ($prevline =~ /$Declare\s*$Ident\s*=\s*$/ &&
+ if (($prevline =~ /$Declare\s*$Ident\s*=\s*$/ || $prevline =~ /$Attribute\s*=\s*$/) &&
$line =~ /^.\s*{/) {
ERROR("that open brace { should be on the previous line\n" . $hereprev);
}
--
1.5.6.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/