• Julia Lawall's avatar
    regulator: palmas: Drop unnecessary static · 96e4f523
    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 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>
    
    There is no reduction in code size in this case, but the change does reduce
    the size of the bss segment, containing uninitialized static data.
    
    before:
       text    data     bss     dec     hex filename
      12882    3480       8   16370    3ff2 drivers/regulator/palmas-regulator.o
    
    after:
       text    data     bss     dec     hex filename
      12882    3480       0   16362    3fea drivers/regulator/palmas-regulator.o
    Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    96e4f523
palmas-regulator.c 44.4 KB