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

Juan Quintela (quintela@mandrakesoft.com)
Tue, 01 Apr 2003 18:14:10 +0200


>>>>> "jeff" == Jeff Garzik <jgarzik@pobox.com> writes:

jeff> 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);

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

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

I think:
- gcc warning is good, normally you want to test, not assignation
- Linus style for that is:

if ((error = driver_register(&node_driver)) != 0)

which sounds more logical. the double parens things is just a bad
hack IMHO.

Later, Juan.

-- 
In theory, practice and theory are the same, but in practice they 
are different -- Larry McVoy
-
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/