[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9561.1359474916@turing-police.cc.vt.edu>
Date: Tue, 29 Jan 2013 10:55:16 -0500
From: Valdis.Kletnieks@...edu
To: Dan Carpenter <dan.carpenter@...cle.com>
Cc: Joe Perches <joe@...ches.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jiri Slaby <jslaby@...e.cz>,
Paul Fulghum <paulkf@...rogate.com>,
David Howells <dhowells@...hat.com>,
linux-kernel@...r.kernel.org, kernel-janitors@...r.kernel.org
Subject: Re: [patch] TTY: synclink, small cleanup in dtr_rts()
On Sun, 27 Jan 2013 23:19:47 +0300, Dan Carpenter said:
> Yeah. I think it would be, but adding bitflags together instead of
> doing bitwise ORs is very common as well.
The fact it's common doesn't mean it's good programming practice,
or even correct. Consider:
#define F_FOO 0x01
#define F_BAR 0x02
#define F_BAZ 0x04
unsigned int flags = F_FOO;
...
flags |= F_BAR;
Now some time later, another code path does this:
flags += F_FOO;
If it was another |, it would be a no harm no foul class of bug.
But how long is it going to take you to figure out who set F_BAZ?
I wonder if there's a way to write a coccinelle patch to find places
where we do arithmetic operations on bitmasks....
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists