lkml.org 
[lkml]   [2018]   [Apr]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] checkpatch: Add a --strict test for structs with bool member definitions


    On Wed, 11 Apr 2018, Joe Perches wrote:

    > On Thu, 2018-04-12 at 08:22 +0200, Julia Lawall wrote:
    > > On Wed, 11 Apr 2018, Joe Perches wrote:
    > > > On Wed, 2018-04-11 at 09:29 -0700, Andrew Morton wrote:
    > > > > We already have some 500 bools-in-structs
    > > >
    > > > I got at least triple that only in include/
    > > > so I expect there are at probably an order
    > > > of magnitude more than 500 in the kernel.
    > > >
    > > > I suppose some cocci script could count the
    > > > actual number of instances. A regex can not.
    > >
    > > I got 12667.
    >
    > Could you please post the cocci script?

    Sure.

    julia


    Command line:
    spatch.opt boolinstruct.cocci -j 40 --very-quiet --no-includes --include-headers /run/shm/linux-next --use-idutils

    This was tested on:

    struct foo {
    bool a;
    bool b,c;
    int r;
    };

    struct {
    bool a;
    bool b,c;
    int r;
    } x;

    ----------------------

    @initialize:ocaml@
    @@
    let ctr = ref 0

    @r@
    identifier i,x;
    position p;
    @@

    struct i {
    ...
    bool x@p;
    ...
    }

    @script:ocaml@
    _p << r.p;
    @@

    ctr := !ctr + 1

    @s@
    identifier x;
    position p;
    @@

    struct {
    ...
    bool x@p;
    ...
    }

    @script:ocaml@
    _p << s.p;
    @@

    ctr := !ctr + 1

    @finalize:ocaml@
    ctrs << merge.ctr;
    @@

    ctr := 0;
    List.iter (function c -> ctr := !c + !ctr) ctrs;
    Printf.printf "%d\n" !ctr

    \
     
     \ /
      Last update: 2018-04-12 09:03    [W:2.831 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site