lkml.org 
[lkml]   [2008]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: bug in checkpatch (on pointers to typedefs?)
    On Feb. 11, 2008, 18:40 +0200, Andy Whitcroft <apw@shadowen.org> wrote:
    > On Mon, Feb 11, 2008 at 06:05:48PM +0200, Benny Halevy wrote:
    >> I saw this too with checkpatch.pl version 0.12
    >> It seems like checkpatch.pl knows only about types derived
    >> from @typeList by build_types.
    >>
    >> Example below...
    >>
    >> Benny
    >>
    >> $ cat <<EOF | scripts/checkpatch.pl -
    >> Signed-off-by: john@smith.net
    >> ---
    >> diff a/f.c b/f.c
    >> --- a/f.c
    >> +++ b/f.c
    >> @@ -1,0 +1,2 @@
    >> +foo(int a, my_uint32 *);
    >> +bar(int a, my_uint32_t *);
    >
    > But that isn't actually syntactically correct code is it? You have types
    > as parameters like a function declaration, but no return type. So there
    > is no hint to checkpatch that this is a function declaration and therefore
    > the parameters are not expected to be types, nor are they checked as such.
    >
    > The following diff is clean on the latest version of checkpatch:
    >
    > Signed-off-by: john@smith.net
    > ---
    > diff a/f.c b/f.c
    > --- a/f.c
    > +++ b/f.c
    > @@ -1,0 +1,2 @@
    > +void foo(int a, my_uint32 *);
    > +int bar(int a, my_uint32_t *);
    > EOF

    OK, but the return type doesn't have to be in the patched line, it could be in
    a synchronization line or even missing if the function has a long multi-line argument
    list.

    >
    > Could you try out the version of checkpatch at the URL below on the real
    > patch you are using to test, and let me know if it works. There are
    > a number of improvements to type tracking in the face of ifdef's and
    > the like. If it doesn't could I have the hunk which fails:
    >
    > http://www.kernel.org/pub/linux/kernel/people/apw/checkpatch/checkpatch.pl-next

    Your modified patch passes with version 0.12 as well as checkpatch.pl-next

    However, the following patch that has the return type in the synchronization lines
    still produces the same error:

    $ ./checkpatch.pl-next -
    Signed-off-by: john@smith.net
    ---
    diff a/f.c b/f.c
    --- a/f.c
    +++ b/f.c
    @@ -1,2 +1,4 @@
    int
    +foo(int a, my_uint32 *);
    int
    +bar(int a, my_uint32_t *);
    ERROR: need consistent spacing around '*' (ctx:WxB)
    #8: FILE: f.c:2:
    +foo(int a, my_uint32 *);
    ^
    total: 1 errors, 0 warnings, 4 lines checked

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



    \
     
     \ /
      Last update: 2008-02-11 18:01    [W:0.034 / U:59.456 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site