Re: [PATCH] (2.5.66-mm2) War on warnings

Jeff Garzik (jgarzik@pobox.com)
Tue, 1 Apr 2003 10:27:03 -0500


On Tue, Apr 01, 2003 at 07:22:37AM -0800, Martin J. Bligh wrote:
> drivers/base/node.c: In function `register_node_type':
> drivers/base/node.c:96: warning: suggest parentheses around assignment used as truth value
> drivers/base/memblk.c: In function `register_memblk_type':
> drivers/base/memblk.c:54: warning: suggest parentheses around assignment used as truth value
>
> Bah.
>
> --- linux-2.5.66-mm2/drivers/base/node.c 2003-04-01 06:40:02.000000000 -0800
> +++ 2.5.66-mm2/drivers/base/node.c 2003-04-01 06:37:32.000000000 -0800
> @@ -93,7 +93,7 @@ int __init register_node_type(void)
> {
> int error;
> if (!(error = devclass_register(&node_devclass)))
> - if (error = driver_register(&node_driver))
> + if ((error = driver_register(&node_driver)))
> devclass_unregister(&node_devclass);

Personally, I feel statements like these are prone to continual error
and confusion. I would prefer to break each test like this out into
separate assignment and test statements. Combining them decreases
readability, while saving a paltry few extra bytes of source code.

Sure, the gcc warning is silly, but the code is a bit obtuse too.

Jeff

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