Re: [patch] TTY: synclink, small cleanup in dtr_rts()

From: Valdis . Kletnieks
Date: Tue Jan 29 2013 - 10:56:47 EST


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....

Attachment: pgp00000.pgp
Description: PGP signature