Re: [2.6 patch][1/3] ipc/ BUG -> BUG_ON conversions

From: Adrian Bunk
Date: Sat Aug 28 2004 - 15:33:58 EST


On Sat, Aug 28, 2004 at 12:58:16PM -0700, Andrew Morton wrote:
> Adrian Bunk <bunk@xxxxxxxxx> wrote:
> >
> > > Anything you put in BUG_ON() must *NOT* have side effects.
> > >...
> >
> > I'd have said exactly the same some time ago, but I was convinced by
> > Arjan that if done correctly, a BUG_ON() with side effects is possible
> > with no extra cost even if you want to make BUG configurably do nothing.
>
> Nevertheless, I think I'd prefer that we not move code which has
> side-effects into BUG_ONs. For some reason it seems neater that way.
>
> Plus one would like to be able to do
>
> BUG_ON(strlen(str) > 22);
>
> and have strlen() not be evaluated if BUG_ON is disabled.
>
> A minor distinction, but one which it would be nice to preserve.

OTOH, only very few people use the disabled BUG_ON, and a statement
with a side effect might stay there unnoticed for some time.

If it's a
#define BUG_ON(x)
and in one place something with a side effect slipped into the BUG_ON,
you have a classical example for a heisenbug...

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/