2009-01-06 20:57:59

by Németh Márton

[permalink] [raw]
Subject: confusing checkpatch.pl messages

Hi,

I run the checkpatch.pl against the attache file and it reported some
confusing warning and error messages. The attached file has an obsoleted
syntax:

>From "info gcc", Chapter 5.21 "Designated Initializers":
> In a structure initializer, specify the name of a field to initialize
> with `.FIELDNAME =' before the element value. For example, given the
> following structure,
>
> struct point { int x, y; };
>
> the following initialization
>
> struct point p = { .y = yvalue, .x = xvalue };
>
> is equivalent to
>
> struct point p = { xvalue, yvalue };
>
> Another syntax which has the same meaning, obsolete since GCC 2.5, is
> `FIELDNAME:', as shown here:
>
> struct point p = { y: yvalue, x: xvalue };

However, the checkpatch.pl speaks about labels, which are incorrect, I think:
> $ /usr/src/linux/scripts/checkpatch.pl --file test.c
> WARNING: labels should not be indented
> #5: FILE: test.c:5:
> + open: test_open,
>
> ERROR: spaces required around that ':' (ctx:VxW)
> #6: FILE: test.c:6:
> + release: test_close,
> ^
>
> WARNING: labels should not be indented
> #6: FILE: test.c:6:
> + release: test_close,
>
> ERROR: spaces required around that ':' (ctx:VxW)
> #7: FILE: test.c:7:
> + ioctl: test_ioctl,
> ^
>
> WARNING: labels should not be indented
> #7: FILE: test.c:7:
> + ioctl: test_ioctl,
>
> total: 2 errors, 3 warnings, 9 lines checked
>
> test.c has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.

Regards,

M?rton N?meth


Attachments:
test.c (140.00 B)

2009-01-07 00:42:36

by Robert Hancock

[permalink] [raw]
Subject: Re: confusing checkpatch.pl messages

N?meth M?rton wrote:
> Hi,
>
> I run the checkpatch.pl against the attache file and it reported some
> confusing warning and error messages. The attached file has an obsoleted
> syntax:
>
> From "info gcc", Chapter 5.21 "Designated Initializers":
>> In a structure initializer, specify the name of a field to initialize
>> with `.FIELDNAME =' before the element value. For example, given the
>> following structure,
>>
>> struct point { int x, y; };
>>
>> the following initialization
>>
>> struct point p = { .y = yvalue, .x = xvalue };
>>
>> is equivalent to
>>
>> struct point p = { xvalue, yvalue };
>>
>> Another syntax which has the same meaning, obsolete since GCC 2.5, is
>> `FIELDNAME:', as shown here:
>>
>> struct point p = { y: yvalue, x: xvalue };
>
> However, the checkpatch.pl speaks about labels, which are incorrect, I think:
>> $ /usr/src/linux/scripts/checkpatch.pl --file test.c
>> WARNING: labels should not be indented
>> #5: FILE: test.c:5:
>> + open: test_open,

Well, the warning message is wrong, that part is presumably a bug. It's
right to complain, though, as that obsolete syntax shouldn't be used.

2009-01-08 00:23:27

by Andy Whitcroft

[permalink] [raw]
Subject: Re: confusing checkpatch.pl messages

On Tue, Jan 06, 2009 at 09:57:36PM +0100, N?meth M?rton wrote:
> Hi,
>
> I run the checkpatch.pl against the attache file and it reported some
> confusing warning and error messages. The attached file has an obsoleted
> syntax:
[...]
> > struct point p = { y: yvalue, x: xvalue };
>
> However, the checkpatch.pl speaks about labels, which are incorrect, I think:

Yeah that is the wrong error for sure. Will see if I can stop it doing
that and emit something more sensible.

-apw