The following commit has been merged in the linux branch: commit 99423c2065b62fee41cdbd8da7e63bf1f8f9e9b0 Author: Andy Whitcroft apw@canonical.com Date: Mon Oct 26 16:50:15 2009 -0700
checkpatch: fix __attribute__ matching
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__".
It is not at all clear that we care what preceeds an assignment style attribute when we find the open brace. Relax the test so we do not need to check the __attribute__.
Reported-by: Daniel Walker dwalker@fifo99.com Signed-off-by: Andy Whitcroft apw@canonical.com Signed-off-by: Andrew Morton akpm@linux-foundation.org Signed-off-by: Linus Torvalds torvalds@linux-foundation.org
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index cb2dac3..ba105a8 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -1669,8 +1669,8 @@ sub process { }
# check for initialisation to aggregates open brace on the next line - if ($prevline =~ /$Declare\s*$Ident\s*=\s*$/ && - $line =~ /^.\s*{/) { + if ($line =~ /^.\s*{/ && + $prevline =~ /(?:^|[^=])=\s*$/) { ERROR("that open brace { should be on the previous line\n" . $hereprev); }