Re: [PATCH] kmemcheck: fix sparse warning
From: Raja R Harinath
Date:  Thu Aug 06 2009 - 08:39:18 EST
Hi,
Johannes Berg <johannes@xxxxxxxxxxxxxxxx> writes:
>> Signed-off-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>
I know I'm colouring the bike-shed but you can avoid the outer do-while
with:
>> --- wireless-testing.orig/include/linux/kmemcheck.h	2009-07-06 11:41:16.000000000 +0200
>> +++ wireless-testing/include/linux/kmemcheck.h	2009-07-06 11:41:30.000000000 +0200
>> @@ -137,13 +137,13 @@ static inline void kmemcheck_mark_initia
>>  	int name##_end[0];
>>  
>>  #define kmemcheck_annotate_bitfield(ptr, name)				\
>> -	do if (ptr) {							\
>> +	do { if (ptr) {							\
   +    if (ptr) {
>>  		int _n = (long) &((ptr)->name##_end)			\
>>  			- (long) &((ptr)->name##_begin);		\
>>  		BUILD_BUG_ON(_n < 0);					\
>>  									\
>>  		kmemcheck_mark_initialized(&((ptr)->name##_begin), _n);	\
>> -	} while (0)
>> +	} } while (0)
   +    } else
Of course, that tailing 'else' may be much too clever to live.  A
slightly less clever but more idiomatic approach would be to use
  +    } else do {} while (0)
but what's the point.  Oh well, ignore me :-) I'm just pained by the
'} }' due to my wierd sense of aesthetics.
- Hari
--
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/