• Julia Lawall's avatar
    drbd: Drop unnecessary static · e9d5d4a0
    Julia Lawall authored
    Drop static on a local variable, when the variable is initialized before
    any use, on every possible execution path through the function.  The
    static has no benefit, and dropping it reduces the code size.
    
    The semantic patch that fixes this problem is as follows:
    (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @bad exists@
    position p;
    identifier x;
    type T;
    @@
    
    static T x@p;
    ...
    x = <+...x...+>
    
    @@
    identifier x;
    expression e;
    type T;
    position p != bad.p;
    @@
    
    -static
     T x@p;
     ... when != x
         when strict
    ?x = e;
    // </smpl>
    
    The change in code size is indicates by the following output from the size
    command.
    
    before:
       text    data     bss     dec     hex filename
      67299    2291    1056   70646   113f6 drivers/block/drbd/drbd_nl.o
    
    after:
       text    data     bss     dec     hex filename
      67283    2291    1056   70630   113e6 drivers/block/drbd/drbd_nl.o
    Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
    Signed-off-by: default avatarRoland Kammerer <roland.kammerer@linbit.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    e9d5d4a0
drbd_nl.c 146 KB