Re: [PATCH] checkpatch.pl: add union and struct to the exceptionslist

From: Stefani Seibold
Date: Tue Jan 12 2010 - 16:45:06 EST


Am Montag, den 11.01.2010, 14:42 -0800 schrieb Andrew Morton:
> On Wed, 06 Jan 2010 17:46:00 +0100
> Stefani Seibold <stefani@xxxxxxxxxxx> wrote:
>
> > This patch add the struct and union keywords to the exceptions list of
> > the checkpatch.pl script, to prevent error message "Macros with multiple
> > statements should be enclosed in a do - while loop". Otherwise it is not
> > possible to build a struct or union with a macro.
> >
> > Signed-off-by: Stefani Seibold <stefani@xxxxxxxxxxx>
> > ---
> > checkpatch.pl | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > --- linux-2.6.33-rc2.orig/scripts/checkpatch.pl 2009-12-03 04:51:21.000000000 +0100
> > +++ linux-2.6.33-rc2.new/scripts/checkpatch.pl 2010-01-06 17:35:29.747634447 +0100
> > @@ -2348,6 +2348,8 @@ sub process {
> > DECLARE_PER_CPU|
> > DEFINE_PER_CPU|
> > __typeof__\(|
> > + union|
> > + struct|
> > \.$Ident\s*=\s*|
> > ^\"|\"$
> > }x;
>
> hm. Perhaps it would help if you could provide a snippet of code which
> triggers the incorrect warning?
>

Here is a small code snippet, which will be complained by the
checkpatch.pl:

#define __STRUCT_KFIFO_COMMON(recsize, ptrtype) \
union { \
struct { \
unsigned int in; \
unsigned int out; \
}; \
char rectype[recsize]; \
ptrtype *ptr; \
const ptrtype *ptr_const; \
};

This construct is legal an save, so checkpatch.pl should accept this. It
should be also true for struct defined in a macro.

Stefani


--
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/