Re: [PATCH] Cast removal
From: Jan Engelhardt
Date: Fri Oct 06 2006 - 16:25:38 EST
>> - (void) kmem_cache_destroy(cache);
>> + kmem_cache_destroy(cache);
>>
>> I believe that the point of the (void) is to prevent lint from
>> squawking, and perhaps some picky ANSI-C compilers. What is the overall
>> Linux policy on this?
>
>IMHO there's another reason to do this which is much more relevant: it
>tells the reader that whoever wrote it knows that it returns a value
>and ignores it on purpose.
And GCC does not care about that, i.e. it still prints foritfy warnings,
as in:
$ svn co https://svn.sourceforge.net/svnroot/ttyrpld/trunk a && cd a
$ make user/rpld.o EXT_CFLAGS="-D_FORTIFY_SOURCE=2"
user/rpld.c:425: warning: ignoring return value of âwriteâ, declared
with attribute warn_unused_result
Adding (void) to the front to line 425 does not get rid of the warning.
So doing so does not seem to be the right way to let others know you
intentionally want to discard the return value. Plus, on top, many
(sometimes older) C books advise to cast to (void) just because
something does not return it.
-`J'
--