Less commas

Walter Bright newshound2 at digitalmars.com
Sun Jan 2 12:04:07 PST 2011


bearophile wrote:
> A common bug in Linux kernel:
> 
> if(!state->card->
>   ac97_status&CENTER_LFE_ON)
>      val&=~DSP_BIND_CENTER_LFE;
> 
> The fix is to replace (!E & C) with (!(E & C)).
> 
> Currently D acts like C:
> 
> void main() {
>     uint x, y;
>     if (!x & y) {}
> }
> 
> - 96 instances of this bug in Linux from 2.6.13 (August 2005) to v2.6.28 (December 2008).
> - 58 instances of this bug in 2.6.20 (February 2007)
> - 2 in Linux-next (October 10, 2009)
> 
> They have faced and reduced the number of such bugs using Coccinelle, see pages 8-9 here:
> http://coccinelle.lip6.fr/papers/fosdem10.pdf

This is great stuff, bearophile. Thanks for finding that. Please add this as an 
enhancement request to bugzilla (disallowing (!x&y) expressions).


More information about the Digitalmars-d mailing list