write-only variables in src/sys/ - possible bugs

Max Laier max at love2party.net
Mon Feb 2 12:47:32 PST 2009


On Monday 02 February 2009 20:42:32 Christoph Mallon wrote:
> Hi,
>
> I compiled a list of all local variables in src/sys/ (r188000), which
> are only written to, but never read. This is more than the GCC warning,
> which only complains about variables, which are only declared (and maybe
> initialised) and not used otherwise. In contrast this list contains
> variables with the following usage pattern:
>
> int w = 42; // GCC warns about this ...
> int x;      // ... but not this
> x = 23;
> x++;
> return 0;
>
> The list contains about 700 entries. About three dozen concern variables
> named 'error'. Here's one *example* from the list:
>
> 	sys/dev/kbdmux/kbdmux.c:1304
>
> In the function kbdmux_modevent() the variable 'error' is assigned
> values eight times, but at the end of the function there is just a
> return 0; and the variable is never read. Probably the value should be
> returned.
>
> You can find the list here:
> 	http://tron.homeunix.org/unread_variables.log
>
> The list was generated by cparser, a C99 compiler, which uses libFIRM
> for optimisation and code generation (lang/cparser in the ports).
>
>
> A small disclaimer: There might be some false positives due to errors
> which are caused by HEAD sources in combination with my installed 7.x
> headers plus a hacked up build process. Also some warnings are the
> result from variables, which are only used in debug macros, so td =
> curthread; KASSERT(td != NULL); provokes a warning (I consider this bad
> style). Nonetheless the number of false positives should be low. If
> there is interest, then I can compile a "proper" list.

Are you interested in false positive reports?  If so, I think 
sys/contrib/pf/net/pf.c:2931 is one.  Seems cparser is confused by the union 
in struct assignment, maybe?  Or it suffers from the similar issue with 
switch/case-statements as gcc.  saddr is read from in all but the default 
case.

-- 
/"\  Best regards,                      | mlaier at freebsd.org
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier at EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News


More information about the freebsd-hackers mailing list